"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं 'कुबेक्टल गेट पॉड्स' कमांड के समान, कुबेरनेट्स गो-क्लाइंट का उपयोग करके विस्तृत पॉड जानकारी कैसे प्राप्त कर सकता हूं?

मैं 'कुबेक्टल गेट पॉड्स' कमांड के समान, कुबेरनेट्स गो-क्लाइंट का उपयोग करके विस्तृत पॉड जानकारी कैसे प्राप्त कर सकता हूं?

2024-11-08 को प्रकाशित
ब्राउज़ करें:123

How can I retrieve detailed pod information using the Kubernetes go-client, similar to the `kubectl get pods` command?

कुबेरनेट्स गो-क्लाइंट: पॉड विवरण पुनर्प्राप्त करें जैसे कि कुबेक्टल पॉड प्राप्त करता है

क्लाइंट-गो लाइब्रेरी का उपयोग करके कुबेरनेट्स क्लस्टर में पॉड विवरण प्राप्त करने के लिए , kubectl get pods -n कमांड के समान, इनका पालन करें चरण:

एक कुबेरनेट्स क्लाइंट बनाएं: कुबेरनेट्स क्लाइंट प्राप्त करने के विवरण के लिए क्लाइंट-गो दस्तावेज़ देखें।

लक्ष्य नामस्थान निर्दिष्ट करें: वह नामस्थान निर्धारित करें जहां वांछित पॉड्स रहते हैं, जैसे kubectl में -n विकल्प।

पॉड सूची पुनर्प्राप्त करें: क्लाइंट का उपयोग करें निर्दिष्ट नामस्थान के भीतर पॉड्स संसाधन के साथ इंटरफ़ेस करने के लिए CoreV1() विधि। नेमस्पेस में सभी पॉड युक्त पॉडलिस्ट ऑब्जेक्ट प्राप्त करने के लिए सूची() विधि का उपयोग करें।

पॉड जानकारी निकालें: पॉडलिस्ट के माध्यम से पुनरावृति करें, प्रत्येक पॉड के मेटाडेटा और स्थिति की जानकारी तक पहुंचें। विस्तृत जानकारी के लिए, कुबेरनेट्स एपीआई दस्तावेज़ में पॉड और पॉडस्टैटस संरचना परिभाषाएँ देखें।

अतिरिक्त विवरण निकालें: यदि आवश्यक हो, तो पॉड के निर्माण टाइमस्टैम्प का उपयोग करके पॉड आयु, कंटेनर पुनरारंभ और तैयार स्थिति जैसी विशेषताओं की गणना करें और कंटेनर स्थितियाँ।

यहां एक नमूना कोड स्निपेट है जो दर्शाता है कि पॉड नाम, स्थिति, तैयार स्थिति, पुनरारंभ और कैसे प्राप्त करें आयु:

func GetPods(client *meshkitkube.Client, namespace string) (*v1core.PodList, error) {
    podInterface := client.KubeClient.CoreV1().Pods(namespace)
    podList, err := podInterface.List(context.TODO(), v1.ListOptions{})
    return podList, err
}
// Iterate through pods and collect required data
for _, pod := range podList.Items {
    podCreationTime := pod.GetCreationTimestamp()
    age := time.Since(podCreationTime.Time).Round(time.Second)
    podStatus := pod.Status
    containerRestarts, containerReady, totalContainers := 0, 0, len(pod.Spec.Containers)
    for container := range pod.Spec.Containers {
        containerRestarts  = podStatus.ContainerStatuses[container].RestartCount
        if podStatus.ContainerStatuses[container].Ready {
            containerReady  
        }
    }
    name := pod.GetName()
    ready := fmt.Sprintf("%v/%v", containerReady, totalContainers)
    status := fmt.Sprintf("%v", podStatus.Phase)
    restarts := fmt.Sprintf("%v", containerRestarts)
    ageS := age.String()
    data = append(data, []string{name, ready, status, restarts, ageS})
}

यह प्रक्रिया वही डेटा प्रदान करेगी जो kubectl get pods -n ऑफर करता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3