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