<mohammadrony>

Kubectl Usage

Kubeadm initial commands

sudo kubeadm init --pod-network-cidr=nnn.nnn.nnn.nnn/nn --apiserver-advertise-address=nnn.nnn.nnn.nnn
kubeadm token create --print-join-command

Cluster details

kubectl cluster-info
kubectl api-versions
kubectl api-resources
kubectl api-resources --namespaced

Describe

kubectl describe pod POD
kubectl describe svc SERVICE
kubectl describe deploy DEPLOYMENT
kubectl describe sts STATEFULSET
kubectl describe cm/CONFIGMAP
kubectl describe secret/SECRET
kubectl describe sa/SERVICEACCOUNT
kubectl describe role/ROLE
kubectl describe rb/ROLEBINDING

Create and Update

Deploy

kubectl create -f FILE.yaml
kubectl apply -f FILE.yaml

Login Shell

kubectl exec -it POD -- COMMAND

Environment variable

kubectl exec POD -- env
kubectl exec POD -- printenv

Delete

kubectl delete pod POD
kubectl delete svc SERVICE
kubectl delete deploy DEPLOYMENT
kubectl delete sts STATEFULSET
kubectl delete pods -l <key>=<value>
kubectl delete pods --field-selector spec.nodeName=<node>

Delete pod immediately

kubectl delete pod POD --force --grace-period 0

Copy files

kubectl cp POD:/file ./
kubectl cp ./ POD:/file

Rollout

kubectl rollout restart pod POD
kubectl rollout restart deploy DEPLOYMENT
kubectl rollout restart svc SERVICE
kubectl rollout restart sts STATEFULSET
kubectl rollout status deploy DEPLOYMENT
kubectl rollout history deploy DEPLOYMENT
kubectl rollout history deploy DEPLOYMENT --revision=N
kubectl rollout undo deployment DEPLOYMENT --to-revision=N