Lo strumento da riga di comando di Kubernetes, kubectl, viene utilizzato per eseguire comandi sui cluster Kubernetes. Utilizzerai kubectl per ispezionare e gestire le risorse del cluster del tuo servizio e visualizzare i log. Alcuni comandi comunemente usati per recuperare informazioni su un cluster Kubernetes sono i seguenti:
- kubectl get mostra le informazioni sull'oggetto API specificato.
- kubectl descrivere fornisce maggiori dettagli sull'oggetto API specificato.
- registri kubectl visualizza l'output del registro dai contenitori.
Se hai dei dubbi su come utilizzare lo strumento kubectl, i comandi kubectl help e kubectl
Se si verifica l'errore seguente durante l'esecuzione del comando kubectl:
kubectl: command not found
puoi provare a installare il pacchetto seguente secondo la tua scelta di distribuzione.
Distribuzione | Comando |
---|---|
OS X | brew install kubernetes-cli |
Debian | apt-get install kubernetes-client |
CentOS | yum install kubernetes-client |
Fedora | dnf install kubernetes-client |
Esempi di comando kubectl
1. Elenca le informazioni su una risorsa con maggiori dettagli:
$ kubectl get pod|service|deployment|ingress|... -o wide
2. Aggiorna il pod specificato con l'etichetta "malsano" e il valore "true":
$ kubectl label pods name unhealthy=true
3. Elenca tutte le risorse con tipi diversi:
$ kubectl get all
4. Visualizza l'utilizzo delle risorse (CPU/Memoria/Archiviazione) di nodi o pod:
$ kubectl top pod|node
5. Stampa l'indirizzo dei servizi master e cluster:
$ kubectl cluster-info
6. Visualizza una spiegazione di un campo specifico:
$ kubectl explain pods.spec.containers
7. Stampa i log per un contenitore in un pod o in una risorsa specificata:
$ kubectl logs pod_name
8. Esegui il comando in un pod esistente:
$ kubectl exec pod_name -- ls /
9. Puoi anche utilizzare il comando exec per eseguire un comando in un contenitore in esecuzione:
$ kubectl exec -it pod_name -- bash
10. Se non hai bash o qualche altro terminale disponibile nel tuo container, puoi sempre collegarti al processo in esecuzione:
$ kubectl attach -it pod_name
11. Puoi anche copiare file da e verso un contenitore usando il comando cp:
$ kubectl cp [pod-name]:[/path/to/remote/file] [/path/to/local/file]
12. Se desideri accedere al tuo Pod tramite la rete, puoi utilizzare il comando port-forward per inoltrare il traffico di rete dal computer locale al Pod.
$ kubectl port-forward [pod-name] 8080:80
13. Se desideri visualizzare gli eventi Kubernetes, puoi utilizzare il comando kubectl get events per visualizzare un elenco degli ultimi 10 eventi su tutti gli oggetti in un determinato spazio dei nomi:
$ kubectl get events
14. Se sei interessato a come il tuo cluster utilizza le risorse, puoi utilizzare il comando in alto per vedere l'elenco delle risorse in uso da entrambi i nodi o Pod. Questo comando:
$ kubectl top nodes
15. Supponiamo di avere un oggetto semplice memorizzato in obj.yaml. Puoi usare kubectl per creare questo oggetto in Kubernetes eseguendo:
$ kubectl apply -f obj.yaml
16. Allo stesso modo, dopo aver apportato modifiche all'oggetto, puoi utilizzare nuovamente il comando applica per aggiornare l'oggetto:
$ kubectl apply -f obj.yaml
17. Quando vuoi eliminare un oggetto, puoi semplicemente eseguire:
$ kubectl delete -f obj.yaml
18. Le etichette e le annotazioni sono tag per i tuoi oggetti. Ad esempio, per aggiungere l'etichetta color=red a una barra denominata Pod, puoi eseguire:
$ kubectl label pods bar color=red
19. Se desideri visualizzare un elenco di campi supportati per ciascun tipo supportato di oggetto Kubernetes, puoi utilizzare il comando di spiegazione:
$ kubectl explain pods
20. Se sei interessato a informazioni più dettagliate su un particolare oggetto, usa il comando describe:
$ kubectl describe [resource-name] [obj-name]