Kubernetes theory
March 25, 2023

Pod Conditions

Это массив данных в котором отображается текущий статус пода.

Особенности.

Представляет из себя массив данных;
Данную информацию собирает kubelet;
Посмотреть в какой кондиции находится под можно в его дескрайбе.

Пример вывода.

Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True

По этому выводу можно понять в каком состоянии находится под. И если под не заработал, то понимать куда копать.

  1. PodScheduled - показывает был ли под зашедулен на ноду или нет;
  2. ContainersReady - показывает работает ли контейнер в поде;
  3. Ready - показывает готов ли к работе сам под или нет;
  4. Initialized - показывает успешно ли отработали init контейнеры или нет.

Важное замечание!

Conditions, где все параметры в True, вовсе не означает, что с контейнером в поде всё в порядке.

Пример:

kubectl describe po whatsapp-service-0 -n 25ebbbbd-b92e-493c-bc11-4cbc37174543
Name:                      whatsapp-service-0
Namespace:                 25ebbbbd-b92e-493c-bc11-4cbc37174543
Priority:                  0
Node:                      cl14o7fdh8c3k5bs5f8p-efod/10.41.1.9
Start Time:                Sat, 13 May 2023 10:56:05 +0300
Labels:                    app.kubernetes.io/instance=whatsapp-service
                           app.kubernetes.io/name=whatsapp-service
                           controller-revision-hash=whatsapp-service-558b59bc4c
                           statefulset.kubernetes.io/pod-name=whatsapp-service-0
Annotations:               <none>
Status:                    Terminating (lasts 17h)
Termination Grace Period:  30s
IP:                        10.100.195.41
IPs:
  IP:           10.100.195.41
Controlled By:  StatefulSet/whatsapp-service
Containers:
  whatsapp-service:
    Container ID:   containerd://1f6d93babec28362608c839484379fd127a49410123ffad018fd19ee9c828ebe
    Image:          registry.code.medhq.ru/nq/whatsapp-service:latest
    Image ID:       registry.code.medhq.ru/nq/whatsapp-service@sha256:8fffbfaf13d0d74a63a29a4c4eae3e1a7f7f31ea53368e8909c762a785be1c56
    Ports:          3020/TCP, 3021/TCP
    Host Ports:     0/TCP, 0/TCP
    State:          Running
      Started:      Sun, 14 May 2023 16:28:16 +0300
    Last State:     Terminated
      Reason:       Error
      Exit Code:    137
      Started:      Sat, 13 May 2023 10:56:22 +0300
      Finished:     Sun, 14 May 2023 16:28:15 +0300
    Ready:          True
    Restart Count:  1
    Limits:
      cpu:     400m
      memory:  1Gi
    Requests:
      cpu:      200m
      memory:   300Mi
    Liveness:   http-get http://:http/api/v1/instance/25ebbbbd-b92e-493c-bc11-4cbc37174543/health-check delay=60s timeout=2s period=10s #success=1 #failure=3
    Readiness:  http-get http://:http/api/v1/instance/25ebbbbd-b92e-493c-bc11-4cbc37174543/health-check delay=60s timeout=2s period=10s #success=1 #failure=3
    Environment Variables from:
      whatsapp-service  Secret  Optional: false
    Environment:
      CLIENT_STATE_CALLBACK_URL:    https:/qoob.store/api/v1/smsprovider/whatsapp/instance/callback
      HTTP_HOST:                    0.0.0.0
      HTTP_PORT:                    3020
      INCOME_MESSAGE_CALLBACK_URL:
      MAX_TEXT_MESSAGE_LENGTH:      10000
      NODE_ENV:                     production
      REDIS_URL:                    redis-01.inqana-prod-k8s.yclocal:6379
      ROUTER_STATE_CALLBACK_URL:    https://wa.inqana.com/router/api/v1/instance/wa_state
      UID:                          25ebbbbd-b92e-493c-bc11-4cbc37174543
      WS_HOST:                      0.0.0.0
      WS_PORT:                      3021
      WWEBJS_CONSOLE_EVENTS:        false
      WWEBJS_DIR:                   /wwebjs-sessions
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-95vfs (ro)
      /wwebjs-sessions from shared-whatsapp-service (rw)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  shared-whatsapp-service:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  shared-whatsapp-service-whatsapp-service-0
    ReadOnly:   false
  kube-api-access-95vfs:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              nodes-role=wa
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
                             nodes-role=wa:NoSchedule
Events:                      <none>