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.
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
-
Ce qu'est Kubernetes et les problèmes qu'il résout Pourquoi les conteneurs seuls ne passent plus à l'échelle, et comment Kubernetes transforme un groupe de machines en une seule plateforme. -
Comment fonctionne un cluster Kubernetes : plan de contrôle et nœuds Les composants qui font tourner un cluster, et ce qui se passe entre kubectl apply et un conteneur en cours d'exécution. -
Deployments : mise à l'échelle, auto-réparation et mises à jour progressives Exécutez des réplicas d'un Pod, mettez-les à jour sans interruption et revenez en arrière quand une version tourne mal. -
Services : un réseau stable pour des Pods éphémères Donnez une adresse stable à vos Pods, exposez-les à l'intérieur et à l'extérieur du cluster, et restreignez qui peut parler à qui. -
Déboguer un Pod en échec : describe, logs, exec et port-forward Une checklist reproductible pour comprendre pourquoi un Pod est Pending, plante ou ne répond pas.