Créer une architecture de cluster Kubernetes

KubernetesKubernetesBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ClusterInformationGroup(["Cluster Information"]) kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/ClusterInformationGroup -.-> kubernetes/cluster_info("Cluster Info") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") subgraph Lab Skills kubernetes/get -.-> lab-23730{{"Créer une architecture de cluster Kubernetes"}} kubernetes/create -.-> lab-23730{{"Créer une architecture de cluster Kubernetes"}} kubernetes/apply -.-> lab-23730{{"Créer une architecture de cluster Kubernetes"}} kubernetes/cluster_info -.-> lab-23730{{"Créer une architecture de cluster Kubernetes"}} kubernetes/describe -.-> lab-23730{{"Créer une architecture de cluster Kubernetes"}} end

Composants du plan de contrôle de Kubernetes

Le plan de contrôle 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 sont les suivants :

  • kube-apiserver : L'interface frontale du plan de contrôle de Kubernetes, qui traite toutes les requêtes de gestion du cluster.
  • etcd : Un stockage 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 des nœuds du cluster.
  • kube-controller-manager : Exécute des contrôleurs qui gèrent l'état de divers objets Kubernetes.

Tâches

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

Exigences

  • Utiliser une commande kubectl pour récupérer l'état des composants du plan de contrôle.
  • Exécuter la commande dans le répertoire /home/labex/project.
  • La sortie devrait montrer l'état de chaque composant du plan de contrôle.

Exemple

Voici un exemple de la sortie attendue 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
✨ Vérifier la solution et pratiquer

Composants des nœuds de Kubernetes

Les composants des nœuds de Kubernetes exécutent des conteneurs et fournissent l'environnement d'exécution pour les applications. Les composants des nœuds sont les suivants :

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

Tâches

Afficher des informations sur les nœuds exécutant dans le cluster Kubernetes, y compris le nom du nœud, l'état et autres détails pertinents.

Exigences

  • Utiliser une commande kubectl pour lister les nœuds dans le cluster Kubernetes.
  • Exécuter la commande dans le répertoire /home/labex/project.
  • La sortie devrait montrer des détails sur chaque nœud du cluster.

Exemple

Voici un exemple de la sortie attendue lors de l'affichage des nœuds :

NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   2m52s   v1.26.1
✨ Vérifier la solution et pratiquer

Composants des pods de Kubernetes

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

Tâches

  1. Créer un fichier nommé simple-pod.yaml avec une configuration de pod pour un conteneur Nginx.
  2. Déployer le pod à l'aide de la commande kubectl appropriée.
  3. Afficher des informations sur les pods en cours d'exécution dans le cluster Kubernetes.

Exigences

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

Exemple

Voici un exemple de la sortie attendue lors de l'affichage des pods :

pod/simple-pod créé
NOM         PRÊT   STATUT    REDÉMARRAGES   ÂGE
simple-pod   1/1     En cours d'exécution   0          29s
✨ Vérifier la solution et pratiquer

Composants des services de Kubernetes

Un service Kubernetes est une abstraction qui définit un ensemble logique de pods et une politique d'accès à ceux-ci. Les composants du service sont les suivants :

  • Adresse IP du service : Une adresse IP virtuelle attribuée au service.
  • Port du service : Un numéro de port attribué au service.
  • Point de terminaison : Une liste d'adresses IP et de numéros de port qui pointent vers les pods derrière le service.

Tâches

  1. Créer un fichier nommé nginx-service.yaml avec une configuration de service pour le pod Nginx.
  2. Déployer le service à l'aide de la commande kubectl appropriée.
  3. Afficher des informations sur les services en cours d'exécution dans le cluster Kubernetes.

Exigences

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

Exemple

Voici un exemple de la sortie attendue lors de l'affichage des services :

NOM            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   ÂGE
kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP   5m42s
nginx-service   ClusterIP   10.96.184.71   <none>        80/TCP    4s
✨ Vérifier la solution et pratiquer

Sommaire

Dans ce défi, nous avons exploré l'architecture de Kubernetes, y compris les composants du plan de contrôle, des nœuds, des pods et des services. Nous avons appris à vérifier l'état de divers composants, à créer un pod et un service simples, et à exposer un pod aux applications externes. Comprendre les composants qui constituent un cluster Kubernetes et leurs interactions fournit une base solide pour déployer et gérer des applications emballées dans des conteneurs.