Skip to main content

[Kubernetes] Cheat-sheet

Introduction

Kubernetes est un gestionnaire de conteneurs avancé qui permet de créer des clusters, faire de la haute disponibilité, du load balancing et apporte beaucoup d'avantages lors du déploiement à grande échelle d'une application.

image.png

Configuration kubectl

Utiliser un fichier de configuration spécifique

export KUBECONFIG=<PATH_TO_KUBECONFIG>

Définir le cluster

kubectl config set-cluster <CLUSTER_NAME> --server="<IP|FQDN>"

Définir l'utilisateur

kubectl config set-credentials <USERNAME> --client-certificate=<CRT_PATH> --client-key=<KEY_PATH>

Définir le contexte

kubectl config set-context <CONTEXT_NAME> --cluster=<CLUSTER_NAME> --user=<USERNAME>
kubectl config use-context <CONTEXT_NAME>

Pods

Les pods sont des groupes de un ou plusieurs conteneurs. Il s'agit de la plus petite entité manipulable par Kubernetes. :

image.png

Créer un pod

Les pods peuvent être créés à partir de fichiers de configuration au format YAML tel que mypod.yaml :

apiVersion: v1
kin: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mycontainer
    image: nginx

Le pod ci-dessus permettra de déployer un conteneur avec l'image nginx.

Une fois le fichier de configuration établit, on peut déployer le pod grâce à la commande suivante :

kubectl apply -f mypod.yaml

Vous pouvez aussi déployer des pods à la volée grâce à la commande suivante (non-recommandé) :

kubectl run <POD_NAME> --image=<IMG>

Supprimer un pod

kubectl delete pod <POD_NAME>

Déploiements

Débogage et monitoring

Vérifier la configuration de kubectl

kubectl config view

Vérifier la création des pods

kubectl get pods

Pour afficher en détail le status des pods, vous pouvez utiliser la commande suivante : 

kubectl get pods -o wide

Pour vérifier un pod spécifique :

kubectl describe pod <POD_NAME>

Afficher les logs d'un pod

kubectl logs <POD_NAME>

Exécuter une commande dans un pod

kubectl exec <POD_NAME> -- <CMD>