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
kubectlpour 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
kubectlpour 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
- Créez un fichier nommé
simple-pod.yamlcontenant la configuration d'un pod pour un conteneur Nginx. - Déployez le pod en utilisant la commande
kubectlappropriée. - Affichez les informations sur les pods en cours d'exécution dans le cluster Kubernetes.
Exigences
- Créez un fichier nommé
simple-pod.yamldans le répertoire/home/labex/projectavec la configuration d'un pod nommésimple-podutilisant l'image Nginx. - Utilisez une commande
kubectlpour créer le pod à partir du fichier YAML. - Utilisez une autre commande
kubectlpour 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
- Créez un fichier nommé
nginx-service.yamlavec une configuration de service pour le pod Nginx. - Déployez le service en utilisant la commande
kubectlappropriée. - Affichez les informations sur les services actifs dans le cluster Kubernetes.
Exigences
- Créez un fichier nommé
nginx-service.yamldans le répertoire/home/labex/projectavec la configuration d'un service nomménginx-serviceexposant le port 80. - Utilisez une commande
kubectlpour créer le service à partir du fichier YAML. - Utilisez une autre commande
kubectlpour 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.


