Thank you for reading this post, don't forget to subscribe!
ГЛАВНОЕ!!!! НЕ ОБНОВЛЯЙ ВЕРСИЮ КЛАСТЕРА ЧЕРЕЗ ОДНУ т.е. с 18 сразу на 20 не обновляй.
Поэтому советуют обновляться постепенно, по минорным версиям.
задача, есть кластер поставленный через kubespray от southbridge:
Kubernetes – установка кластера через kubespray(от southbridge)
1 2 3 4 5 6 7 8 9 |
[root@tst-vsrv-kubemaster1 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION tst-vsrv-kubemaster1 Ready control-plane,master 3d3h v1.18.3 tst-vsrv-kubemaster2 Ready control-plane,master 3d3h v1.18.3 tst-vsrv-kubemaster3 Ready control-plane,master 3d3h v1.18.3 tst-vsrv-kubeworker1 Ready ingress 3d3h v1.18.3 tst-vsrv-kubeworker2 Ready ingress 3d3h v1.18.3 tst-vsrv-kubeworker3 Ready ingress 3d3h v1.18.3 |
Сценарий kubespray поддерживает установку и обновление до определенного набора версий, посмотреть список поддерживаемых версий можно в файле roles/download/defaults/main.yml
. В переменной kubelet_checksums
указаны контрольные суммы бинарных файлов, поддерживаемых версий kubernetes. Периодически в этот список добавляются новые версии и убираются устаревшие. Если вам надо обновляться с той версии, которой уже нет в актуальной версии kubespray. То можно сделать checkout на более ранний commit, в котором эту версию еще не убрали.
Если там стоит версия 1.18.3, то меняем версию в файле инвентаря inventory/s000/group_vars/k8s-cluster/k8s-cluster.yml
kube_version: v1.19.3
Исправляем путь к инвентарю в скрипте _upgrade_cluster.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/sh ###ssh-agent bash #ssh-add ~/.ssh/id_rsa if [ -z "$1" ]; then echo "Usage: $0 adminname" exit 1 fi d=$(date '+%Y.%m.%d_%H:%M') export ANSIBLE_LOG_PATH=./deploy-$d.log ansible-playbook -u "$1" -i inventory/s000/inventory.ini upgrade-cluster.yml -b --diff --ask-pass |
И запускаем процедуру обновления
bash _upgrade_cluster.sh root
Сценарий будет выполняться около 30 минут, после выполнения смотрим список узлов кластера, проверяем версию и список подов, проверяем, что все работают
1 2 3 4 5 6 7 8 9 |
kubectl get nodes NAME STATUS ROLES AGE VERSION tst-vsrv-kubemaster1 Ready control-plane,master 3d3h v1.19.3 tst-vsrv-kubemaster2 Ready control-plane,master 3d3h v1.19.3 tst-vsrv-kubemaster3 Ready control-plane,master 3d3h v1.19.3 tst-vsrv-kubeworker1 Ready ingress 3d3h v1.19.3 tst-vsrv-kubeworker2 Ready ingress 3d3h v1.19.3 tst-vsrv-kubeworker3 Ready ingress 3d3h v1.19.3 |