Accès au cluster

KubernetesBeginner
Pratiquer maintenant

Introduction

Kubernetes est un système d’orchestration de conteneurs. Il gère la planification, l’exécution, l’exposition et la récupération des applications conteneurisées au sein d’un cluster.

Pour interagir avec un cluster Kubernetes, vous utilisez généralement kubectl. Avant de déployer des applications, vous devez disposer d’un cluster en fonctionnement et d’une configuration client valide qui pointe correctement vers ce cluster.

Dans ce laboratoire, vous allez suivre les étapes fondamentales pour configurer votre accès à un cluster Kubernetes. Vous utiliserez Minikube, un outil qui exécute localement un cluster Kubernetes à un seul nœud, particulièrement adapté à l’apprentissage et au développement.

Vous apprendrez à :

  1. Démarrer un cluster Kubernetes local.
  2. Vérifier votre contexte kubectl pour vous assurer que vous ciblez le bon cluster.
  3. Récupérer les informations essentielles du cluster.
  4. Lister les nœuds du cluster pour vérifier leur état.

Démarrer le cluster

Dans cette étape, vous allez démarrer un cluster Kubernetes local avec Minikube. Minikube crée une machine virtuelle ou un conteneur sur votre ordinateur, puis y déploie un cluster simple. Vous pouvez ainsi vous exercer aux commandes Kubernetes sans avoir besoin d’un fournisseur cloud.

À ce stade, il est utile de bien distinguer trois notions. Un cluster désigne l’ensemble de l’environnement Kubernetes. Un nœud est une machine située dans ce cluster. Le control plane est la partie qui accepte les requêtes d’API et décide des actions à effectuer. Minikube regroupe ces composants dans un environnement local d’apprentissage afin que vous puissiez vous concentrer sur les concepts Kubernetes avant de travailler avec une infrastructure cloud.

Commencez par vérifier que vous vous trouvez dans le répertoire du projet :

cd ~/project

Démarrez maintenant le cluster Minikube. Nous allons spécifier le pilote docker afin d’exécuter le cluster dans un conteneur Docker, ce qui est compatible avec l’environnement de ce laboratoire.

minikube start --driver=docker

Cette opération peut prendre quelques minutes, car Minikube télécharge les images Kubernetes nécessaires et démarre le control plane. La sortie indique que Minikube récupère les images, démarre le conteneur et configure le cluster.

Une fois la commande terminée, vérifiez l’état de Minikube pour vous assurer qu’il fonctionne correctement :

minikube status

La sortie doit indiquer que host, kubelet et apiserver sont à l’état "Running".

Vérifier le contexte

Dans cette étape, vous allez vérifier que l’outil en ligne de commande kubectl est configuré pour communiquer avec votre nouveau cluster Minikube.

Kubernetes utilise un fichier de configuration, généralement situé à l’emplacement ~/.kube/config, pour stocker les informations d’accès aux clusters. Ce fichier peut contenir les informations de plusieurs clusters. Le « contexte » détermine le cluster auquel kubectl envoie les commandes. Lorsque vous avez démarré Minikube à l’étape précédente, l’outil a automatiquement mis à jour votre configuration et défini le contexte sur minikube.

Cette notion est importante, car kubectl n’est qu’un client. Il ne « contient » pas le cluster. Il lit les informations de connexion, les certificats et le contexte actuellement sélectionné, puis envoie des requêtes au serveur d’API Kubernetes. Dans un environnement professionnel, les ingénieurs passent souvent d’un cluster de développement à un cluster de préproduction ou de production. Vérifier le contexte actuel est donc une habitude de sécurité, et non une simple formalité.

Pour vérifier le contexte actuel, exécutez la commande suivante :

kubectl config current-context

La sortie doit être :

minikube

Pour afficher tous les détails de la configuration, notamment l’URL du serveur du cluster et les certificats utilisateur (affichés de manière sécurisée), vous pouvez consulter la configuration :

kubectl config view

Cela confirme que toutes les commandes kubectl suivantes seront exécutées sur votre cluster Minikube local.

Vérifier les informations du cluster

Dans cette étape, vous allez récupérer les informations de base du cluster afin de vérifier la connectivité et de voir où le control plane Kubernetes s’exécute.

La commande cluster-info permet de vérifier simplement si kubectl peut communiquer avec le serveur d’API.

Kubernetes est un système piloté par une API. Presque toutes les actions, de la création d’un Pod à la mise à l’échelle d’un Deployment, deviennent une requête d’API envoyée au control plane. C’est pourquoi la question « Mon client peut-il joindre le serveur d’API ? » fait partie des premières vérifications lors de l’analyse de l’état d’un cluster.

Exécutez la commande suivante :

kubectl cluster-info

Vous devriez obtenir une sortie similaire à celle-ci :

Kubernetes control plane is running at https://127.0.0.1:32769
CoreDNS is running at https://127.0.0.1:32769/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Les adresses IP et les ports peuvent varier, mais l’élément essentiel est la présence du message « Kubernetes control plane is running ». Cela confirme que votre client (kubectl) est bien connecté au serveur, c’est-à-dire au cluster.

Lister les nœuds

Dans cette étape, vous allez examiner les nœuds de votre cluster. Dans Kubernetes, un nœud est une machine de travail, virtuelle ou physique. Comme nous utilisons Minikube, nous nous attendons à voir un seul nœud qui joue à la fois le rôle de control plane et celui de worker.

Dans les clusters plus importants, ces rôles sont souvent séparés. Les nœuds du control plane se concentrent sur l’orchestration, tandis que les nœuds worker exécutent les charges de travail des applications. Minikube regroupe ces rôles sur un seul nœud afin de simplifier l’environnement d’apprentissage, mais la sortie de la commande présente les mêmes concepts que ceux que vous rencontrerez en production.

Pour lister tous les nœuds du cluster, utilisez la commande get nodes :

kubectl get nodes

Vous devriez obtenir une sortie similaire à la suivante :

NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   5m20s   v1.26.1

Voici la signification des colonnes :

  • NAME : le nom du nœud, ici minikube.
  • STATUS : l’état doit être Ready, ce qui indique que le nœud est sain et prêt à accepter des charges de travail.
  • ROLES : le rôle du nœud, par exemple control-plane.
  • AGE : la durée depuis laquelle le nœud fonctionne.
  • VERSION : la version de Kubernetes installée sur le nœud.

Si l’état est NotReady, cela signifie généralement que le nœud est encore en cours de démarrage ou qu’un problème réseau est survenu. Puisque l’état est Ready, votre cluster est entièrement opérationnel.

Résumé

Dans ce laboratoire, vous avez configuré votre environnement pour accéder à un cluster Kubernetes. Vous avez :

  1. Démarré un cluster Kubernetes local avec Minikube.
  2. Vérifié que votre contexte kubectl cible correctement le cluster local.
  3. Récupéré les informations du cluster afin de confirmer la connectivité avec le serveur d’API.
  4. Listé les nœuds pour vous assurer que l’infrastructure du cluster est prête et saine.

Ces étapes constituent la base nécessaire avant de déployer des applications dans Kubernetes. Vous disposez maintenant d’un environnement local fonctionnel pour poursuivre votre apprentissage de Kubernetes.