Dans cet article nous allons aborder les principales commandes kubernetes.
Informations sur Kubernetes :
kubectl version
Afficher tous les pods, services etc :
kubectl get all
Informations des pods :
kubectl get pods # Lister tous les Pods
kubectl get deployment my-dep # Lister un déploiement particulier
kubectl get pod my-pod -o yaml # Afficher le YAML du Pod
# Lister les Pods contenant "load-balancer-example" dans la variable "run"
kubectl get pods --selector="run=load-balancer-example" --output=wide
kubectl get pods --show-labels # Afficher les labels pour tous les Pods
kubectl describe pods my-pod # Affichage verbeux
kubectl explain pods # Afficher la documentation pour les manifests pod
Informations des services :
kubectl get services # Lister tous les services
kubectl get svc my-svc # Afficher les détailles du service
kubectl describe svc my-svc # Affichage verbeux
Informations des deployments :
kubectl get deployments my-app # Afficher les informations du deployment my-app
kubectl describe deployments my-app # Affichage verbeux des informations du deployment my-app
Informations de ReplicaSet :
kubectl get replicasets
kubectl describe replicasets
kubectl apply -f ./my-manifest.yaml # Créer une ou plusieurs ressources
kubectl apply -f ./my1.yaml -f ./my2.yaml # Créer depuis plusieurs fichiers
kubectl apply -f ./dir # Créer une ou plusieurs ressources depuis tous les manifests du dossier dir
kubectl apply -f https://URL # Créer une ou plusieurs ressources depuis une url
kubectl create deployment nginx --image=nginx # Démarrer une instance unique de nginx
# Création d'un service exposant le deployment hello-world
kubectl expose deployment hello-world --type=NodePort --name=example-service
kubectl run nginx --image=nginx --restart=Never -n mynamespace # Exécuter le pod nginx dans un namespace spécifique
kubectl attach my-pod -i # S'attacher à un conteneur en cours d'exécution
kubectl port-forward my-pod 5000:6000 # Écouter le port 5000 de la machine locale et forwarde vers le port 6000 de my-pod
kubectl exec my-pod -- ls / # Exécuter une commande dans un pod existant (cas d'un seul conteneur)
kubectl exec my-pod -c my-container -- ls / # Exécuter une commande dans un pod existant (cas multi-conteneurs)
kubectl exec -it my-pod -- /bin/bash # Se connecter en bash au pod my-pod
kubectl delete -f ./pod.json # Supprimer un pod en utilisant le type et le nom spécifiés dans pod.json
kubectl delete pod,service baz foo # Supprimer les pods et services ayant les mêmes noms "baz" et "foo"
kubectl delete pods,services -l name=myLabel # Supprimer les pods et services ayant le label name=myLabel
kubectl -n my-ns delete pod,svc --all # Supprimer tous les pods et services dans le namespace my-ns
kubectl delete services example-service # Suppression du service
kubectl delete deployment hello-world # Suppression du deployment
kubectl logs my-pod # Afficher les logs du pod (stdout)
kubectl logs -l name=myLabel # Afficher les logs des pods ayant le label name=myLabel (stdout)
kubectl logs my-pod -c my-container # Afficher les logs d'un conteneur particulier du pod (stdout, cas d'un pod multi-conteneurs)
kubectl logs -f my-pod # Fait défiler (stream) les logs du pod (stdout)
kubectl logs -f my-pod -c my-container # Fait défiler (stream) les logs d'un conteneur particulier du pod (stdout, cas d'un pod multi-conteneurs)
kubectl top pod POD_NAME --containers # Afficher les métriques pour un pod donné et ses conteneurs
minikube start # Démarrage de minikube
minikube stop # Arrêt de minikube
minikube delete # Suppression de tout dans minikube (pods, services) et arrêt.
minikube dashboard # Affiche le dashboard
minikube service my-app # Affiche dans un navigateur le service my-app
minikube ip # Récupération de l'IP minikube
minikube service my-app --url # Affichage de l'url du service my-app
# Permettre d'exposer plus de port
minikube start --extra-config=apiserver.service-node-port-range=80-30000
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: default
spec:
selector:
matchLabels:
run: my-app
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
labels:
run: my-app
spec:
restartPolicy: Always
terminationGracePeriodSeconds: 60
containers:
- name: my-app
image: nginx:alpine
ports:
- containerPort: 80
imagePullPolicy: Always
apiVersion: v1
kind: Service
metadata:
name: my-app
labels:
run: my-app
namespace: default
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
protocol: TCP
name: http
nodePort: 80
selector:
run: my-app
Source : https://kubernetes.io/fr/docs/reference/kubectl/cheatsheet/
Pour aller plus loin :
LauLem.com - Conditions Générales d'Utilisation - Informations Légales - Charte relative aux cookies - Charte sur la protection des données personnelles - A propos