Kubernetes
October 6, 2023

Обновление кластера и нод-групп до новой минорной версии. Эксперимент

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

Создал кластер catof8is7iangh4c507l версии 1.23 в 14.04 по Мск и нод группу той же версии с шестью нодами.

Обновляю кластер до 1.24 (операция catjn98u9rdn5opl3nhb, время 14.33) Обновляю нод группу до 1.24 (операция cat5bssr9oo1s9u8r2t6, время 14.52)

Список нод.

yc k8s cluster list-nodes catof8is7iangh4c507l
+--------------------------------+---------------------------+--------------------------------+-------------+--------+
|         CLOUD INSTANCE         |      KUBERNETES NODE      |           RESOURCES            |    DISK     | STATUS |
+--------------------------------+---------------------------+--------------------------------+-------------+--------+
| ef36bkfe1ubilcpofort           | cl1jp3gmb3n60he19cdo-eryr | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef3kocrepqj3aj0auokf           | cl1jp3gmb3n60he19cdo-ixov | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef33f09v5b6onv79pc2p           | cl1jp3gmb3n60he19cdo-ofic | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef30sudds6ucegqb65vs           | cl1jp3gmb3n60he19cdo-usaq | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef37nguae0vdujtr2cue           | cl1jp3gmb3n60he19cdo-ybyg | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef3596skh1mirlrorqca           | cl1jp3gmb3n60he19cdo-yfav | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
+--------------------------------+---------------------------+--------------------------------+-------------+--------+

Обновляю кластер до 1.25 (операция cat14s7ri7l6tvodmv6j, время 16.44) Обновляю нод группу до 1.25 (операция cat6qja9vqpe9vohgel2, время 16.54)

Список нод.

yc k8s cluster list-nodes catof8is7iangh4c507l
+--------------------------------+---------------------------+--------------------------------+-------------+--------+
|         CLOUD INSTANCE         |      KUBERNETES NODE      |           RESOURCES            |    DISK     | STATUS |
+--------------------------------+---------------------------+--------------------------------+-------------+--------+
| ef34sh13htridfhi547i           | cl1jp3gmb3n60he19cdo-ejyx | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef36bkfe1ubilcpofort           | cl1jp3gmb3n60he19cdo-eryr | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef3spe6a584m61o5gi2f           | cl1jp3gmb3n60he19cdo-ihuz | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef33f09v5b6onv79pc2p           | cl1jp3gmb3n60he19cdo-ofic | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef33uf44v9tt6thvlce5           | cl1jp3gmb3n60he19cdo-uwow | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef3596skh1mirlrorqca           | cl1jp3gmb3n60he19cdo-yfav | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
+--------------------------------+---------------------------+--------------------------------+-------------+--------+

КАКИЕ-ТО НОДЫ ПОМЕНЯЛИСЬ, А КАКИЕ-ТО НЕТ

Так как в группе параметр «Расширение размера группы, макс.» равно 3, то 3 ноды добавилось, 3 удалилось.

То есть количество вновь созданных нод будет зависеть от параметра "Расширение размера группы, макс."


Обновляю кластер до 1.26 (операция catc0o0k9044sdqc6ag9, время 17:10) Обновляю у нод группы параметр Расширение размера группы, макс 3→6 (операция catpoejap08f67snnepk, время 17.17). Группа не перешла в RECONCILLING. Обновляю нод группу до 1.26 (операция catrof10a1vnid86tbgs, время 17.18)

yc k8s cluster list-nodes catof8is7iangh4c507l
+--------------------------------+---------------------------+--------------------------------+-------------+--------+
|         CLOUD INSTANCE         |      KUBERNETES NODE      |           RESOURCES            |    DISK     | STATUS |
+--------------------------------+---------------------------+--------------------------------+-------------+--------+
| ef36sr95nmrp1otcqi6d           | cl1jp3gmb3n60he19cdo-agyz | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef38qnu1g5rivjrf3o2v           | cl1jp3gmb3n60he19cdo-emet | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef36hr00sojkkr7o627p           | cl1jp3gmb3n60he19cdo-ipap | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef3jpo0as8mddojdbfmo           | cl1jp3gmb3n60he19cdo-ipen | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef30me8vk4gren9mqdr2           | cl1jp3gmb3n60he19cdo-okur | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
| ef341ps96026o3d450cb           | cl1jp3gmb3n60he19cdo-osal | 2 100% core(s), 4.0 GB of      | 96.0 GB hdd | READY  |
| RUNNING_ACTUAL                 |                           | memory                         |             |        |
+--------------------------------+---------------------------+--------------------------------+-------------+--------+

Итак, в этом случае пересоздались все ноды в группе.

Поехали далее.
Подключаемся по ssh на две ноды: cl1jp3gmb3n60he19cdo-okur и cl1jp3gmb3n60he19cdo-osal и создаём там тестовый файлик.

touch /opt/cameda
echo "Hello, cameda!" > /opt/cameda

cat /opt/cameda
Hello, cameda!

После этого обновим кластер и группу нод до 1.27. (Операции catvf09i2mqriohua4g0 и cate2qq9ttpugt11pb62)

Опять подключаемся по ssh к нодам.

cat /opt/cameda
cat: /opt/cameda: No such file or directory

Т.е файла нет. Также меняется ip адрес. Это можно объяснить стоп/стартом ВМ. А вот отсутствие файла можно объяснить только тем, что все данные внутри ВМ вернулись взад, даже без пересоздания инстанса как такового.

Создал новый кластер 1.23 и нод группой из 6 нод. Расширение нод = 3.

Посмотрим, что со связанностью между подами.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: cam-nginx-ds
spec:
  selector:
    matchLabels:
      app: nginx-ds
  template:
    metadata:
      labels:
        app: nginx-ds
    spec:
      containers:
      - name: nginx-ds-contaner
        image: nginx:latest
        securityContext:
          privileged: true
        resources:
          requests:
            cpu: "100m"
            memory: "50Mi"
          limits:
            cpu: "200m"
            memory: "100Mi"
      nodeSelector:
        kubernetes.io/os: linux
kubectl get po -owide
NAME                 READY   STATUS    RESTARTS   AGE     IP           NODE                        NOMINATED NODE   READINESS GATES
cam-nginx-ds-5fst2   1/1     Running   0          2m15s   10.1.129.5   cl1p6n5pqd9pqedp9lnh-yjar   <none>           <none>
cam-nginx-ds-cg52n   1/1     Running   0          2m15s   10.1.133.4   cl1p6n5pqd9pqedp9lnh-iroq   <none>           <none>
cam-nginx-ds-cwrjj   1/1     Running   0          2m15s   10.1.128.4   cl1p6n5pqd9pqedp9lnh-ased   <none>           <none>
cam-nginx-ds-ml2m2   1/1     Running   0          2m15s   10.1.130.3   cl1p6n5pqd9pqedp9lnh-yboq   <none>           <none>
cam-nginx-ds-rt9tz   1/1     Running   0          2m15s   10.1.132.4   cl1p6n5pqd9pqedp9lnh-edim   <none>           <none>
cam-nginx-ds-zjsfz   1/1     Running   0          2m15s   10.1.131.3   cl1p6n5pqd9pqedp9lnh-iqen   <none>           <none>
kubectl exec -ti cam-nginx-ds-5fst2 — /bin/bash

Попинговал соседние поды - пинг есть.

ping 10.1.133.4
PING 10.1.133.4 (10.1.133.4) 56(84) bytes of data.
64 bytes from 10.1.133.4: icmp_seq=1 ttl=59 time=1.68 ms

ping 10.1.130.3
PING 10.1.130.3 (10.1.130.3) 56(84) bytes of data.
64 bytes from 10.1.130.3: icmp_seq=1 ttl=59 time=1.20 ms

Теперь обновим кластер и группу нод.

После обновления кластера и нод группы (операции catag4rjl6244seng8p6 и cat8d2pfb1lm2k4mbuj2) связанность между подами сохраняется.

kubectl get po -owide
NAME                 READY   STATUS    RESTARTS   AGE   IP           NODE                        NOMINATED NODE   READINESS GATES
cam-nginx-ds-7mbcr   1/1     Running   0          60m   10.1.135.2   cl1p6n5pqd9pqedp9lnh-umac   <none>           <none>
cam-nginx-ds-84w4l   1/1     Running   0          58m   10.1.131.3   cl1p6n5pqd9pqedp9lnh-iqen   <none>           <none>
cam-nginx-ds-jpmqx   1/1     Running   0          60m   10.1.136.2   cl1p6n5pqd9pqedp9lnh-okyx   <none>           <none>
cam-nginx-ds-kr7hh   1/1     Running   0          61m   10.1.134.2   cl1p6n5pqd9pqedp9lnh-ywof   <none>           <none>
cam-nginx-ds-tc44q   1/1     Running   0          58m   10.1.130.3   cl1p6n5pqd9pqedp9lnh-yboq   <none>           <none>
cam-nginx-ds-xczdp   1/1     Running   0          58m   10.1.133.3   cl1p6n5pqd9pqedp9lnh-iroq   <none>           <none>

Пинганул из первого пода 5 других. Картина везде одинаковая:

ping 10.1.130.3
PING 10.1.130.3 (10.1.130.3) 56(84) bytes of data.
64 bytes from 10.1.130.3: icmp_seq=1 ttl=59 time=1.81 ms