Récupérer les détails du pod avec le client Kubernetes Go
Lorsque vous travaillez au sein d'un cluster Kubernetes, il est crucial de disposer d'un moyen d'accéder aux détails du pod efficacement. La bibliothèque client-go Kubernetes fournit une interface pour interagir avec le cluster, permettant aux développeurs de récupérer un large éventail d'informations.
Une tâche courante consiste à répertorier tous les pods dans un espace de noms spécifique, de la même manière que si vous utilisiez la commande kubectl. "kubectl get pods -n
Pour ce faire, nous utilisons la bibliothèque client-go pour interagir avec l'API Kubernetes. L'extrait de code suivant montre comment lister les pods dans un espace de noms donné :
<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>
Une fois que nous avons récupéré la liste des pods, nous parcourons chaque pod et ses conteneurs pour rassembler les détails nécessaires :
<code class="go">for _, pod := range podList.Items { podCreationTime := pod.GetCreationTimestamp() age := time.Since(podCreationTime.Time).Round(time.Second) podStatus := pod.Status var containerRestarts int32 var containerReady int var totalContainers int for container := range pod.Spec.Containers { containerRestarts += podStatus.ContainerStatuses[container].RestartCount if podStatus.ContainerStatuses[container].Ready { containerReady++ } totalContainers++ } 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>
La variable "data" résultante contient un tableau de tableaux de chaînes, représentant les détails du pod souhaité : nom, état de préparation, statut, nombre de redémarrages et âge. Ces données peuvent ensuite être imprimées ou manipulées sans effort selon les besoins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!