Table des matières
Kubernetes
Principes
Architecture
Namespaces
Objet qui permet de ranger dans différents environnements
Labels
Affecté à un objet pour pouvoir faire différentes catégories. Peut être utilisé pour des commandes y compris delete par exemple.
kubectl
apply
Applique un changement de configuration à une ressource depuis un fichier ou stdin.
kubctl apply -f <fichier.yaml>
get
Liste une ou plusieurs ressources.
kubectl get namespaces kubectl -n <namespace> get nodes kubectl -n <namespace> get pods kubectl -n <namespace> get all kubectl -n <namespace> get ingress kubectl -n <namespace> get pvc kubectl -n <namespace> get configmap kubectl -n <namespace> get secret kubectl -w -n <namespace> get events
Interroger tous les namespaces
- --all-namespaces
Options d'affichage
- --output=wide ou -o wide
- --output=json ou -o json
- --output=yaml ou -o yaml
Exemple
- Interrogation des noeuds
kubectl get nodes
- Interrogation sans entête en affichant juste le nom
kubectl get namespaces --no-headers -o custom-columns=":metadata.name" kubectl get pods --no-headers -o custom-columns=":metadata.name"
- Interrogation des pods sur un namespace
kubectl get pods -n <namespace>
- Interrogation des pods avec le node sur lequel ils tournent et adresse IP des pods
kubectl get pods --all-namespaces -o wide
describe
Affiche l'état détaillé d'une ou plusieurs ressources.
kubectl describe pods <nom du pod>
logs
Affiche les logs d'un container dans un pod (sortie standard et sortie d'erreur).
Pour un pod
kubectl logs <nom du pod>
Pour un container au sein d'un pod
kubectl logs -c <nom du container>
create
Crée une ou plusieurs ressources depuis un fichier ou stdin.
kubctl create pod <nom du pod> --image <nom image> kubectl create job <nom du job> --image <nom image> kubectl create deployment <nom de deployment> --image <nom image>
Par défaut quand on lance un pod il considère que c'est une application à boucle d'évènements. Pour lancer un script qui se termine au bout d'un moment il faut lancer un job.
delete
Supprime des ressources soit depuis un fichier ou stdin, ou en indiquant des sélecteurs de label, des noms, des sélecteurs de ressources ou des ressources.
kubectl delete namespaces <namespace>
rollout
Interrogation
kubectl rollout status deployment.apps/lbs-maria # état du déploiement kubectl rollout history deployment.apps/lbs-maria # historique des déploiements kubectl rollout history deployment.apps/lbs-maria --revision 35 # détail d'un déploiement
Redémarrage
kubectl rollout restart deployment <pod>
Retour arrière
kubectl rollout undo deployment.apps/lbs-maria # retour à la version précédente kubectl rollout undo deployment.apps/lbs-maria --to-revision 30 # retour à la version 30
exec
Exécute une commande à l'intérieur d'un conteneur dans un pod. La commande bash permet d'ouvrir une console.
kubectl -n <namespace> exec -it <pod> -- bash
kubectl -n <namespace> exec -it <pod> -- rm -f fichier.* # ne fonctionne pas kubectl -n <namespace> exec -it <pod> -- sh -c "rm -f fichier.*" # OK
cp
kubectl -n <namespace> cp <pod>:<chemin_vers_fichier_distant> <chemin_vers_fichier_local> -c <nom_du_module> kubectl -n <namespace> cp <chemin_vers_fichier_local> <pod>:<chemin_vers_fichier_distant> -c <nom_du_module> kubectl -n project6 cp lbs-maria-5d49f758b6-drt2p:/tmp/toto toto -c lbs-maria
exec: "tar": executable file not found in $PATH: unknown
cat <fichier_local> | kubectl exec -i -n <namespace> <pod> -c <container> -- sh -c "cat > <fichier_distant>" # copie vers le pod kubectl exec -n <namespace> <pod> -- cat <fichier_distant> > <fichier_local>
scale
kubectl -n <namespace> get deployments kubectl -n <namespace> scale deployment <nom> --replicas=0 # on supprime toutes les instances du pod kubectl -n <namespace> scale deployment --all --replicas=0 # on supprime toutes les instances de tous les pods kubectl -n <namespace> scale deployment <nom> --replicas=1 # création d'une instance du pod kubectl -n <namespace> get sts kubectl -n <namespace> scale statefulset <nom> --replicas=1 # création d'une instance du pod (cas statefulset au lieu de deployment)

