Comment afficher les informations avancées sur l'état du pod à l'aide du client Kubernetes Go
Contrairement aux informations de base sur l'état du pod fournies par pod.Status.Phase, qui n'offre qu'un ensemble limité d'options, le client Kubernetes Go vous permet de récupérer des informations d'état plus détaillées, similaires à celles affichées dans la commande kubectl get pods sous la colonne « Statut ».
Obtenir Init :0/1 et PodInitializing Statuses
Pour obtenir les statuts avancés, tels que Init:0/1 et PodInitializing, vous pouvez utiliser les étapes suivantes :
Importez les bibliothèques nécessaires :
<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>
Créez un ensemble de clients Kubernetes :
<code class="go">clientset, err := kubernetes.NewForConfig(config) if err != nil { // Handle error }</code>
Récupérez les pods :
<code class="go">pods, err := clientset.CoreV1().Pods("").List(context.TODO(), metav1.ListOptions{}) if err != nil { // Handle error }</code>
Parcourez les pods et récupérez leurs informations d'état détaillées :
<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>
En utilisant cette approche, vous pouvez récupérer par programme les informations d'état avancées pour pods, y compris des statuts comme Init:0/1 et PodInitializing, vous permettant de mieux comprendre la santé et l'état de vos pods.
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!