nodeSelector
и kubectl patch
могут быть решением.
Использование новой метки
Вы должны сначала пометить метку работающего узла рабочие нагрузки statefull, например, со следующей меткой statefullnode=true
с использованием следующей команды:
kubectl label nodes <node-name> statefullnode=true
Затем необходимо выполнить исправление каждого развертывания, запущенного на этом узле, с помощью kubectl patch
:
kubectl patch deployments nginx-deployment -p '{"spec": {"template": {"spec": {"nodeSelector": {"statefullnode": "true"}}}}}'
Использование имени узла
Если вы не хотите маркировать свой узел, вы можете просто использовать имя узла в качестве метки для nodeSelector. Например, если имя вашего узла my-gke-node , запустите:
kubectl patch deployments nginx-deployment -p '{"spec": {"template": {"spec": {"nodeSelector": {"kubernetes.io/hostname": "my-gke-node"}}}}}'
Запустите kubectl get nodes
, чтобы получить имена узлов вашего кластера.