Blog ENI : Toute la veille numérique !
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
  1. Livres et vidéos
  2. Kubernetes
  3. Tableau de bord et ligne de commande
Extrait - Kubernetes Gérez la plateforme de déploiement de vos applications conteneurisées (3e édition)
Extraits du livre
Kubernetes Gérez la plateforme de déploiement de vos applications conteneurisées (3e édition) Revenir à la page d'achat du livre

Tableau de bord et ligne de commande

Objectifs du chapitre et prérequis

Ce chapitre fera tout d’abord un petit historique sur l’origine du projet et sur les notions autour des conteneurs.

La suite sera consacrée à une introduction sur l’utilisation de Kubernetes et la découverte de quelques éléments :

  • le tableau de bord (dashboard) Kubernetes ;

  • la commande kubectl ;

  • le moteur Docker de Minikube ;

  • la consultation de quelques objets de base (pods et nodes).

À la fin de ce chapitre, vous disposerez des éléments suivants :

  • un cluster Kubernetes fonctionnel ;

  • un contexte kubectl cohérent.

Afin de suivre l’ensemble des exercices, il est indispensable de disposer d’une connexion Internet haut débit (ADSL ou supérieure).

Préambule

1. Origine du nom et du logo

Kubernetes est un mot d’origine grec (κυβερνήτης) qui signifie timonier (ou pilote). En navigation, c’est la personne qui est en charge de tenir la barre du gouvernail.

Chez Google, le nom interne de ce projet était Project Seven, en référence à un personnage de l’univers Star Trek (Seven of Nine ou de son vrai nom Annika Hansen). Les sept rayons du logo en forme de barre de gouvernail sont un clin d’œil à cet ancien nom.

2. Pourquoi utiliser Kubernetes ?

La sortie de Docker ces dernières années a constitué une rupture importante dans la manière de gérer les applications au sein d’un système d’information. Il devenait ainsi possible de réaliser des opérations auparavant compliquées de façon plus rapide et simple, comme par exemple :

  • démarrer des environnements de tests à la demande ;

  • s’affranchir des problèmes de dépendances de librairies ;

  • uniformiser les livrables de tous les environnements ;

  • isoler de manière très poussée les ressources sur un même serveur.

Comme tout nouvel outil, certaines questions n’avaient pas forcément de solution simple et introduisaient de nouveaux problèmes. Parmi ces problèmes, on retrouve les points suivants :...

Le tableau de bord de Kubernetes (dashboard)

1. Présentation

Le dashboard de Kubernetes est un moyen de consulter l’état des différents éléments d’un cluster. Pour l’utilisateur débutant sur cette technologie, il s’agit d’une bonne porte d’entrée puisque cette application permet de consulter graphiquement les différents constituants d’un cluster Kubernetes.

Néanmoins, si ce dernier peut être toléré sur une machine Minikube, il n’est pas forcément souhaitable de le déployer sur les plateformes de production pour des raisons de sécurité.

2. Tableau de bord Kubernetes sur service managé

Dans le cas où vous feriez appel à un service managé, il sera peut-être nécessaire de procéder à l’installation du dashboard avant de continuer.

Consultez la section Déploiement du tableau de bord Kubernetes dans les annexes afin de réaliser l’installation de ce dernier.

3. Déploiement du dashboard sur Minikube

Sous Minikube, l’activation du dashboard se fait à l’aide de l’instruction minikube suivie des options suivantes :

  • l’option addons suivie du mot-clé enable ;

  • le nom du plugin à activer (ici dashboard).

Ci-dessous la commande à lancer :

$ minikube addons enable dashboard 

Ci-après le résultat de cette commande :

    images/ic2-006.png  Using image kubernetesui/dashboard:v2.3.1 
    images/ic2-006.png  Using image kubernetesui/metrics-scraper:v1.0.7 
images/ic2-010.png  Some dashboard features require the metrics-server addon. To 
enable all features please run: 
        minikube addons enable metrics-server 
 
images/ic2-007.png  The 'dashboard' addon is enabled 

Comme indiqué par la commande précédente, activez le serveur de métriques (metrics-server) pour bénéficier de l’ensemble des fonctionnalités du tableau de bord :

$ minikube addons enable metrics-server 

Ci-dessous les messages renvoyés par cette opération :

  images/ic2-006.png Using image k8s.gcr.io/metrics-server/metrics-server:v0.4.2 
images/ic2-007.png  The 'metrics-server' addon is enabled 

4. Accès...

Présentation de l’outil kubectl

1. Préambule

Dans la section précédente, vous avez découvert quelques objets nécessaires au déploiement d’une application. Avant d’aller plus loin et de commencer à créer ces objets en ligne de commande, vous allez vous familiariser avec la commande kubectl.

2. Consultation des éléments

La consultation de l’état des objets dans Kubernetes est une opération réalisée très souvent. Pour cela, l’administrateur pourra faire appel au mot-clé dédié : get. Cette instruction attend obligatoirement le type d’objet à consulter.

Dans le chapitre sur la mise en place de Minikube, vous avez récupéré la liste des espaces de noms existants (namespace).

Ci-dessous la commande qui a été lancée :

$ kubectl get namespace 

Cette commande renvoie la sortie suivante :

NAME                  STATUS   AGE 
default               Active   19h 
kube-node-lease       Active   19h 
kube-public           Active   19h 
kube-system           Active   19h 
kubernetes-dashboard  Active   19h 

On y retrouve quatre espaces de noms (au minimum) :

  • default : espace de noms par défaut qui sera utilisé pour la création des objets dans Kubernetes ;

  • kube-public : espace de noms publique contenant uniquement un objet de configuration (objectmap) ;

  • kube-system : espace de noms contenant les objets nécessaires au cycle de vie d’un cluster Kubernetes ;

  • kube-node-lease : espace de noms contenant des objets techniques de communication (objet Lease) avec les nœuds du cluster.

L’espace de noms kubernetes-dashboard, comme son nom le laisse entendre, contient les éléments nécessaires...

Le moteur Containerd de Minikube

1. Initialisation de l’environnement

Dans le cas de Minikube, il est possible d’interroger le moteur Containerd utilisé par Kubernetes. Il faut pour cela se connecter au nœud à l’aide de l’instruction suivante :

$ minikube ssh 

Le démon containerd peut être interrogé à l’aide de la commande ctr précédée par l’instruction sudo. Afin de récupérer la liste des espaces de noms, faites appel aux mots-clés namespacels :

$ sudo ctr namespace ls 

Ci-dessous le résultat attendu :

NAME    LABELS 
k8s.io 

Ici, l’espace de noms correspond à une activité liée à Kubernetes. Dans le cas où Docker aurait été utilisé comme moteur de conteneur, l’espace de noms porterait la valeur moby.

Les espaces de noms dans Containerd ressemblent à ceux présentés précédemment. Attention toutefois, les deux concepts n’ont rien à voir : Kubernetes utilise son propre mécanisme en interne.

2. Les conteneurs associés aux pods

En plus des espaces de noms, il est possible d’interroger la liste des conteneurs dans Containerd.

Pour cela, utilisez la commande ctr avec les options suivantes :

  • l’instruction sudo afin de disposer des droits suffisants ;

  • l’utilisation...