Présentation
Kubectl est un ensemble de commandes permettant de contrôler les clusters Kubernetes. Chaque commande Kubernetes a un point de terminaison d'API, et l'objectif principal de kubectl est d'effectuer des requêtes HTTP à l'API.
Bien qu'il soit possible d'émettre des requêtes HTTP vous-même (par exemple, en utilisant curl), kubectl est conçu pour rendre ce processus plus simple et plus simple.
Ce didacticiel couvrira toutes les opérations kubectl courantes et fournira des exemples pour vous familiariser avec la syntaxe.
Liste des commandes kubectl
Utilisez le kubectl
commandes répertoriées ci-dessous comme référence rapide lorsque vous travaillez avec Kubernetes.
Liste des ressources
Pour répertorier un ou plusieurs pods, contrôleurs de réplication, services ou ensembles de démons, utilisez le kubectl get
commande.
Générez une liste en texte brut de tous les espaces de noms :
kubectl get namespaces
Afficher une liste en texte brut de tous les pods :
kubectl get pods
Générez une liste détaillée en texte brut de tous les pods, contenant des informations telles que le nom du nœud :
kubectl get pods -o wide
Afficher une liste de tous les pods exécutés sur un serveur de nœud particulier :
kubectl get pods --field-selector=spec.nodeName=[server-name]
Répertorier un contrôleur de réplication spécifique en texte brut :
kubectl get replicationcontroller [replication-controller-name]
Générez une liste en texte brut de tous les contrôleurs et services de réplication :
kubectl get replicationcontroller,services
Afficher une liste en texte brut de tous les ensembles de démons :
kubectl get daemonset
Créer une ressource
Créez une ressource telle qu'un service, un déploiement, une tâche ou un espace de noms à l'aide de kubectl create
commande.
Par exemple, pour créer un nouvel espace de noms, tapez :
kubectl create namespace [namespace-name]
Créez une ressource à partir d'un fichier JSON ou YAML :
kubectl create -f [filename]
Appliquer et mettre à jour une ressource
Pour appliquer ou mettre à jour une ressource, utilisez le kubectl apply
commande. La source de cette opération peut être soit un fichier, soit l'entrée standard (stdin ).
Créez un nouveau service avec la définition contenue dans un fichier [service-name].yaml :
kubectl apply -f [service-name].yaml
Créez un nouveau contrôleur de réplication avec la définition contenue dans un fichier [controller-name].yaml :
kubectl apply -f [controller-name].yaml
Créez les objets définis dans n'importe quel fichier .yaml, .yml ou .json dans un répertoire :
kubectl apply -f [directory-name]
Vous pouvez mettre à jour une ressource en la configurant dans un éditeur de texte, à l'aide de kubectl edit
commande. Cette commande est une combinaison de kubectl get
et kubectl apply
.
Par exemple, pour modifier un service, saisissez :
kubectl edit svc/[service-name]
Cette commande ouvre le fichier dans votre éditeur par défaut. Pour utiliser un autre éditeur, spécifiez-le devant la commande :
KUBE_EDITOR=”[editor-name]” kubectl edit svc/[service-name]
Affichage de l'état des ressources
Pour afficher l'état d'un nombre quelconque de ressources en détail, utilisez le kubectl describe
commande. Par défaut, la sortie répertorie également les ressources non initialisées.
Afficher les détails d'un nœud particulier :
kubectl describe nodes [node-name]
Afficher les détails d'un pod particulier :
kubectl describe pods [pod-name]
Afficher les détails d'un pod dont le nom et le type sont répertoriés dans pod.json :
kubectl describe -f pod.json
Consultez les détails de tous les pods gérés par un contrôleur de réplication spécifique :
kubectl describe pods [replication-controller-name]
Afficher les détails de tous les pods :
kubectl describe pods
Supprimer des ressources
Pour supprimer des ressources d'un fichier ou d'un stdin, utilisez le kubectl delete
commande.
Supprimez un pod en utilisant le nom et le type indiqués dans pod.yaml :
kubectl delete -f pod.yaml
Supprimez tous les pods et services avec une étiquette spécifique :
kubectl delete pods,services -l [label-key]=[label-value]
Supprimer tous les pods (y compris les pods non initialisés) :
kubectl delete pods --all
Exécuter une commande
Utilisez kubectl exec
pour émettre des commandes dans un conteneur ou pour ouvrir un shell dans un conteneur.
Recevoir la sortie d'une commande exécutée sur le premier conteneur d'un pod :
kubectl exec [pod-name] -- [command]
Obtenez le résultat d'une commande exécutée sur un conteneur spécifique dans un pod :
kubectl exec [pod-name] -c [container-name] -- [command]
Exécutez /bin/bash d'un pod spécifique. La sortie reçue provient du premier conteneur :
kubectl exec -ti [pod-name] -- /bin/bash
Modification des fichiers kubeconfig
kubectl config
vous permet d'afficher et de modifier les fichiers kubeconfig. Cette commande est généralement suivie d'une autre sous-commande.
Afficher le contexte courant :
kubectl config current-context
Définissez une entrée de cluster dans kubeconfig :
kubectl config set-cluster [cluster-name] --server=[server-name]
Annuler la définition d'une entrée dans kubeconfig :
kubectl config unset [property-name]
Impression des journaux de conteneurs
Pour imprimer les journaux des conteneurs dans un pod, utilisez les kubectl logs
commande.
Journaux d'impression :
kubectl logs [pod-name]
Pour diffuser des journaux à partir d'un pod, utilisez :
kubectl logs -f [pod-name]
Noms abrégés pour les types de ressources
Certains des kubectl
Les commandes listées ci-dessus peuvent sembler gênantes en raison de leur longueur. Pour cette raison, les noms des types de ressources kubectl courants ont également des versions plus courtes.
Considérez la commande mentionnée ci-dessus :
kubectl create namespace [namespace-name]
Vous pouvez également exécuter cette commande en tant que :
kubectl create ns [namespace-name]
Voici la liste complète des noms abrégés kubectl :
Nom abrégé | Nom long |
---|---|
csr | certificatesigningrequests |
cs | componentstatuses |
cm | configmaps |
ds | daemonsets |
deploy | deployments |
ep | endpoints |
ev | events |
hpa | horizontalpodautoscalers |
ing | ingresses |
limits | limitranges |
ns | namespaces |
no | nodes |
pvc | persistentvolumeclaims |
pv | persistentvolumes |
po | pods |
pdb | poddisruptionbudgets |
psp | podsecuritypolicies |
rs | replicasets |
rc | replicationcontrollers |
quota | resourcequotas |
sa | serviceaccounts |
svc | services |
Aide-mémoire kubectl
Vous pouvez trouver toutes les commandes répertoriées dans cet article dans la fiche de référence d'une page ci-dessous. Téléchargez le PDF de la commande kubectl et enregistrez-le pour une utilisation future.
TÉLÉCHARGER la feuille de triche