Kubernetes upgrade
Описание скриптов обновления kubernetes с версии 1.26
Скрипты обновления rootless kubernetes
Механизм обновления kubernetes-кластера не позволяет проводить обновление узлов кластера с пропуском промежуточных версий. Например, чтобы обновить узлы кластера с минорной версии 1.26
до минорной версии 1.31
необходимо последовательно и синхронизировано обновить узлы через промежуточные версии
1.26 -> 1.27 -> 1.28 -> 1.29 -> 1.30 -> 1.31
.
Причем при обновлении не допускается, чтобы минорные версии всех обновляемых узлов были соседними. Не допусается, например, обновление программного обеспечения узла с версии 1.27
до версии 1.28
, если в кластере есть узлы с версией 1.26
.
Таким образом для обновления узлов кластера с версии 1.26
до версии 1.28
узла кластера должны в рамках локальной сети иметь доступ как к промежуточным версиям RPM-пакетам kubernetes
, так и к промежуточным версиям docker-образов kuberbetes
.
Промежуточные версии RPM-пакетов kubernetes
размещаются на узле с внутренним доменным именем sigstore.local
.
Промежуточные версии docker-образов kuberbetes
размещаются на узле с внутренним доменным именем registry.local
.
Обычно при стандартном разворачивании это один и тот же узел, с которого начиналось разворачивание кластера.
Подготовка узлов кластера без доступа в Интернет для обновления rootless kubernetes
Для обновления kubernetes в сети без доступа в Интернет необходимо наличие следующих архивов:
amd64_27-31_tar.xz
- архив docker-образов всех промежуточных версий;kuberRPMS_1.27-1.31.tgz
rpm-пакетов kubelet, kubeadm, cri-o и зависимых пакетов всех промежуточных версий.
Добавление в локальный регистратор registry.local промежуточных docker образов kubernetes
Файл архива amd64_27-31_tar.xz
необходимо разместить на узле с доменом sigstore.local
в домашнем каталоге пользователя входящим в группуpodman_dev
(обычно это пользователь imagemaker
).
Для выкатывания промежуточных docker-образов в локальный регистратор registry.local
необходимо зайти в пользователя imagemaker
(вход через su- imagemaker
недопускается) и набрать команду разворачивания архива, подписи образов и передачи их в регистратор:
$ podsec-load-sign-oci ./amd64_27-31_tar.xz amd64 <E-mail_подписанта> registry.local/k8s-c10f2
После завершения команды (это может составить несколько минут) проверить наличие добавленных образов на регистраторе можно командой
curl -s http://registry.local/v2/_catalog | jq . { "repositories": [ "k8s-c10f1/..., "k8s-c10f2/coredns", "k8s-c10f2/etcd", "k8s-c10f2/flannel", "k8s-c10f2/flannel-cni-plugin", "k8s-c10f2/kube-apiserver", "k8s-c10f2/kube-controller-manager", "k8s-c10f2/kube-proxy", "k8s-c10f2/kube-scheduler", "k8s-c10f2/pause" ] }
В списке должны присутствовать вышеперечисленные образы с префиксом k8s-c10f2/...
.
Получить список тегов (kubernetes-версий) образов образов можно командой:
curl -s http://registry.local/v2/k8s-c10f2/<имя_образа>/tags/list | jq '.tags | sort'
Например список версий образа kube-apiserver
выглядит следующим образом:
$ curl -s http://registry.local/v2/k8s-c10f2/kube-apiserver/tags/list | jq '.tags | sort' [ "v1.27.16", "v1.28.14", "v1.29.9", "v1.30.5", "v1.31.1" ]
Файл архива amd64_27-31_tar.xz
после успешного размещения образов можно удалить.
Добавление в http-сервер sigstore.local промежуточных kubernetes rpm-пакетов
Для добавления промежуточных kubernetes rpm-пакетов
необходимо на сервере с доменом sistore.local
перейти в каталог /var/sigstore
и развернуть в нем архив kuberRPMS_1.27-1.31.tgz
:
# cd /var/sigstore # tar xvzf .../kuberRPMS_1.27-1.31.tgz dr-xr-xr-x root/root 0 2024-12-22 13:22 ALTLinux/ dr-xr-xr-x root/root 0 2024-12-22 13:22 ALTLinux/base/ -r--r--r-- root/root 74808 2024-12-22 13:22 ALTLinux/base/pkglist.main -r--r--r-- root/root 10628 2024-12-22 13:22 ALTLinux/base/pkglist.main.xz -r--r--r-- root/root 123 2024-12-22 13:22 ALTLinux/base/release.main -r--r--r-- root/root 13117 2024-12-22 13:22 ALTLinux/base/pkglist.main.bz2 -r--r--r-- root/root 1045 2024-12-22 13:22 ALTLinux/base/release dr-xr-xr-x root/root 0 2024-12-22 13:22 ALTLinux/RPMS.main/ -r--r--r-- root/root 8290 2024-12-22 13:22 ALTLinux/RPMS.main/kubernetes1.27-common-1.27.16-alt1.noarch.rpm -r--r--r-- root/root 50665903 2024-12-22 13:22 ALTLinux/RPMS.main/kubernetes1.30-master-1.30.5-alt1.x86_64.rpm ...