microk8s – Describe Pods & Deployment

kubectl describe deployment

Command ni bagi ko view dari sudut deployment. Ko nampak berapa replicas yang desired, berapa yang running, strategy update, dan pod template yang digunakan.

kubectl describe deployment microbot
Name:                   microbot
Namespace:              default
CreationTimestamp:      Thu, 08 Jul 2021 12:38:34 +0800
Labels:                 app=microbot
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=microbot
Replicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=microbot
  Containers:
   microbot:
    Image:        dontrebootme/microbot:v1
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   microbot-5f5499d479 (1/1 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  105s  deployment-controller  Scaled up replica set microbot-5f5499d479 to 1

Perhatikan bahagian NewReplicaSet. Tu nama ReplicaSet yang aktif sekarang. Nama pod akan ikut prefix yang sama, iaitu microbot-5f5499d479-xxxxx.

Bahagian Events pun berguna. Ko boleh trace bila deployment mula scale up, controller mana yang buat, dan apa yang jadi.

kubectl describe pods

Describe pods lebih detail dari segi execution. Ko nampak pod tu ada kat node mana, IP pod, container ID, image hash, dan mount volume.

kubectl describe pods microbot-5f5499d479-w9ksc
Name:         microbot-5f5499d479-w9ksc
Namespace:    default
Priority:     0
Node:         microk8s-vm/192.168.64.2
Start Time:   Thu, 08 Jul 2021 12:38:34 +0800
Labels:       app=microbot
              pod-template-hash=5f5499d479
Annotations:  cni.projectcalico.org/podIP: 10.1.254.79/32
              cni.projectcalico.org/podIPs: 10.1.254.79/32
Status:       Running
IP:           10.1.254.79
IPs:
  IP:           10.1.254.79
Controlled By:  ReplicaSet/microbot-5f5499d479
Containers:
  microbot:
    Container ID:   containerd://e51eed207a7ef1c0e0dbaf9f96594ac02259e0251cfc450968ced0e7fe7a5c81
    Image:          dontrebootme/microbot:v1
    Image ID:       sha256:899ceb044bf694340a22d71a28f4fff64c8197cee2ed7badde83e0032118970a
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Thu, 08 Jul 2021 12:38:36 +0800
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-s9s4m (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  kube-api-access-s9s4m:
    Type:                    Projected
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>

Perbezaan utama

  • describe deployment fokus pada desired state, strategy, dan replica count.
  • describe pods fokus pada actual state, node placement, IP, container runtime, dan volume mount.
  • Pod ada Controlled By: ReplicaSet/microbot-5f5499d479. Ini confirm pod tu dimanage oleh ReplicaSet yang deployment create.
  • IP pod (10.1.254.79) nampak dalam pod describe. Deployment describe tak ada info ni.

Tip berguna

Kalau ko tak ingat nama pod, run dulu kubectl get pods untuk dapat nama penuh. Lepas tu baru describe.

kubectl get pods
kubectl describe pods <pod-name>

Untuk troubleshoot kenapa pod tak start, describe pods adalah tempat pertama ko patut check. Bahagian Events dan Conditions akan tunjuk error kalau ada.

Leave a Comment