Heim >Backend-Entwicklung >Golang >Wie liste ich Pod-Details in Kubernetes mit dem Go-Client auf?
Pod-Details mit Kubernetes Go-Client auflisten
Durch den Zugriff auf Pod-Details mithilfe der Kubernetes-Client-Go-Bibliothek können Sie ähnliche Informationen programmgesteuert abrufen Verwenden Sie den Befehl kubectl get pods.
Um bestimmte Details wie Name, Status, Bereitschaftsstatus, Neustarts und Alter von Pods innerhalb eines bestimmten Namespace abzurufen, führen Sie die folgenden Schritte aus:
<code class="go">import ( "context" "fmt" "time" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" )</code>
<code class="go">func GetPods(client *meshkitkube.Client, namespace string) (*v1core.PodList, error) { podInterface := client.KubeClient.CoreV1().Pods(namespace) podList, err := podInterface.List(context.TODO(), v1.ListOptions{}) if err != nil { return nil, err } return podList, nil }</code>
<code class="go">// List pod details similar to `kubectl get pods -n <my namespace>` for _, pod := range podList.Items { podCreationTime := pod.GetCreationTimestamp() age := time.Since(podCreationTime.Time).Round(time.Second) podStatus := pod.Status containerRestarts := int32(0) containerReady := 0 totalContainers := 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}) }</code>
Das obige ist der detaillierte Inhalt vonWie liste ich Pod-Details in Kubernetes mit dem Go-Client auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!