Для переноса определенных ресурсов в другую зону доступности необходимо выполнить следующие действия:
Создаем файл 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
в команде.