Créer une architecture de cluster Kubernetes

KubernetesBeginner
Pratiquer maintenant

Introduction

Kubernetes est une plateforme d'orchestration de conteneurs qui automatise le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Ce défi explore l'architecture de Kubernetes, notamment les composants qui constituent un cluster Kubernetes et leurs interactions.

Composants du plan de contrôle Kubernetes

Le plan de contrôle (control plane) de Kubernetes gère l'état global du cluster ainsi que le déploiement et la mise à l'échelle des applications. Les composants du plan de contrôle comprennent :

  • kube-apiserver : Le point d'entrée frontal du plan de contrôle Kubernetes, traitant toutes les requêtes de gestion vers le cluster.
  • etcd : Un magasin de données clé-valeur distribué qui stocke les données de configuration du cluster Kubernetes.
  • kube-scheduler : Responsable de la planification des pods pour qu'ils s'exécutent sur les nœuds du cluster.
  • kube-controller-manager : Exécute les contrôleurs qui gèrent l'état des différents objets Kubernetes.

Tâches

Votre mission consiste à récupérer et à afficher l'état des composants du plan de contrôle, incluant le kube-apiserver, etcd, kube-scheduler et kube-controller-manager.

Exigences

  • Utilisez une commande kubectl pour récupérer l'état des composants du plan de contrôle.
  • Exécutez la commande dans le répertoire /home/labex/project.
  • La sortie doit afficher le statut de chaque composant du plan de contrôle.

Exemple

Voici un exemple du résultat attendu lors de la récupération de l'état des composants du plan de contrôle :

NAME                 STATUS    MESSAGE                         ERROR
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true","reason":""}
scheduler            Healthy   ok

Composants des nœuds Kubernetes

Les composants des nœuds (nodes) Kubernetes exécutent les conteneurs et fournissent l'environnement d'exécution pour les applications. Les composants des nœuds comprennent :

  • kubelet : L'agent de nœud Kubernetes qui gère l'état du nœud et exécute les conteneurs.
  • kube-proxy : Le proxy réseau Kubernetes qui achemine le trafic vers le conteneur approprié.

Tâches

Affichez les informations relatives aux nœuds en cours d'exécution dans le cluster Kubernetes, y compris le nom du nœud, son statut et d'autres détails pertinents.

Exigences

  • Utilisez une commande kubectl pour lister les nœuds du cluster Kubernetes.
  • Exécutez la commande dans le répertoire /home/labex/project.
  • La sortie doit montrer les détails de chaque nœud du cluster.

Exemple

Voici un exemple du résultat attendu lors de l'affichage des nœuds :

NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   2m52s   v1.26.1

Composants des Pods Kubernetes

Un pod Kubernetes est la plus petite unité déployable dans Kubernetes, représentant une instance unique d'un processus en cours d'exécution dans le cluster. Chaque pod se compose d'un ou plusieurs conteneurs qui partagent le même espace de noms réseau et les mêmes volumes de stockage.

Tâches

  1. Créez un fichier nommé simple-pod.yaml contenant la configuration d'un pod pour un conteneur Nginx.
  2. Déployez le pod en utilisant la commande kubectl appropriée.
  3. Affichez les informations sur les pods en cours d'exécution dans le cluster Kubernetes.

Exigences

  • Créez un fichier nommé simple-pod.yaml dans le répertoire /home/labex/project avec la configuration d'un pod nommé simple-pod utilisant l'image Nginx.
  • Utilisez une commande kubectl pour créer le pod à partir du fichier YAML.
  • Utilisez une autre commande kubectl pour lister les pods actifs dans le cluster Kubernetes.

Exemple

Voici un exemple du résultat attendu lors de l'affichage des pods :

pod/simple-pod created
NAME         READY   STATUS    RESTARTS   AGE
simple-pod   1/1     Running   0          29s

Composants des Services Kubernetes

Un service Kubernetes est une abstraction qui définit un ensemble logique de pods et une politique pour y accéder. Les composants du service comprennent :

  • IP du Service : Une adresse IP virtuelle attribuée au service.
  • Port du Service : Un numéro de port attribué au service.
  • Endpoint : Une liste d'adresses IP et de numéros de ports pointant vers les pods situés derrière le service.

Tâches

  1. Créez un fichier nommé nginx-service.yaml avec une configuration de service pour le pod Nginx.
  2. Déployez le service en utilisant la commande kubectl appropriée.
  3. Affichez les informations sur les services actifs dans le cluster Kubernetes.

Exigences

  • Créez un fichier nommé nginx-service.yaml dans le répertoire /home/labex/project avec la configuration d'un service nommé nginx-service exposant le port 80.
  • Utilisez une commande kubectl pour créer le service à partir du fichier YAML.
  • Utilisez une autre commande kubectl pour lister les services en cours d'exécution dans le cluster Kubernetes.

Exemple

Voici un exemple du résultat attendu lors de l'affichage des services :

NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP   5m42s
nginx-service   ClusterIP   10.96.184.71   <none>        80/TCP    4s

Résumé

Dans ce défi, nous avons exploré l'architecture de Kubernetes, notamment le plan de contrôle, les nœuds, les pods et les services. Nous avons appris à vérifier l'état des différents composants, à créer un pod et un service simples, et à exposer un pod à des applications externes. La compréhension des composants d'un cluster Kubernetes et de leurs interactions constitue une base solide pour le déploiement et la gestion d'applications conteneurisées.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer