Skip to content

What is Kubectl in Kubernetes?

A warm Hello to all the readers!

Today I am going to write about another component of Kubernetes. I was learning what is the role of Kubectl in K8s.

Kubectl is another command line interface tool just like Minikube. It is a CLI tool that interacts with Kubernetes cluster via Kubernetes API. It is used to manage K8s clusters.

Some of the operations that Kubectl perform include listing pods, nodes, deployments, master node, creating deployments, etc.

Kubectl is written in Golang and following command can be used to see the same

$ strings -20 $(which kubectl) | grep Go
  • To view list of nodes
$ kubectl get nodes 

NAME STATUS ROLES AGE VERSION 

minikube Ready master 5d v1.18.3
  • To create a new deployment
$ kubectl create deployment webapp --image=nodejscn/node

deployment.apps/webapp created
  • To view list of deployments
$ kubectl get deployments

NAME READY UP-TO-DATE AVAILABLE AGE

webapp 0/1 1 0 10s
  • To view list of pods
$ kubectl get pods

NAME READY STATUS RESTARTS AGE

webapp-d9885cdd5-tlktg 0/1 ContainerCreating 0 18s
  • To see detailed information about pods, nodes, deployments
$ kubectl describe pods

Name:         webapp-d9885cdd5-tlktg
Namespace:    default
Priority:     0
Node:         minikube/172.17.0.2
Start Time:   Sun, 15 Nov 2020 20:35:46 +0530
Labels:       app=webapp
              pod-template-hash=d9885cdd5
Annotations:  <none>
Status:       Pending
IP:           172.18.0.6
IPs:
  IP:           172.18.0.6
Controlled By:  ReplicaSet/webapp-d9885cdd5
Containers:
  node:
    Container ID:   
    Image:          nodejscn/node
    Image ID:       
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       CreateContainerError
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-qxk9t (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  default-token-qxk9t:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-qxk9t
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason   Age                       From               Message
  ----     ------   ----                      ----               -------
  Warning  Failed   98m (x114 over 2d1h)      kubelet, minikube  Error: ImagePullBackOff
  Normal   Pulling  6m28s (x5074 over 2d22h)  kubelet, minikube  Pulling image "nodejscn/node"
  Normal   Pulled   87s (x5064 over 2d22h)    kubelet, minikube  Successfully pulled image "nodejscn/node"