Управление состоянием узлов кластера
Чтобы ввести узел в эксплуатацию:
-
Проверьте, на каких узлах кластера есть ограничения (taints):
$ kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.taints}{"\n"}{end}'Если у узла нет ограничения
data.vkcs.cloud/nodegroup=standalone:NoSchedule, приложения VK Data Platform на нем не размещаются. -
Добавьте метку (label) на узел, который нужно ввести в эксплуатацию:
$ kubectl label node <УЗЕЛ> data.vkcs.cloud/schedule=true --overwriteЗдесь
<УЗЕЛ>— название узла. -
Обновите состояние кластера:
-
Узнайте имя пода
data-platformer-api:$ kubectl -n paas-trusted get po | grep data-platformer-api | awk '{print $1}' | head -1 -
Откройте доступ к
data-platformerс помощьюport-forward:$ kubectl -n paas-trusted port-forward <ПОД> 8001:8001Здесь
<ПОД>— имя подаdata-platformer-api, полученное на предыдущем шаге.Не закрывайте терминал до завершения обновления состояния кластера.
-
В новом терминале отправьте запрос на обновление состояния кластера:
$ curl http://127.0.0.1:8001/rpc/v1/public/cluster-set-state \--request POST \--header 'Content-Type: application/json' \--data '{"dpClusterId": "00000000-0000-0000-0000-000000000000","state": "reconciling"}' -
Дождитесь, пока состояние кластера обновится.
-
Остановите выполнение
port-forwardв терминале, где он запущен (CTRL+C).
-
-
Проверьте, что на узле появилось ограничение
data.vkcs.cloud/nodegroup=standalone:NoSchedule:$ kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.taints}{"\n"}{end}'
Чтобы вывести узел из эксплуатации:
-
Измените метку на узле:
$ kubectl label node <УЗЕЛ> data.vkcs.cloud/schedule=false --overwriteЗдесь
<УЗЕЛ>— название узла. -
Обновите состояние кластера:
-
Узнайте имя пода
data-platformer-api:$ kubectl -n paas-trusted get po | grep data-platformer-api | awk '{print $1}' | head -1 -
Откройте доступ к
data-platformerс помощьюport-forward:$ kubectl -n paas-trusted port-forward <ПОД> 8001:8001Здесь
<ПОД>— имя подаdata-platformer-api, полученное на предыдущем шаге.Не закрывайте терминал до завершения обновления состояния кластера.
-
В новом терминале отправьте запрос на обновление состояния кластера:
$ curl http://127.0.0.1:8001/rpc/v1/public/cluster-set-state \--request POST \--header 'Content-Type: application/json' \--data '{"dpClusterId": "00000000-0000-0000-0000-000000000000","state": "reconciling"}' -
Дождитесь, пока состояние кластера обновится.
-
Остановите выполнение
port-forwardв терминале, где он запущен (CTRL+C).
-
-
Проверьте, что на узле отсутствует ограничение
data.vkcs.cloud/nodegroup=standalone:NoSchedule:$ kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.taints}{"\n"}{end}'