This is Kubernetes Cheatsheet based on Kubernetes API 1.19 version.
Facebook: Link
Youtube: Link
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
| Name | Command |
|---|---|
| Create resource | kubectl apply -f ./<file_name>.yaml |
| Create from multiple files | kubectl apply -f ./<file_name_1>.yaml -f ./<file_name_2>.yaml |
| Create all files in directory | kubectl apply -f ./<directory_name> |
| Create from url | kubectl apply -f https://<url> |
| Create pod | kubectl run <pod_name> --image <image_name> |
| Create pod, then expose it as service | kubectl run <pod_name> --image <image_name> --port <port> --expose |
| Create pod yaml file | kubectl run <pod_name> --image image_name --dry-run=client -o yaml > <file_name>.yaml |
| Create deployment | kubectl create deployment <deployment_name> --image <image_name> |
| Create deployment yaml file | kubectl create deployment <deployment_name> --image <image_name> --dry-run=client -o yaml > <file_name>.yaml |
| Create service | kubectl create service <service-type> <service_name> --tcp=<port:target_port> |
| Create service yaml file | kubectl create service <service-type> <service_name> --tcp=<port:target_port> --dry-run=client -o yaml > <file_name>.yaml |
| Expose service from pod/deployment | kubectl expose deployment <pod/deployment_name> --type=<service-type> --port <port> --target-port <target_port> |
| Create config map from key-value | kubectl create configmap <configmap_name> --from-literal=<key>:<value> --from-literal=<key>:<value> |
| Create config map from file | kubectl create configmap <configmap_name> --from-file=<file_name> |
| Create config map from env file | kubectl create configmap <configmap_name> --from-env-file=<file_name> |
| Create secret from key-value | kubectl create secret generic <secret_name> --from-literal=<key>:<value> --from-literal=<key>:<value> |
| Create secret from file | kubectl create secret generic <secret_name> --from-file=<file_name> |
| Create job | kubectl create job <job_name> --image=<image_name> |
| Create job from cronjob | kubectl create job <job_name> --from=cronjob/<cronjob-name> |
| Create cronjob | kubectl create cronjob --image=<image_name> --schedule='<cron-syntax>' -- <command> <args> |
| Create inline yaml | cat <<EOF | kubectl create -f - <enter> YAML CONTENT <enter> EOF <enter> |
| Name | Command |
|---|---|
| Get node cpu and memory utilization | kubectl top node <node_name> |
| Get pod cpu and memory utilization | kubectl top pods <pod_name> |
| Name | Command |
|---|---|
| Get all namespaces | kubectl get namespaces |
| Get namespace | kubectl get namespaces <namespace_name> |
| Get namespace in yaml | kubectl get namespaces <namespace_name> -o yaml |
| Describe namespace | kubectl describe namespaces <namespace_name> |
| Execute command with specific namespace (Example) | kubectl get pods --namespace=<namespace_name> |
| Set default namespace for 'kubectl' | kubectl config set-context --current --namespace="<namespace_name>" |
| Check current namespace | kubectl config view --minify | grep namespace: |
| Cleanup namespace with specific namespace | kubectl delete all --all --namespace="<namespace_name>" |
| Cleanup namespace (Be careful, make sure you're right namespace) | kubectl delete all --all |
| Name | Command |
|---|---|
| Describe node | kubectl describe node <node_name> |
| Get node in yaml | kubectl get node <node_name> -o yaml |
| Get node | kubectl get node <node_name> |
| Drain node | kubectl drain node <node_name> |
| Cordon node | kubectl cordon node <node_name> |
| Uncordon node | kubectl uncordon node <node_name> |
| Name | Command |
|---|---|
| Get pod | kubectl get pod <pod_name> |
| Get pod in yaml | kubectl get pod <pod_name> -o yaml |
| Get pod wide information | kubectl get pod <pod_name> -o wide |
| Get pod with watch | kubectl get pod <pod_name> -w |
| Edit pod | kubectl edit pod <pod_name> |
| Describe pod | kubectl describe pod <pod_name> |
| Delete pod | kubectl delete pod <pod_name> |
| Log pod | kubectl logs pod <pod_name> |
| Tail -f pod | kubectl logs pod -f <pod_name> |
| Execute into pod | kubectl exec -it pod <pod_name> -- /bin/bash |
| Running Temporary Image | kubectl run <pod_name> --image=curlimages/curl --rm -it --restart=Never -- curl <destination> |
| Name | Command |
|---|---|
| Get deployment | kubectl get deployment <deployment_name> |
| Get deployment in yaml | kubectl get deployment <deployment_name> -o yaml |
| Get deployment wide information | kubectl get deployment <deployment_name> -o wide |
| Edit deployment | kubectl edit deployment <deployment_name> |
| Describe deployment | kubectl describe deployment <deployment_name> |
| Delete deployment | kubectl delete deployment <deployment_name> |
| Log deployment | kubectl logs deployment/deployment_name -f |
| Update image | kubectl set image deployment <deployment_name> <container_name>=<new_image_name> |
| Scale deployment with replicas | kubectl scale deployment <deployment_name> --replicas <replicas> |
| Autoscaling deployment | kubectl autoscale deployment <deployment_name> --min=<min_number_of_pod> --max=<max_number_of_pod> --cpu-percent=<percent_of_requested_CPU> |
| Name | Command |
|---|---|
| Get service | kubectl get service <service> |
| Get service in yaml | kubectl get service <service> -o yaml |
| Get service wide information | kubectl get service <service> -o wide |
| Edit service | kubectl edit service <service> |
| Describe service | kubectl describe service <service> |
| Delete service | kubectl delete service <service> |
| Name | Command |
|---|---|
| Get endpoints | kubectl get endpoints <endpoints_name> |
| Name | Command |
|---|---|
| Get ingress | kubectl get ingress |
| Get ingress in yaml | kubectl get ingress -o yaml |
| Get ingress wide information | kubectl get ingress -o wide |
| Edit ingress | kubectl edit ingress <ingress_name> |
| Describe ingress | kubectl describe ingress <ingress_name> |
| Delete ingress | kubectl delete ingress <ingress_name> |
| Name | Command |
|---|---|
| Get daemonset | kubectl get daemonset <daemonset_name> |
| Get daemonset in yaml | kubectl get daemonset <daemonset_name> -o yaml |
| Edit daemonset | kubectl edit daemonset <daemonset_name> |
| Describe daemonset | kubectl describe daemonset <daemonset_name> |
| Delete daemonset | kubectl delete deployment <daemonset_name> |
| Name | Command |
|---|---|
| Get statefulset | kubectl get statefulset <statefulset_name> |
| Get statefulset in yaml | kubectl get statefulset <statefulset_name> -o yaml |
| Edit statefulset | kubectl edit statefulset <statefulset_name> |
| Describe statefulset | kubectl describe statefulset <statefulset_name> |
| Delete statefuleset | kubectl delete statefulset <statefulset_name> |
| Name | Command |
|---|---|
| Get configmap | kubectl get configmap <configmap_name> |
| Get configmap in yaml | kubectl get configmap <configmap_name> -o yaml |
| Edit configmap | kubectl edit configmap <configmap_name> |
| Describe configmap | kubectl describe configmap <configmap_name> |
| Delete configmap | kubectl delete configmap <configmap_name> |
| Name | Command |
|---|---|
| Get secret | kubectl get secret <secret_name> |
| Get secret in yaml | kubectl get secret <secret_name> -o yaml |
| Edit secret | kubectl edit secret <secret_name> |
| Describe secret | kubectl describe secret <secret_name> |
| Delete secret | kubectl delete secret <secret_name> |
| Name | Command |
|---|---|
| Restart deployment | kubectl rollout restart deployment <deployment_name> |
| Undo deployment with the latest revision | kubectl rollout undo deployment <deployment_name> |
| Undo deployment with specified revision | kubectl rollout undo deployment <deployment_name> --to-revision <revision_number> |
| Get all revisions of deployment | kubectl rollout history deployment <deployment_name> |
| Get specified revision of deployment | kubectl rollout history deployment <deployment_name> --revision=<revision_number> |
| Name | Command |
|---|---|
| Get job | kubectl get job <job_name> |
| Get job in yaml | kubectl get job <job_name> -o yaml |
| Edit job in yaml | kubectl edit job <job_name> |
| Describe job | kubectl describe job <job_name> |
| Delete job | kubectl delete job <job_name> |
| Name | Command |
|---|---|
| Get cronjob | kubectl get cronjob cronjob_name |
| Get cronjob in yaml | kubectl get cronjob <cronjob_name> -o yaml |
| Edit cronjob | kubectl edit cronjob <cronjob_name> |
| Describe cronjob | kubectl describe cronjob <cronjob_name> |
| Delete cronjob | kubectl delete cronjob <cronjob_name> |
| Name | Command |
|---|---|
| Get networkpolicy | kubectl get networkpolicy <networkpolicy_name> |
| Get networkpolicy in yaml | kubectl get networkpolicy <networkpolicy_name> -o yaml |
| Get networkpolicy wide information | kubectl get networkpolicy <networkpolicy_name> -o wide |
| Edit networkpolicy | kubectl edit networkpolicy <networkpolicy_name> |
| Describe networkpolicy | kubectl describe networkpolicy <networkpolicy_name> |
| Delete networkpolicy | kubectl delete networkpolicy <networkpolicy_name> |
| Name | Command |
|---|---|
| Get persistence volume | kubectl get pv <persistencevolume_name> |
| Get persistence volume in yaml | kubectl get pv <persistencevolume_name> -o yaml |
| Edit persistence volume | kubectl edit pv <persistencevolume_name> |
| Describe persistence volume | kubectl describe pv <persistencevolume_name> |
| Delete persistence volume | kubectl delete pv <persistencevolume_name> |
| Name | Command |
|---|---|
| Get persistence volume claim | kubectl get pvc <persistencevolume_claim_name> |
| Get persistence volume claim in yaml | kubectl get pvc <persistencevolume_claim_name> -o yaml |
| Edit persistence volume claim | kubectl edit pvc <persistencevolume_claim_name> |
| Describe persistence volume claim | kubectl describe pvc <persistencevolume_claim_name> |
| Delete persistence volume claim | kubectl delete pvc <persistencevolume_claim_name> |
| Name | Command |
|---|---|
| Show labels of node,pod and deployment | kubectl get <node/pod/deployment> --show-labels |
Attach labels to <node/pod/deployment> |
kubectl label <node/pod/deployment> <pod_name> <key>=<value> |
Remove labels from <node/pod/deployment> |
kubectl label <node/pod/deployment> <pod_name> <key>- |
| Select node,pod and deployment by using labels | kubectl get <node/pod/deployment> -l <key>=<value> |
| Delete all resources by using labels | kubectl delete all -l <key>=<value> |
| Name | Command |
|---|---|
| List current user privilleges with default namespace | kubectl auth can-i --list |
| List specified user privilleges with default namespace | kubectl auth can-i --list --as <user/service_account> |
| List current user privilleges with specified namespace | kubectl auth can-i --list -n <namespace> |
| List specified user privilleges with specified namespace | kubectl auth can-i --list --as <user/service_account> -n <namespace> |
| Verify if current user is able to do something with resource | kubectl auth can-i <verb> <resource> |
| Verify if specified user is able to do something with resource | kubectl auth can-i <verb> <resource> --as <user/service_account> |
| Create service account | kubectl create serviceaccount <serviceaccount_name> |
| Create role and define resource privilleges | kubectl create role <role_name> --resource=<object> --verb=<verb> |
| Create cluster role and define cluster resource privilleges | kubectl create clusterrole <clusterrole_name> --resource=<object> --verb=<verb> |
| Create role binding with service account | kubectl create rolebinding <rolebinding_name> --role <role_name> --serviceaccount <serviceaccount_name> |
| Create cluster role binding with service account | kubectl create clusterrolebinding <clusterrolebinding_name> --clusterrole <clusterrole_name> --serviceaccount <serviceaccount_name> |
| Create role binding with user | kubectl create rolebinding <rolebinding_name> --role <role_name> --user <user_name> |
| Create cluster role binding with user | kubectl create clusterrolebinding <clusterrolebinding_name> --clusterrole <clusterrole_name> --user <user_name> |
| Name | Command |
|---|---|
| Print the supported API resources on the Kubernetes API server | kubectl api-resources |
Kubernetes Document: Link
Kubernetes Command: Link
Kubernetes API Reference: Link
Kubernetes CheatSheet Link

