Kubernetes Kubernetes

Configurer un cluster local et prendre en main kubectl

Lancez un cluster à nœud unique avec minikube, connectez-vous avec kubectl et apprenez les commandes que vous utiliserez tous les jours.

10 min Débutant

Les clusters de production ont de nombreux nœuds, mais pour apprendre, vous en voulez un sur votre propre machine. Les choix courants sont minikube, kind et l’option Kubernetes intégrée à Docker Desktop. Ce guide utilise minikube avec le driver Docker. Les commandes kubectl sont identiques sur chacun d’eux, et sur n’importe quel cluster réel.

Installer un outil de conteneurs, minikube et kubectl

minikube a besoin d’un runtime de conteneurs ou d’une machine virtuelle pour héberger son nœud. Docker est le choix le plus courant : installez donc d’abord Docker Desktop (ou Docker Engine sous Linux) et assurez-vous qu’il est lancé. Installez ensuite minikube et kubectl. Sur macOS avec Homebrew :

brew install minikube kubectl

Pour les autres systèmes, suivez la page d’installation de minikube et la documentation d’installation de kubectl, qui contiennent des instructions à jour pour chaque OS. minikube nécessite environ 2 CPU, 2 Go de mémoire libre et 20 Go d’espace disque.

Démarrer le cluster

minikube start --driver=docker
minikube status

Le premier démarrage est lent, car minikube télécharge les images dont il a besoin. Le paramètre de driver signifie que tout le nœud minikube s’exécute comme un conteneur Docker sur votre machine. À l’intérieur de ce nœud, Kubernetes exécute vos Pods avec son propre runtime de conteneurs : il y a donc deux couches de conteneurs. Cela peut dérouter au début, mais n’affecte pas votre façon d’utiliser le cluster.

Vérifier que kubectl peut l’atteindre

kubectl cluster-info
kubectl get nodes

Vous devriez voir un nœud avec le rôle control-plane et le statut Ready. Ce nœud unique exécute à la fois le plan de contrôle et vos charges de travail, ce qui est exactement le raccourci de développement local décrit dans le guide sur l’architecture.

Comprendre le kubeconfig et les contextes

Pour que kubectl communique avec un cluster, il a besoin de l’adresse du cluster et d’identifiants. Il les lit dans un fichier kubeconfig, par défaut ~/.kube/config, et minikube start y ajoute une entrée pour vous. Chaque entrée combine un cluster, un utilisateur et éventuellement un namespace par défaut en un contexte :

kubectl config get-contexts
kubectl config current-context
kubectl config use-context minikube

Vérifiez le contexte courant avant d’exécuter quoi que ce soit de destructif. Si votre kubeconfig contient aussi un cluster de staging ou de production, c’est le contexte courant qui décide lequel vos commandes visent.

Apprendre les commandes du quotidien

kubectl get pods                # liste les Pods du namespace courant
kubectl get pods -A             # liste les Pods de tous les namespaces
kubectl describe pod NAME       # détails et événements récents d'un Pod
kubectl logs NAME               # la sortie d'un conteneur
kubectl delete pod NAME         # supprime un Pod
kubectl api-resources           # tous les types de ressources connus du cluster
kubectl explain pod.spec        # référence intégrée pour n'importe quel champ
kubectl get --help              # aide pour n'importe quelle commande

kubectl explain mérite d’être retenu : il documente chaque champ de chaque ressource, directement depuis l’API du cluster, si bien que vous avez rarement besoin de quitter le terminal pour chercher un champ.

Quand vous avez terminé pour la journée, minikube stop met le cluster en pause et minikube delete le supprime entièrement.

Guides populaires