Skip to content

Main Kubectl Commands


In Kubernetes world we don't create or work with Pods directly, instead we create deployments. Everything below deployment layer is managed by K8s.

Deployment manages a ReplicaSet which manages a Pod which is an abstraction of a Container

  • kubectl get <componentName> <name>

    examples: kubectl get pods kubectl get deployments kubectl get replicaset kubectl get service kubectl get logs <podName> kubectl get pod -o wide - output in wide to get more information like IP address of pods kubectl get deployment <deploymentName> -o yaml - get deployment details from etcd and output in yaml format, you can output to a file as well

  • kubectl describe <componentName> <name>

    examples: kubectl describe service nginx-service kubectl describe pod nginx-pod

  • kubectl edit <componentName> <name>

    examples: kubectl edit deployments nginx-deployment

  • kubectl delete <componentName> <name>

    examples: kubectl delete deployment nginx-deployment

  • kubectl create <componentName> <name> <options>

    examples: kubectl create deployment nginx-depl --image=nginx

  • kubectl exec -it <podName> -- bin/bash - get terminal into pod/container

  • kubectl apply -f <file>

    example file:

    yaml apiVersion: apps/v1 kind: Deployment # what I am creating metadata: name: nginx-deployment labels: app: nginx spec: # blueprint/specificaiton for deployment replicas: 1 # number of replicas selector: matchLabels: app: nginx template: # specification for pod metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.16 ports: - containerPort: 80