Introduzione
Kubectl è un insieme di comandi per il controllo dei cluster Kubernetes. Ogni comando Kubernetes ha un endpoint API e lo scopo principale di kubectl è eseguire richieste HTTP all'API.
Sebbene sia possibile inviare richieste HTTP da soli (ad es. utilizzando curl), kubectl è progettato per rendere questo processo più semplice e comodo.
Questo tutorial tratterà tutte le operazioni comuni di kubectl e fornirà esempi per familiarizzare con la sintassi.
Elenco dei comandi kubectl
Usa il kubectl
comandi elencati di seguito come riferimento rapido quando si lavora con Kubernetes.
Elenco risorse
Per elencare uno o più pod, controller di replica, servizi o set di daemon, utilizza kubectl get
comando.
Genera un elenco di testo normale di tutti gli spazi dei nomi:
kubectl get namespaces
Mostra un elenco in testo normale di tutti i pod:
kubectl get pods
Genera un elenco dettagliato in testo normale di tutti i pod, contenente informazioni come il nome del nodo:
kubectl get pods -o wide
Visualizza un elenco di tutti i pod in esecuzione su un particolare server del nodo:
kubectl get pods --field-selector=spec.nodeName=[server-name]
Elenca un controller di replica specifico in testo normale:
kubectl get replicationcontroller [replication-controller-name]
Genera un elenco in testo normale di tutti i controller di replica e i servizi:
kubectl get replicationcontroller,services
Mostra un elenco in testo normale di tutti i set di daemon:
kubectl get daemonset
Creazione di una risorsa
Crea una risorsa come un servizio, una distribuzione, un lavoro o uno spazio dei nomi utilizzando kubectl create
comando.
Ad esempio, per creare un nuovo spazio dei nomi, digita:
kubectl create namespace [namespace-name]
Crea una risorsa da un file JSON o YAML:
kubectl create -f [filename]
Applicazione e aggiornamento di una risorsa
Per applicare o aggiornare una risorsa usa il kubectl apply
comando. L'origine di questa operazione può essere un file o lo standard input (stdin ).
Crea un nuovo servizio con la definizione contenuta in un file [nome-servizio].yaml:
kubectl apply -f [service-name].yaml
Crea un nuovo controller di replica con la definizione contenuta in un file [nome controller].yaml:
kubectl apply -f [controller-name].yaml
Crea gli oggetti definiti in qualsiasi file .yaml, .yml o .json in una directory:
kubectl apply -f [directory-name]
Puoi aggiornare una risorsa configurandola in un editor di testo, utilizzando il kubectl edit
comando. Questo comando è una combinazione di kubectl get
e kubectl apply
.
Ad esempio, per modificare un servizio, digita:
kubectl edit svc/[service-name]
Questo comando apre il file nell'editor predefinito. Per utilizzare un editor diverso, specificalo davanti al comando:
KUBE_EDITOR=”[editor-name]” kubectl edit svc/[service-name]
Visualizzare lo stato delle risorse
Per visualizzare in dettaglio lo stato di un numero qualsiasi di risorse, utilizza il kubectl describe
comando. Per impostazione predefinita, l'output elenca anche le risorse non inizializzate.
Visualizza i dettagli su un particolare nodo:
kubectl describe nodes [node-name]
Visualizza i dettagli su un particolare pod:
kubectl describe pods [pod-name]
Visualizza i dettagli su un pod il cui nome e tipo sono elencati in pod.json :
kubectl describe -f pod.json
Visualizza i dettagli su tutti i pod gestiti da un controller di replica specifico:
kubectl describe pods [replication-controller-name]
Mostra i dettagli su tutti i pod:
kubectl describe pods
Eliminazione di risorse
Per rimuovere risorse da un file o stdin, usa kubectl delete
comando.
Rimuovere un pod utilizzando il nome e il tipo elencati in pod.yaml:
kubectl delete -f pod.yaml
Rimuovi tutti i pod e i servizi con un'etichetta specifica:
kubectl delete pods,services -l [label-key]=[label-value]
Rimuovi tutti i pod (inclusi i pod non inizializzati):
kubectl delete pods --all
Esecuzione di un comando
Usa kubectl exec
per emettere comandi in un container o per aprire una shell in un container.
Ricevi l'output da un comando eseguito sul primo contenitore in un pod:
kubectl exec [pod-name] -- [command]
Ottieni l'output da un comando eseguito su un contenitore specifico in un pod:
kubectl exec [pod-name] -c [container-name] -- [command]
Esegui /bin/bash da un baccello specifico. L'output ricevuto proviene dal primo contenitore:
kubectl exec -ti [pod-name] -- /bin/bash
Modifica dei file kubeconfig
kubectl config
ti consente di visualizzare e modificare i file kubeconfig. Questo comando è solitamente seguito da un altro sottocomando.
Visualizza il contesto corrente:
kubectl config current-context
Imposta una voce del cluster in kubeconfig:
kubectl config set-cluster [cluster-name] --server=[server-name]
Annulla l'impostazione di una voce in kubeconfig:
kubectl config unset [property-name]
Stampa dei registri dei contenitori
Per stampare i log dai contenitori in un pod, utilizza i kubectl logs
comando.
Stampa registri:
kubectl logs [pod-name]
Per eseguire lo streaming dei log da un pod, utilizza:
kubectl logs -f [pod-name]
Nomi brevi per i tipi di risorse
Alcuni dei kubectl
i comandi sopra elencati possono sembrare scomodi a causa della loro lunghezza. Per questo motivo nomi di tipi di risorse kubectl comuni hanno anche versioni più brevi.
Considera il comando sopra menzionato:
kubectl create namespace [namespace-name]
Puoi anche eseguire questo comando come:
kubectl create ns [namespace-name]
Ecco l'elenco completo dei nomi brevi kubectl:
Nome breve | Nome lungo |
---|---|
csr | certificatesigningrequests |
cs | componentstatuses |
cm | configmaps |
ds | daemonsets |
deploy | deployments |
ep | endpoints |
ev | events |
hpa | horizontalpodautoscalers |
ing | ingresses |
limits | limits |
ns | namespaces |
no | nodes |
pvc | persistentvolumeclaims |
pv | persistentvolumes |
po | pods |
pdb | poddisruptionbudgets |
psp | podsecuritypolicies |
rs | replicasets |
rc | replicationcontrollers |
quota | resourcequotas |
sa | serviceaccounts |
svc | services |
cheat sheet di kubectl
Puoi trovare tutti i comandi elencati in questo articolo nel foglio di riferimento di una pagina di seguito. Scarica il kubectl Command PDF e salvalo per un uso futuro.
SCARICA Cheat Sheet