Informations sur le 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. Dans ce laboratoire (lab), vous allez découvrir comment utiliser la commande cluster-info pour obtenir des informations sur votre cluster Kubernetes. À la fin du laboratoire, vous comprendrez comment démarrer un cluster Kubernetes, récupérer les informations essentielles sur le cluster, inspecter les composants internes et tester la connectivité du serveur API.

Ce laboratoire est conçu pour les débutants, et aucune expérience préalable avec Kubernetes n'est requise.

Démarrer le cluster Kubernetes

Un cluster Kubernetes nécessite un environnement de fonctionnement. Dans ce laboratoire (lab), nous allons utiliser Minikube, un outil qui vous permet d'exécuter un cluster Kubernetes localement. Suivez ces étapes :

  1. Ouvrez votre terminal et assurez-vous que vous êtes dans le répertoire /home/labex/project :

    cd ~/project
    
  2. Démarrez le cluster Minikube :

    minikube start
    
    • Minikube crée un cluster Kubernetes mono - noeud.
    • Ce processus peut prendre quelques minutes, selon votre système. Lors de l'initialisation, divers composants Kubernetes seront configurés.

Initialisation du cluster Minikube

Récupérer les informations de base sur le cluster

Une fois que Minikube est en cours d'exécution, utilisez la commande kubectl cluster-info pour afficher les informations sur le cluster. Exécutez la commande suivante :

kubectl cluster-info
  • L'URL du serveur API est le point d'accès principal pour interagir avec votre cluster.
  • CoreDNS gère la découverte de services et la résolution DNS au sein du cluster.

Exemple de sortie :

Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
  • L'adresse https://192.168.49.2:8443 est l'URL du serveur API Kubernetes. C'est là que toutes les commandes kubectl sont envoyées.
  • Le service CoreDNS aide Kubernetes à résoudre les noms de domaine pour les services et les pods.

Inspecter en détail les composants du cluster

Pour mieux comprendre le cluster et ses composants internes, utilisez :

kubectl cluster-info dump

Cette commande fournit des informations détaillées sur les composants clés :

  • etcd : Un magasin clé-valeur pour toutes les données du cluster.
  • kube-apiserver : Le point d'entrée pour les requêtes de l'API Kubernetes.
  • kube-scheduler : Assigne les charges de travail (pods) aux nœuds disponibles.
  • kube-controller-manager : Maintient l'état du cluster (par exemple, s'assure que le nombre souhaité de réplicas de pods est en cours d'exécution).

Exemple de sortie :

Cette commande génère une sortie détaillée décrivant la configuration et l'état des composants système Kubernetes. Vous pouvez rediriger la sortie vers un fichier pour faciliter l'analyse :

kubectl cluster-info dump > cluster-details.txt

Cela enregistrera la sortie dans le fichier cluster-details.txt de votre répertoire actuel.

Afficher les nœuds du cluster

Les nœuds (nodes) sont les machines qui exécutent vos charges de travail dans Kubernetes. Pour lister les nœuds de votre cluster, exécutez :

kubectl get nodes
  • Le nom du nœud (par exemple, minikube) identifie la machine.
  • Le statut (Ready) indique que le nœud est en bonne santé et peut exécuter des charges de travail.
  • Dans un cluster Minikube, le nœud agit à la fois comme le plan de contrôle (control plane) et le nœud de travail (worker node).

Exemple de sortie :

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   5m    v1.20.0

Tester l'accès au serveur API

Le serveur API est un composant essentiel du plan de contrôle (control plane) Kubernetes. Vous pouvez tester son accessibilité en exécutant :

curl $(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}') --insecure
  • Cette commande récupère l'URL du serveur API et effectue une simple requête à cette adresse.
  • Le flag --insecure contourne la vérification du certificat SSL, ce qui est acceptable dans cette configuration locale.

Exemple de sortie :

Si le serveur API est accessible, la réponse devrait ressembler à ceci :

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {},
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {},
  "code": 403
}

Cette réponse confirme que le serveur API est en cours d'exécution, mais refuse l'accès en raison de l'absence d'authentification, ce qui est prévu.

Résumé

Dans ce laboratoire, vous avez appris à :

  • Démarrer un cluster Kubernetes avec Minikube.
  • Utiliser kubectl cluster-info pour récupérer les détails du cluster.
  • Inspecter en profondeur les composants du cluster avec kubectl cluster-info dump.
  • Lister les nœuds du cluster en utilisant kubectl get nodes.
  • Tester la connectivité du serveur API avec une commande curl.

Cette expérience pratique a fourni une base pour comprendre et explorer les clusters Kubernetes. Ces commandes sont essentielles pour le débogage et la gestion des environnements Kubernetes.

Étapes suivantes :

  • Explorer les pods et les charges de travail dans Kubernetes.
  • Apprendre à créer des services pour exposer des applications.
  • Expérimenter la mise à l'échelle des charges de travail dans un cluster.

Continuez à pratiquer et bonne apprentissage!