Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Kubernetes
  3. Contextes et outils tiers Kubernetes
Extrait - Kubernetes Gérez la plateforme de déploiement de vos applications conteneurisées (2e édition)
Extraits du livre
Kubernetes Gérez la plateforme de déploiement de vos applications conteneurisées (2e édition)
1 avis
Revenir à la page d'achat du livre

Contextes et outils tiers Kubernetes

Objectifs du chapitre et prérequis

Kubernetes est un outil relativement complexe. Avant d’aller plus loin dans la mise en place de clusters, vous allez découvrir quelques outils intéressants à utiliser en cas de problème ou pour vous simplifier la vie.

En premier lieu, la notion de contextes sera abordée ainsi que la présentation d’outils pour les manipuler (kubectx, kubens, kube-ps1). Du temps sera également consacré à ajouter du contexte dans l’invite de l’utilisateur pour savoir rapidement sur quel cluster vous êtes en train de travailler.

Viendra ensuite une présentation de différents outils permettant de vous faciliter les choses, comme par exemple la surveillance de l’état des pods ou la capture du trafic réseau d’un container.

Gestion des contextes avec kubectl

1. Origine du besoin

Avant de tester des clusters Kubernetes de différentes origines, il est intéressant de comprendre comment est stockée l’information de connexion en local, ceci afin de :

  • pouvoir facilement passer d’un cluster à un autre,

  • stocker l’information quelque part (pour l’archiver, par exemple).

2. Lister les contextes

Au lancement de Minikube, le lecteur a créé un contexte par défaut : minikube.

Un bon moyen de s’en rendre compte est d’utiliser la commande kubectl suivie de l’option config et du mot-clé get-contexts :

$ kubectl config get-contexts 

Dans le cas où vous auriez configuré un accès à minikube ainsi qu’un cluster créé chez Google, la sortie pourrait ressembler à ce qui suit :

CURRENT   NAME         CLUSTER       AUTHINFO       NAMESPACE 
          gke-test     gke-test      gke-test   
*         minikube     minikube      minikube 

Toujours avec l’option config, la sous-option current-context permet de récupérer le champ NAME du contexte par défaut :

$ kubectl config current-context 

Dans le cas où minikube serait le contexte par défaut, la commande renverra le résultat suivant :

minikube 

3. Variable d’environnement KUBECONFIG

a. Spécifier l’emplacement du fichier

La variable d’environnement KUBECONFIG permet de faire cohabiter plusieurs clusters. Cette dernière permet de spécifier un fichier différent de celui par défaut (~/.kube/config).

L’export de la variable d’environnement se fait de la manière suivante :

$ export KUBECONFIG=~/kubeconfig/cluster-prod 

 Consultez à nouveau les contextes vus par la commande kubectl :

$ kubectl config get-contexts 

Les contextes sont différents de la fois précédente :

CURRENT   NAME         CLUSTER      AUTHINFO     NAMESPACE 
*         hp-a.ex.com  hp-a.ex.com  hp-a.ex.com 

b. Spécifier plusieurs fichiers

À noter que la variable KUBECONFIG se comporte comme la variable...

Utilitaires Kubernetes

1. k9s : interface texte de suivi

a. Contexte

En cas de problème sur un déploiement, vous pouvez faire appel à la commande kubectl. Il faut ensuite passer les différentes options en fonction de ce que vous souhaitez consulter :

  • get pods pour obtenir l’état des pods.

  • describe pods suivi du nom du pod pour obtenir les événements rattachés.

  • logs suivi du nom du pod pour consulter les logs.

La commande k9s propose de guider l’utilisateur dans ces opérations à l’aide d’une interface texte rudimentaire mais très efficace.

Pour plus de détails, consultez l’adresse suivante : https://github.com/derailed/k9s

b. Installation de k9s

 L’utilitaire k9s est disponible sous Arkade. Pour l’installer, lancez la commande suivante :

$ arkade get k9s 

c. Lancement de k9s

 Depuis un terminal, lancez k9s :

$ k9s 

Par défaut, k9s se connectera automatiquement au cluster actif dans le contexte courant.

Écran d’accueil de k9s sur un cluster minikube

Écran d’accueil de k9s sur un cluster minikube

Depuis l’interface d’accueil, vous pouvez sélectionner un pod avec la touche [Entrée]. Vous pourrez alors consulter la liste des containers du pod et, en validant le container, accéder au journal d’activité du container.

Le retour en arrière se fait à l’aide de la touche [Echap].

Certains raccourcis permettent de lancer des actions :

  • lancement d’un shell avec la touche s,

  • suppression d’un pod avec la touche CTRL - d,

  • description d’un pod avec la touche d,

  • consultation de la log avec la touche l.

L’utilitaire permet également de consulter n’importe quels types d’objets dans le cluster. Pour cela, utilisez la touche deux-points (:) suivie du type d’objets à consulter (service, deployment, pvc, etc.). Afin de changer d’espace de noms, utilisez le type namespace (ou son raccourci ns) puis sélectionnez l’espace de noms à consulter. Appuyez alors sur la touche [Entrée].

À noter qu’il est également possible de consulter les charts Helm présents en entrant le type helm.

2. Kubespy : espionnage de l’activité

a. Présentation de Kubespy

Kubespy est un outil permettant de scruter l’activité d’une ressource dans Kubernetes suite...