Installer kubectl

Avec chocolatey (en powershell admin)

choco install kubernetes-cli

Manuellement

  • Télécharger kubectl

https://storage.googleapis.com/kubernetes-release/release/v1.11.0/bin/windows/amd64/kubectl.exe

  • L'installer dans un des répertoires du PATH (echo %PATH%)

Commandes de base

Aide

  • Afficher la liste des commandes
kubectl
  • Afficher l'aide pour une commande
kubectl run --help
  • Afficher la documentation d'un type de ressource
kubectl explain pod

Utiliser les namespaces

Remplacer <trigramme> par votre trigramme dans les commandes ci-dessous.

  • Créer un namespace
kubectl create namespace <trigramme>
  • Afficher les ressources d'un namespace
kubectl get all --namespace <trigramme>
kubectl get all -n <trigramme>

Pour ne pas avoir à spécifier le namespace à chaque commande, il est possible de configurer un contexte kubectl qui utilisera un namespace donné pour chaque commande

kubectl config set-context dtl-kube-training --namespace=<trigramme> --cluster=dtl-kube-training --user=dtl-kube-training

Il est également possible de lister les ressources dans tous les namespaces

kubectl get pods --all-namespaces
  • Exemple, lister toutes les ressources de tous les namespaces
kubectl get all --all-namespaces

Déployer une image

Kubectl propose un certain nombre de commandes "simplifiées" qui permettent par exemple de créer des déploiements d'un coup. - Créer un déploiement

    kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10
  • Afficher les ressources crées par la commande précédente
kubectl get all
  • Afficher le manifeste correspondant à un ressource (essayer différents formats de sortie)
kubectl get pods hello-minikube -o yaml
kubectl get pods hello-minikube -o json
kubectl get pods hello-minikube -o wide
  • Afficher les détails de la ressource
kubectl describe pods/hello-minikube

Lister les ressources du cluster

Les ressources crées dans kubernetes ont chacune un type, un nom et un namespace. Pour lister les ressources, il faut à minima spécifier le type voulu (ou all)

  • Exemple, lister les pods
kubectl get pods

Il est possible d'obtenir la liste des ressources disponible dans le cluster (Sauf sous windows)

kubectl api-resources
NAME                              SHORTNAMES   APIGROUP                       NAMESPACED   KIND
bindings                                                                      true         Binding
componentstatuses                 cs                                          false        ComponentStatus
configmaps                        cm                                          true         ConfigMap
endpoints                         ep                                          true         Endpoints
events                            ev                                          true         Event
limitranges                       limits                                      true         LimitRange
namespaces                        ns                                          false        Namespace
nodes                             no                                          false        Node
...
services                          svc                                         true         Service

La liste nous donne également un nom raccourci qu'il est possible d'utiliser à la place du nom complet

  • Exemple, lister les services avec raccourci
kubectl get svc

Obtenir les informations du cluster

  • Afficher la liste des noeuds du cluster
kubectl get node
kubectl get node -o yaml
  • Afficher les informations générales du cluster
kubectl cluster-info
  • Afficher les informations détaillées du cluster
kubectl cluster-info dump