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.
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
kubectl config current-context --kubeconfig=/root/lab.kubeconfig
kubectl config view --kubeconfig=/root/lab.kubeconfig --minify
KUBECONFIG=/root/lab.kubeconfig kubectl config current-context
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