Kubernetes: comandi Kubectl
Kubectlcontrolla il cluster Kubernetes. È uno dei componenti chiave di Kubernetes che viene eseguito sulla workstation su qualsiasi macchina al termine dell'installazione. Ha la capacità di gestire i nodi nel cluster.
Kubectli comandi vengono utilizzati per interagire e gestire gli oggetti Kubernetes e il cluster. In questo capitolo, discuteremo alcuni comandi usati in Kubernetes tramite kubectl.
kubectl annotate - Aggiorna l'annotazione su una risorsa.
$kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ...
KEY_N = VAL_N [--resource-version = version]
Per esempio,
kubectl annotate pods tomcat description = 'my frontend'
kubectl api-versions - Stampa le versioni supportate dell'API sul cluster.
$ kubectl api-version;
kubectl apply - Ha la capacità di configurare una risorsa per file o stdin.
$ kubectl apply –f <filename>
kubectl attach - Questo collega le cose al contenitore in esecuzione.
$ kubectl attach <pod> –c <container>
$ kubectl attach 123456-7890 -c tomcat-conatiner
kubectl autoscale - Viene utilizzato per ridimensionare automaticamente i pod definiti come distribuzione, set di repliche, controller di replica.
$ kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min = MINPODS] --
max = MAXPODS [--cpu-percent = CPU] [flags]
$ kubectl autoscale deployment foo --min = 2 --max = 10
kubectl cluster-info - Visualizza le informazioni sul cluster.
$ kubectl cluster-info
kubectl cluster-info dump - Scarica le informazioni rilevanti relative al cluster per il debug e la diagnosi.
$ kubectl cluster-info dump
$ kubectl cluster-info dump --output-directory = /path/to/cluster-state
kubectl config - Modifica il file kubeconfig.
$ kubectl config <SUBCOMMAD>
$ kubectl config –-kubeconfig <String of File name>
kubectl config current-context - Visualizza il contesto corrente.
$ kubectl config current-context
#deploys the current context
kubectl config delete-cluster - Elimina il cluster specificato da kubeconfig.
$ kubectl config delete-cluster <Cluster Name>
kubectl config delete-context - Elimina un contesto specificato da kubeconfig.
$ kubectl config delete-context <Context Name>
kubectl config get-clusters - Visualizza il cluster definito nel kubeconfig.
$ kubectl config get-cluster
$ kubectl config get-cluster <Cluser Name>
kubectl config get-contexts - Descrive uno o più contesti.
$ kubectl config get-context <Context Name>
kubectl config set-cluster - Imposta la voce del cluster in Kubernetes.
$ kubectl config set-cluster NAME [--server = server] [--certificateauthority =
path/to/certificate/authority] [--insecure-skip-tls-verify = true]
kubectl config set-context - Imposta una voce di contesto nel punto di ingresso di Kubernetes.
$ kubectl config set-context NAME [--cluster = cluster_nickname] [--
user = user_nickname] [--namespace = namespace]
$ kubectl config set-context prod –user = vipin-mishra
kubectl config set-credentials - Imposta una voce utente in kubeconfig.
$ kubectl config set-credentials cluster-admin --username = vipin --
password = uXFGweU9l35qcif
kubectl config set - Imposta un valore individuale nel file kubeconfig.
$ kubectl config set PROPERTY_NAME PROPERTY_VALUE
kubectl config unset - Disabilita un componente specifico in kubectl.
$ kubectl config unset PROPERTY_NAME PROPERTY_VALUE
kubectl config use-context - Imposta il contesto corrente nel file kubectl.
$ kubectl config use-context <Context Name>
kubectl config view
$ kubectl config view
$ kubectl config view –o jsonpath='{.users[?(@.name == "e2e")].user.password}'
kubectl cp - Copia file e directory da e verso i contenitori.
$ kubectl cp <Files from source> <Files to Destinatiion>
$ kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>
kubectl create- Per creare una risorsa in base al nome del file o stdin. Per fare ciò, sono accettati i formati JSON o YAML.
$ kubectl create –f <File Name>
$ cat <file name> | kubectl create –f -
Allo stesso modo, possiamo creare più cose elencate usando il file create comando insieme a kubectl.
- deployment
- namespace
- quota
- registro docker segreto
- secret
- segreto generico
- secret tls
- serviceaccount
- servizio clusterip
- servizio loadbalancer
- servizio nodeport
kubectl delete - Elimina le risorse per nome file, stdin, risorsa e nomi.
$ kubectl delete –f ([-f FILENAME] | TYPE [(NAME | -l label | --all)])
kubectl describe- Descrive qualsiasi risorsa particolare in kubernetes. Mostra i dettagli della risorsa o di un gruppo di risorse.
$ kubectl describe <type> <type name>
$ kubectl describe pod tomcat
kubectl drain- Viene utilizzato per drenare un nodo a scopo di manutenzione. Prepara il nodo per la manutenzione. Questo contrassegnerà il nodo come non disponibile in modo che non debba essere assegnato a un nuovo contenitore che verrà creato.
$ kubectl drain tomcat –force
kubectl edit- Viene utilizzato per terminare le risorse sul server. Ciò consente di modificare direttamente una risorsa che si può ricevere tramite lo strumento della riga di comando.
$ kubectl edit <Resource/Name | File Name)
Ex.
$ kubectl edit rc/tomcat
kubectl exec - Questo aiuta a eseguire un comando nel contenitore.
$ kubectl exec POD <-c CONTAINER > -- COMMAND < args...>
$ kubectl exec tomcat 123-5-456 date
kubectl expose- Viene utilizzato per esporre gli oggetti Kubernetes come pod, controller di replica e servizio come un nuovo servizio Kubernetes. Questo ha la capacità di esporlo tramite un contenitore in esecuzione o da un fileyaml file.
$ kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol = TCP|UDP]
[--target-port = number-or-name] [--name = name] [--external-ip = external-ip-ofservice]
[--type = type]
$ kubectl expose rc tomcat –-port=80 –target-port = 30000
$ kubectl expose –f tomcat.yaml –port = 80 –target-port =
kubectl get - Questo comando è in grado di recuperare i dati sul cluster sulle risorse Kubernetes.
$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columnsfile=...|
go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...]
(TYPE [NAME | -l label] | TYPE/NAME ...) [flags]
Per esempio,
$ kubectl get pod <pod name>
$ kubectl get service <Service name>
kubectl logs- Sono utilizzati per ottenere i log del contenitore in un pod. La stampa dei log può definire il nome del contenitore nel pod. Se il POD ha un solo contenitore non è necessario definirne il nome.
$ kubectl logs [-f] [-p] POD [-c CONTAINER]
Example
$ kubectl logs tomcat.
$ kubectl logs –p –c tomcat.8
kubectl port-forward - Sono usati per inoltrare una o più porte locali ai pod.
$ kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT
[...[LOCAL_PORT_N:]REMOTE_PORT_N]
$ kubectl port-forward tomcat 3000 4000
$ kubectl port-forward tomcat 3000:5000
kubectl replace - In grado di sostituire una risorsa con il nome del file o stdin.
$ kubectl replace -f FILENAME
$ kubectl replace –f tomcat.yml
$ cat tomcat.yml | kubectl replace –f -
kubectl rolling-update- Esegue un aggiornamento in sequenza su un controller di replica. Sostituisce il controller di replica specificato con un nuovo controller di replica aggiornando un POD alla volta.
$ kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --
image = NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC)
$ kubectl rolling-update frontend-v1 –f freontend-v2.yaml
kubectl rollout - È in grado di gestire l'implementazione della distribuzione.
$ Kubectl rollout <Sub Command>
$ kubectl rollout undo deployment/tomcat
Oltre a quanto sopra, possiamo eseguire più attività utilizzando il rollout come:
- cronologia dell'implementazione
- pausa di lancio
- rollout riprendi
- stato dell'implementazione
- rollout annulla
kubectl run - Il comando Run ha la capacità di eseguire un'immagine sul cluster Kubernetes.
$ kubectl run NAME --image = image [--env = "key = value"] [--port = port] [--
replicas = replicas] [--dry-run = bool] [--overrides = inline-json] [--command] --
[COMMAND] [args...]
$ kubectl run tomcat --image = tomcat:7.0
$ kubectl run tomcat –-image = tomcat:7.0 –port = 5000
kubectl scale - Scalerà le dimensioni di Kubernetes Deployments, ReplicaSet, Replication Controller o job.
$ kubectl scale [--resource-version = version] [--current-replicas = count] --
replicas = COUNT (-f FILENAME | TYPE NAME )
$ kubectl scale –-replica = 3 rs/tomcat
$ kubectl scale –replica = 3 tomcat.yaml
kubectl set image - Aggiorna l'immagine di un modello di pod.
$ kubectl set image (-f FILENAME | TYPE NAME)
CONTAINER_NAME_1 = CONTAINER_IMAGE_1 ... CONTAINER_NAME_N = CONTAINER_IMAGE_N
$ kubectl set image deployment/tomcat busybox = busybox ngnix = ngnix:1.9.1
$ kubectl set image deployments, rc tomcat = tomcat6.0 --all
kubectl set resources- Viene utilizzato per impostare il contenuto della risorsa. Aggiorna risorse / limiti sull'oggetto con il modello pod.
$ kubectl set resources (-f FILENAME | TYPE NAME) ([--limits = LIMITS & --
requests = REQUESTS]
$ kubectl set resources deployment tomcat -c = tomcat --
limits = cpu = 200m,memory = 512Mi
kubectl top node- Visualizza l'utilizzo di CPU / memoria / archiviazione. Il comando top ti consente di vedere il consumo di risorse per i nodi.
$ kubectl top node [node Name]
Lo stesso comando può essere utilizzato anche con un pod.