Lors de l'utilisation de k8s.io/client-go/kubernetes client-go, il est possible de récupérer le pod .Status qui inclut le pod.Status.Phase. Cependant, ces informations sont limitées à cinq valeurs : En attente, En cours d'exécution, Réussi, Échec et Inconnu.
Si vous souhaitez obtenir des informations d'état plus détaillées, telles que "Init:0/1" ou "PodInitializing, " qui sont affichés dans la colonne Statut de kubectl get pods, quelques options sont disponibles.
Côté serveur Calcul
En général, vous n'avez pas besoin de calculer l'état côté client car cela se fait au niveau du serveur. Ces statuts sont calculés à l'aide de la fonction ServerPrint, qui est par défaut Kubernetes TablePrinter. TablePrinter gère la conversion des données renvoyées par le serveur dans un format lisible par l'homme.
La logique de calcul de la colonne Statut est gérée dans la base de code. à :
Côté client Calcul
Si vous préférez toujours calculer le statut côté client, vous pouvez utiliser la bibliothèque kubeconfig pour accéder au serveur API Kubernetes. Cependant, cela nécessite une compréhension approfondie de l'API Kubernetes et peut être assez complexe.
Utilisation d'imprimantes
Une autre option consiste à utiliser des imprimantes personnalisées. La bibliothèque client-go fournit un certain nombre de fonctions pour imprimer des objets, notamment :
Vous pouvez utiliser ces fonctions pour créer une imprimante personnalisée qui correspond au format de kubectl get pods.
Conclusion
Récupérer les mêmes informations sur l'état du pod que kubectl get pods est possible en utilisant la bibliothèque client-go. Cependant, il convient de noter que ces informations sont généralement calculées côté serveur et vous pourrez peut-être éviter d'avoir à effectuer un calcul côté client. Si vous avez besoin de personnaliser la sortie d'état, l'utilisation d'imprimantes est une bonne approche.
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!