Kubernetes upgrade: различия между версиями

Материал из ALT Linux Wiki
Строка 27: Строка 27:
$ podsec-load-sign-oci ./amd64_27-31_tar.xz amd64 <E-mail_подписанта> registry.local/k8s-c10f2
$ podsec-load-sign-oci ./amd64_27-31_tar.xz amd64 <E-mail_подписанта> registry.local/k8s-c10f2
</pre>
</pre>
После завершения команды (это может составить несколько минут) файл архива <code>amd64_27-31_tar.xz</code> можно удалить.


После завершения команды (это может составить несколько минут) проверить наличие добавленных образов на регистраторе можно командой
<pre>
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"
  ]
}
</pre>
В списке должны присутствовать вышеперечисленные образы с префиксом <code>k8s-c10f2/...</code>.
Получить список тегов (kubernetes-версий) образов образов можно командой:
<pre>
curl -s  http://registry.local/v2/k8s-c10f2/<имя_образа>/tags/list | jq '.tags | sort'
</pre>
Например список версий образа <code>kube-apiserver</code> выглядит следующим образом:
<pre>
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"
]
</pre>
Файл архива <code>amd64_27-31_tar.xz</code> после успешного размещения образов можно удалить.


==== Добавление в http-сервер sigstore.local промежуточных kubernetes rpm-пакетов ====
==== Добавление в http-сервер sigstore.local промежуточных kubernetes rpm-пакетов ====


==== Модификация настроек apt для обновления rpm-пакетов ====
==== Модификация настроек apt для обновления rpm-пакетов ====

Версия от 13:16, 9 января 2025

Описание скриптов обновления 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.tgzrpm-пакетов 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-пакетов

Модификация настроек apt для обновления rpm-пакетов