Chaque développeur et ingénieur DevOps qui travaille avec Kubernetes doit déboguer quotidiennement les charges de travail et les gousses. Les journaux Kubectl simples ou Kubectl décrivent les pods peuvent souvent identifier la source d'un problème. Cependant, certains problèmes sont plus difficiles à retrouver. Vous pouvez tenter Kubectl Exec dans certains cas. Cependant, même cela peut ne pas être adéquat car certains conteneurs, comme la distro, n'ont même pas de coquille dans laquelle vous pouvez Ssh. Donc, si tout ce qui précède échoue, quelles sont nos options? Le débogage de Kubectl, comme une nouvelle instruction ajoutée il n'y a pas longtemps (V1.18), serait le bon outil pour le dépannage des charges de travail sur Kubernetes.
Conditions préalables
Avant d'utiliser Kubectl, nous devons d'abord valider le système d'exploitation. Dans notre situation, nous dirigeons Ubuntu 20.04 sur un ordinateur. D'autres distributions Linux peuvent être recherchées pour comprendre s'ils sont adaptés à vos besoins ou non. Un cluster Minikube est nécessaire pour implémenter les services Kubernetes sur Linux. Pour faire fonctionner ce guide, vous devrez configurer un cluster Minikube sur votre système. Minikube fait de l'évaluation des caractéristiques critiques d'un cluster Kubernetes une brise, avec quelque chose de facilement activé ou supprimé. Utilisez le terminal de la ligne de commande pour configurer un cluster Minikube. L'une des deux approches est disponible pour l'ouvrir. Recherchez «Terminal» dans la section de recherche d'application de votre système. Un raccourci clavier qui peut être utilisé pour cela est Ctrl + Alt + T:
$ minikube start
Comment exécuter des commandes dans un pod
Vous voudrez observer ce qu'un pod opérant dans le cluster voit pendant plusieurs des phases qui suivent. L'exécution d'un pod busybox interactif est la méthode la plus simple pour ce faire:
$ kubectl run -it -rm -restart = never busybox -image = gcr.IO / Google-Contisers / Busybox SH
Comment configurer
Exécutons quelques gousses pour cette leçon. Vous pouvez utiliser vos propres informations car vous déboguez probablement votre propre service, soit vous pouvez facilement suivre et obtenir un deuxième point de données:
$ kubectl créer des noms d'hôtes de déploiement -image = gcr.io / serve_hostname
Le type et le nom de la ressource produits ou modifiés seront imprimés par des instructions Kubectl, qui peuvent par la suite être utilisées dans les commandes ultérieures. Augmenons le nombre de répliques dans le déploiement à trois:
$ Kubectl Scale Deployment Host Names -replicas = 3
Vous pouvez vérifier si vos pods fonctionnent en faisant ce qui suit:
$ kubectl get pods -l app = hostNames
Vous pouvez également vérifier si vos pods fonctionnent. De cette façon, vous pouvez obtenir une liste des adresses IP POD et les tester immédiatement:
$ kubectl get pods -l app = hostNames \
Le conteneur d'échantillons de cet article utilise HTTP sur le port pour fournir son nom d'hôte. Mais si vous déboguez par vous-même, utilisez le numéro de port sur lequel vos pods sont. De l'intérieur d'une cosse:
Si vous n'obtenez pas les résultats que vous souhaitez à ce stade, il est possible que vos pods ne soient pas sains ou n'écoutent pas sur le port que vous pensez qu'ils sont. Vous pourriez souhaiter enquêter sur les journaux Kubectl, ou vous devrez peut-être immédiatement Kubectl Exec dans vos pods et déboguer à partir de là. Si toutes les étapes ont été exécutées avec précision jusqu'à présent, vous pouvez commencer votre enquête sur les raisons pour lesquelles votre service ne fonctionne pas correctement.
Le service est-il créé?
Le lecteur astucieux pourrait avoir une idée que vous n'avez pas encore construit de service, qui est, en fait, exprès. Cette étape est souvent négligée, mais c'est le premier élément à vérifier. Si le service n'est pas encore là, créez-le d'abord et vérifiez s'il est toujours là.
Les pods cibles relèvent-ils de règles d'entrée de politique de réseau?
Si vous avez des règles d'entrée de politique de réseau en place qui peuvent affecter le trafic entrant aux noms d'hôtes, vous devez les revoir.
Le service est-il défini de manière appropriée?
Même s'il semble petit, vérifiez que le service que vous avez créé est précis et correspond au port de votre pod. Relisez votre service et confirmez-le. Si vous avez fait jusqu'à présent, vous avez vérifié que votre service est correctement défini et résolu par DNS. Il est maintenant temps de vérifier que le service ramasse les pods que vous avez créés.
Conclusion
Cet article couvrait tout ce que vous devez savoir sur la fonction de débogage de Kubectl. Nous avons également fourni des exemples étendus pour vous aider. Vous pouvez suivre toutes les étapes de ce guide pour faire votre travail efficace. Nous espérons que vous avez trouvé cet article utile. Trouvez plus de conseils et de guides sur l'indice Linux.