Перенос ресурсов kubernetes в другую зону доступности

Для переноса определенных ресурсов в другую зону доступности необходимо выполнить следующие действия: Создаем файл patch.yaml, в котором описываем параметры, которые мы будем патчить.

Файл patch.yaml:

spec:
  template:
    spec:
      nodeSelector:
        topology.kubernetes.io/zone: ru-central1-d

В данном случае указываем nodeSelector с указанием лейбла ноды topology.kubernetes.io/zone и соответствующей зоны, куда нужно выполнить перенос. Далее выполняем команду:

kubectl get deployments --no-headers | awk '{print $1}' | xargs kubectl patch deployment --patch "$(cat patch.yaml)"

Данная команда выберет все деплойменты в неймспейсе текущего контекста KUBECONFIG и пропатчит их в соответствии с файлом patch.yaml. Если необходимо пропатчить StatefulSet, то указываем sts, вместо deployments в команде.

Сведения о статье:
Дата публикации: 03/02/2025 11:46AM
Последнее обновление: 03/02/2025 11:46AM (rmntrvn)
Поделиться статьей: 
Автор: rmntrvn
Постоянная ссылка: http://kb.rmntrvn.ru/kb/replace-k8s-resources-to-another-zone-availability
kubernetes | patch | nodeSelector | topology.kubernetes.io/zone | inline | перенос ресурсов kubernetes в другую зону |