Aller au contenu

kind

À quoi il sert

kind (Kubernetes IN Docker), projet d'un groupe d'intérêt spécial (SIG) de Kubernetes, crée des clusters Kubernetes complets sur un poste ou dans un job de CI : chaque nœud est un conteneur Docker qui fait tourner le kubelet et un runtime de conteneurs. Un cluster se crée et se détruit en une commande, avec une version de Kubernetes choisie par l'image de nœud. kind load docker-image copie une image locale directement dans les nœuds, sans registre.

Quand le choisir

Pour un laboratoire jetable, des tests d'intégration en CI ou l'essai d'un outil (comme Argo CD) sans compte chez un fournisseur. Plusieurs clusters peuvent cohabiter sur le même réseau Docker, ce qui permet de simuler un hub et des clusters cibles. Ce n'est pas un cluster de production : pour cela, un Kubernetes managé comme Kapsule.

Points d'attention

  • Sans --kubeconfig, kind create cluster ajoute le cluster à ~/.kube/config et en fait le contexte courant : sur un poste qui administre aussi de vrais clusters, la commande kubectl suivante peut viser le mauvais cluster. Utilisez un fichier kubeconfig propre au laboratoire, et vérifiez kubectl config current-context.
  • Épinglez l'image de nœud (--image) pour rester dans la matrice de versions testées des outils que vous installez : la version de Kubernetes par défaut d'une version de kind peut être plus récente.
  • Sous Linux, plusieurs clusters dépassent souvent la limite fs.inotify.max_user_instances de l'hôte : kube-proxy redémarre en boucle avec too many open files. La documentation de kind recommande de relever cette limite (et fs.inotify.max_user_watches) sur l'hôte.
  • L'adresse de l'API inscrite dans le kubeconfig (127.0.0.1 et un port publié) n'est joignable que depuis le poste, pas depuis un autre cluster.
  • kind load docker-image peut échouer sur une image multi-plateforme dont seules certaines plateformes sont présentes localement : laissez alors le nœud tirer l'image lui-même.

Par où commencer

La leçon GitOps : les principes et le modèle tiré, qui monte le laboratoire du cours GitOps sur kind, puis Plusieurs clusters, qui ajoute un second cluster kind.