So zeigen Sie erweiterte Pod-Statusinformationen mit dem Kubernetes Go-Client an
Im Gegensatz zu den grundlegenden Pod-Statusinformationen, die von pod.Status.Phase bereitgestellt werden Da der Kubernetes Go-Client nur eine begrenzte Auswahl an Optionen bietet, können Sie detailliertere Statusinformationen abrufen, ähnlich wie im Befehl kubectl get pods unter dem angezeigt Spalte „Status“.
Init:0/1- und PodInitializing-Status abrufen
Um die erweiterten Status wie Init:0/1 und PodInitializing abzurufen, können Sie dies tun Führen Sie die folgenden Schritte aus:
Importieren Sie das Notwendige Bibliotheken:
<code class="go">import ( "context" "fmt" "github.com/golang/protobuf/ptypes" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" )</code>
Erstellen Sie einen Kubernetes-Clientsatz:
<code class="go">clientset, err := kubernetes.NewForConfig(config) if err != nil { // Handle error }</code>
Rufen Sie die Pods ab:
<code class="go">pods, err := clientset.CoreV1().Pods("").List(context.TODO(), metav1.ListOptions{}) if err != nil { // Handle error }</code>
Durchlaufen Sie die Pods und rufen Sie deren detaillierten Status ab Informationen:
<code class="go">for i, pod := range pods.Items { podInfo := fmt.Sprintf("[%d] Pod: %s", i, pod.GetName()) // Get pod conditions for _, condition := range pod.Status.Conditions { // Check for `Initialized` condition if condition.Type == "Initialized" { podInfo += fmt.Sprintf(", Status: PodInitializing") } // Check for `ContainersReady` condition if condition.Type == "ContainersReady" { // Parse the `LastProbeTime` condition lastProbeTime, err := ptypes.Timestamp(condition.LastProbeTime) if err != nil { // Handle error } podInfo += fmt.Sprintf(", Status: Init:%d/%d", condition.Status == metav1.ConditionFalse, pod.Status.InitContainerStatuses != nil ? len(pod.Status.InitContainerStatuses) : 0) + lastProbeTime.String() } } fmt.Println(podInfo) }</code>
Mit diesem Ansatz können Sie die erweiterten Statusinformationen für Pods, einschließlich Status wie Init:0/1 und PodInitializing, programmgesteuert abrufen und so einen tieferen Einblick gewinnen Verständnis für die Gesundheit und den Zustand Ihrer Schoten.
Das obige ist der detaillierte Inhalt vonWie erhalte ich erweiterte Informationen zum Pod-Status im Kubernetes Go-Client?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!