Aide-mémoire CKAD

exemple kubeconfig Kubernetes

Un kubeconfig nomme un cluster, un user, et un contexte qui les relie. Le contexte courant est celui que kubectl utilise.

Un officier glisse une carte lumineuse dans la serrure d’une porte blindée. Un officier glisse une carte lumineuse dans la serrure d’une porte blindée.
Écrire un fichier
kubectl config set-cluster lab --server=https://10.0.0.1:6443 --certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs=true --kubeconfig=/root/lab.kubeconfig
kubectl config set-credentials lab-admin --client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key --embed-certs=true --kubeconfig=/root/lab.kubeconfig
kubectl config set-context lab --cluster=lab --user=lab-admin --namespace=default --kubeconfig=/root/lab.kubeconfig
kubectl config use-context lab --kubeconfig=/root/lab.kubeconfig
Le relire
kubectl config current-context --kubeconfig=/root/lab.kubeconfig
kubectl config view --kubeconfig=/root/lab.kubeconfig --minify
KUBECONFIG=/root/lab.kubeconfig kubectl config current-context
Namespace du contexte courant
kubectl config set-context --current --namespace=default

Champs

kubectl config set-cluster
URL du serveur et CA du cluster. Pas de namespace ici. --embed-certs=true copie le PEM dans le fichier.
kubectl config set-credentials
Certificat et clé client pour le nom d’utilisateur. --embed-certs=true, sinon le fichier ne garde que des chemins de ce nœud.
kubectl config set-context
--cluster, --user, --namespace. Ça ajoute le contexte. --current change le namespace de celui déjà en cours.
kubectl config use-context
Pose current-context. set-context seul laisse le fichier sur le contexte qui était courant.
kubectl config current-context
Affiche la chaîne que kubectl va utiliser. Vide signifie que use-context n’a pas été lancé sur ce fichier.
kubectl config view
--minify affiche le contexte courant. Ajouter --kubeconfig quand la tâche nomme un fichier.
KUBECONFIG
Même aiguillage que --kubeconfig, pour une commande. Sans ça, kubectl lit ~/.kube/config.

Pièges

  • Le namespace est un champ du contexte. set-cluster prend le serveur et la CA. Il n’a pas de flag namespace.
  • set-context ajoute l’entrée. use-context pose current-context. Un fichier peut lister un contexte et n’avoir aucun contexte courant.
  • --kubeconfig écrit ce fichier. Sans lui, kubectl édite ~/.kube/config. KUBECONFIG= est le même aiguillage pour une commande. --current édite le fichier actif.
  • --embed-certs=true stocke le PEM dans le fichier. Sans lui, le fichier garde des chemins qui n’existent que sur ce nœud. Avec kubeadm, la CA du cluster est /etc/kubernetes/pki/ca.crt. Utiliser le serveur et les certificats imprimés par la tâche.

Doc officielle kubeconfig files Configure access to multiple clusters

S’entraîner sur un cluster réel →