Kubernetes Command Line Reference (Cheatsheet)

Creating Objects

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 --dryrun=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_name> --tcp=<port:target_port> --dryrun=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> --fromliteral=<key>:<value> --from-literal=<key>:<value>

Create config map from file:

$ kubectl create configmap <configmap_name> --fromfile=<file_name>

Create config map from env file:

$ kubectl create configmap <configmap_name> --from-envfile=<file_name>

Create secret from keyvalue:

$ kubectl create secret generic <secret_name> --fromliteral=<key>:<value> --from-literal=<key>:<value>

Create secret from file:

$ kubectl create secret generic <secret_name> --fromfile=<file_name>

Create job:

$ kubectl create job  --image=

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>

Monitoring Usage Commands

Get node cpu and memory utilization:

$ kubectl top node <node_name>

Get pod cpu and memory utilization:

$ kubectl top pods <pod_name>

Node Commands

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>

Pod Commands

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>

Deployment Commands

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>

Service Commands

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>

Endpoints Commands

Get endpoints:

$  kubectl get endpoints <endpoints_name>

Ingress Commands

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>

DaemonSet Commands

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>

Secret Commands

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>

Rollout Commands

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> --torevision <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>

Job Commands

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>

Cronjob Commands

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>

Network Policy Commands

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>

Labels and Selectors Commands

Show labels of node,pod and deployment:

$  kubectl get <node/pod/deployment> --showlabels

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>
Related Post