Kubernetes theory
September 16, 2022

Node

Это физический уровень кластера k8s. Непосредственно сами ноды кластера. Ноды кластера бывают двух типов: master node, worker node.

Именно на нодах кластера расположены все его ресурсы: pod, deploy, ns, ds, sts, sc, cj, etc.

Далее под определением нод кластера будем использовать понятие воркер ноды.

Посмотрим текущие ноды в кластере:

kubectl get no
NAME                        STATUS   ROLES    AGE    VERSION
cl1r12kvg8q3mf91ohla-ipir   Ready    <none>   24d    v1.21.5
cl1r12kvg8q3mf91ohla-usen   Ready    <none>   100d   v1.21.5

Отсюда можно понять какая версия кластера, минорная версия, сколько нода уже работает и её статус.

Посмотрим теперь описание ноды:

kubectl describe no cl1r12kvg8q3mf91ohla-ipir
Name:               cl1r12kvg8q3mf91ohla-ipir
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=standard-v3
                    beta.kubernetes.io/os=linux
                    failure-domain.beta.kubernetes.io/zone=ru-central1-a
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=cl1r12kvg8q3mf91ohla-ipir
                    kubernetes.io/os=linux
                    node.kubernetes.io/instance-type=standard-v3
                    node.kubernetes.io/kube-proxy-ds-ready=true
                    node.kubernetes.io/masq-agent-ds-ready=true
                    node.kubernetes.io/node-problem-detector-ds-ready=true
                    topology.kubernetes.io/zone=ru-central1-a
                    yandex.cloud/node-group-id=cat65rfc3mb4n7440l93
                    yandex.cloud/pci-topology=k8s
                    yandex.cloud/preemptible=false
Annotations:        csi.volume.kubernetes.io/nodeid:
                      {"disk-csi-driver.mks.ycloud.io":"fhmiqvsbb2ef1c7f0g24","io.ycloud.mks.disk-csi-driver":"fhmiqvsbb2ef1c7f0g24","ru.yandex.s3.csi":"cl1r12k...
                    node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Sun, 21 Aug 2022 22:27:49 +0300
Taints:             <none>
Unschedulable:      false
Lease:
  HolderIdentity:  cl1r12kvg8q3mf91ohla-ipir
  AcquireTime:     <unset>
  RenewTime:       Thu, 15 Sep 2022 22:24:52 +0300
Conditions:
  Type                          Status    LastHeartbeatTime                 LastTransitionTime                Reason                          Message
  ----                          ------    -----------------                 ------------------                ------                          -------
  ReadonlyFilesystem            False     Thu, 15 Sep 2022 22:23:38 +0300   Sun, 21 Aug 2022 22:28:25 +0300   FilesystemIsNotReadOnly         Filesystem is not read-only
  FrequentUnregisterNetDevice   Unknown   Thu, 15 Sep 2022 22:23:38 +0300   Sun, 21 Aug 2022 22:28:27 +0300   NoFrequentUnregisterNetDevice   node is functioning properly
  FrequentKubeletRestart        Unknown   Thu, 15 Sep 2022 22:23:38 +0300   Sun, 21 Aug 2022 22:28:27 +0300   NoFrequentKubeletRestart        kubelet is functioning properly
  FrequentDockerRestart         Unknown   Thu, 15 Sep 2022 22:23:38 +0300   Sun, 21 Aug 2022 22:28:27 +0300   NoFrequentDockerRestart         docker is functioning properly
  FrequentContainerdRestart     Unknown   Thu, 15 Sep 2022 22:23:38 +0300   Sun, 21 Aug 2022 22:28:27 +0300   NoFrequentContainerdRestart     containerd is functioning properly
  CorruptDockerOverlay2         Unknown   Thu, 15 Sep 2022 22:23:38 +0300   Sun, 21 Aug 2022 22:28:27 +0300   NoCorruptDockerOverlay2         docker overlay2 is functioning properly
  KernelDeadlock                False     Thu, 15 Sep 2022 22:23:38 +0300   Sun, 21 Aug 2022 22:28:25 +0300   KernelHasNoDeadlock             kernel has no deadlock
  NetworkUnavailable            False     Sun, 21 Aug 2022 22:27:56 +0300   Sun, 21 Aug 2022 22:27:56 +0300   RouteCreated                    RouteController created a route
  MemoryPressure                False     Thu, 15 Sep 2022 22:24:16 +0300   Sun, 21 Aug 2022 22:27:49 +0300   KubeletHasSufficientMemory      kubelet has sufficient memory available
  DiskPressure                  False     Thu, 15 Sep 2022 22:24:16 +0300   Sun, 21 Aug 2022 22:27:49 +0300   KubeletHasNoDiskPressure        kubelet has no disk pressure
  PIDPressure                   False     Thu, 15 Sep 2022 22:24:16 +0300   Sun, 21 Aug 2022 22:27:49 +0300   KubeletHasSufficientPID         kubelet has sufficient PID available
  Ready                         True      Thu, 15 Sep 2022 22:24:16 +0300   Sun, 21 Aug 2022 22:28:09 +0300   KubeletReady                    kubelet is posting ready status. AppArmor enabled
Addresses:
  InternalIP:  10.128.0.19
  ExternalIP:  62.84.118.73
  Hostname:    cl1r12kvg8q3mf91ohla-ipir
Capacity:
  cpu:                8
  ephemeral-storage:  99052768Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             16392476Ki
  pods:               110
Allocatable:
  cpu:                7910m
  ephemeral-storage:  49411099702
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             13461788Ki
  pods:               110
System Info:
  Machine ID:                 230000073c64422ef5268ddf78120c41
  System UUID:                23000007-c6d2-d7f8-b589-cf0b0ef04044
  Boot ID:                    d196ac43-592f-460f-825a-d299f854790d
  Kernel Version:             5.4.0-100-generic
  OS Image:                   Ubuntu 20.04.4 LTS
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  containerd://1.4.12
  Kubelet Version:            v1.21.5
  Kube-Proxy Version:         v1.21.5
PodCIDR:                      10.96.130.0/25
PodCIDRs:                     10.96.130.0/25
ProviderID:                   yandex://fhmiqvsbb2ef1c7f0g24
Non-terminated Pods:          (22 in total)
  Namespace                   Name                                                   CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                                                   ------------  ----------  ---------------  -------------  ---
  default                     jenkins-745957694b-9tphc                               500m (6%)     500m (6%)   500Mi (3%)       500Mi (3%)     24d
  default                     vault-yckms-k8s-0                                      500m (6%)     500m (6%)   500Mi (3%)       500Mi (3%)     24d
  default                     vault-yckms-k8s-agent-injector-56b47d8b66-xdtrv        500m (6%)     500m (6%)   500Mi (3%)       500Mi (3%)     24d
  external-secrets            external-secrets-66674f9d4f-4v276                      0 (0%)        0 (0%)      0 (0%)           0 (0%)         24d
  external-secrets            external-secrets-cert-controller-f9cbddcb6-67brp       0 (0%)        0 (0%)      0 (0%)           0 (0%)         24d
  external-secrets            external-secrets-webhook-6b6c54f77-plj6m               0 (0%)        0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 calico-node-q8qk6                                      250m (3%)     0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 calico-typha-6d7bddfb44-gmmtk                          200m (2%)     0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 calico-typha-horizontal-autoscaler-8495b957fc-cg784    10m (0%)      500m (6%)   0 (0%)           0 (0%)         24d
  kube-system                 calico-typha-vertical-autoscaler-6cc57f94f4-rlxx2      0 (0%)        0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 coredns-5f8dbbff8f-57ppg                               100m (1%)     0 (0%)      70Mi (0%)        170Mi (1%)     24d
  kube-system                 coredns-5f8dbbff8f-mptx9                               100m (1%)     0 (0%)      70Mi (0%)        170Mi (1%)     24d
  kube-system                 csi-s3-lbc7p                                           0 (0%)        0 (0%)      0 (0%)           0 (0%)         28h
  kube-system                 ip-masq-agent-wjbrp                                    10m (0%)      0 (0%)      16Mi (0%)        0 (0%)         24d
  kube-system                 kube-dns-autoscaler-598db8ff9c-k74zw                   20m (0%)      0 (0%)      10Mi (0%)        0 (0%)         24d
  kube-system                 kube-proxy-h6c46                                       100m (1%)     0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 metrics-server-v0.3.1-6b998b66d6-9vvdr                 69m (0%)      164m (2%)   202Mi (1%)       452Mi (3%)     24d
  kube-system                 node-local-dns-8gj2l                                   30m (0%)      0 (0%)      50Mi (0%)        0 (0%)         24d
  kube-system                 npd-v0.8.0-9sn7d                                       20m (0%)      200m (2%)   20Mi (0%)        100Mi (0%)     24d
  kube-system                 yc-disk-csi-node-v2-pf9sh                              30m (0%)      600m (7%)   96Mi (0%)        600Mi (4%)     24d
  local-path-storage          local-path-provisioner-849cb58dff-xkd4d                0 (0%)        0 (0%)      0 (0%)           0 (0%)         24d
  logging                     fluent-bit-79vh7                                       0 (0%)        0 (0%)      0 (0%)           0 (0%)         4d8h
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests      Limits
  --------           --------      ------
  cpu                2439m (30%)   2964m (37%)
  memory             2034Mi (15%)  2992Mi (22%)
  ephemeral-storage  0 (0%)        0 (0%)
  hugepages-1Gi      0 (0%)        0 (0%)
  hugepages-2Mi      0 (0%)        0 (0%)
Events:

Здесь много разной полезной информации.

В блоке Addresses: - ip адреса и имя ноды.
Capacity: - здесь указывается сколько выделено ресурсов ноде
Allocatable: - здесь сколько реально ресурсов в распоряжении ноды
System Info: - системная информация о ноде. В частности какой используется рантайм. И версия кластера.
Non-terminated Pods: - какие поды находятся на данной ноде.

Полезные ссылки.

https://kubernetes.io/docs/concepts/architecture/nodes/