❤️ cli
Ultimo aggiornamento 18/12/2019
Ciao a tutti, questo è il mio primo articolo in inglese!
Scriverò un elenco dei comandi kubectl che uso di più, come riferimento per lavorare tutti i giorni con Kubernetes.
Nodi
Ottenere i nodi kubernetes
kubectl get nodes
kubectl get nodes -o wide
Descrivere i nodi
kubectl describe node <nodename>
Selezionare i nodi in base a una label
kubectl get nodes -l cluster = all
kubectl get nodes --selector = cluster = all
Pod
Generare lo yaml di un singolo pod
kubectl run --generator = run-pod/v1 magicpod --image = nginx --requests = cpu = 100m,memory = 256Mi --port = 80 --labels = ciccio = pasticcio --dry-run -o yaml
Lanciare una shell interattiva usa e getta
kubectl run --generator = run-pod/v1 disposable --image = busybox:1.28 --rm -it -- /bin/sh
Esporre un pod
kubectl expose pod magicpod --name = magicpod-svc --port = 80 --target-port = 80
Deployment
Modificare un deployment con vim e salvare la causa della modifica nella rollout history
kubectl edit deployment my-deployment --record
Ottenere la rollout history di un deployment
kubectl rollout history deployment magicdeployment
Creare un deployment con kubectl run (deprecato ma utile)
kubectl run my-deployment --image = nginx:latest --labels = "my=label" --limits = "cpu=100m" --replicas = 3
Job
Creare un job che esegue sleep 10 (notate che cambiando solo --restart cambia l'oggetto creato) (deprecato ma utile)
kubectl run my-job --restart = OnFailure --image = busybox --command = true -- sleep 10
CronJob
Creare un cronjob che esegue sleep 10 ogni minuto (deprecato ma utile)
kubectl run my-scheduled-job --schedule = "* * * * *" --restart = Never --image = busybox --command = true -- sleep 10
Networking
Debug del networking, fare ping a un pod
kubectl run --generator = run-pod/v1 disposable --image = busybox:1.28 --rm -it -- ping 10 -233-67-15.myepicnamespace.pod
Debug del networking, risolvere un nome
kubectl run --generator = run-pod/v1 disposable --image = busybox:1.28 -- sleep 3600
kubectl exec disposable -it -- nslookup 10 -233-67-15.myepicnamespace.pod.cluster.local
Logging
Leggere i log in modalità follow da un container dentro un pod, partendo dalle ultime 100 righe
kubectl logs -f wordpress-lemp-7fdcbf8bff-w5m7b --container nginx --tail = 100
Kubeadm
Ottenere i token disponibili
kubeadm token list
Creare un nuovo token
kubeadm token create
Recuperare --discovery-token-ca-cert-hash
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2 > /dev/null | \
openssl dgst -sha256 -hex | sed 's/^.* //'
continua! :)