Настройте главный сервер API для проверки узла кордона и уничтожения, если у него нет запущенных заданий - PullRequest
0 голосов
/ 17 декабря 2018

Team,

Нам нужно развернуть некоторые драйверы на рабочих узлах кластера K8s, и наш поток такой, как показано ниже:

  1. кордон-узел [больше нет планирования]
  2. дождитесь завершения заданий
  3. destroy

Есть ли способ, которым я могу автоматизировать это, используя параметры K8s, вместо того, чтобы писать какой-то скрипт bash для выполнения этих проверок каждый раз, потому чтомы не знаем, когда стручки закончатся.Итак, можем ли мы настроить главный сервер API для проверки узла кордона и уничтожения, если у него нет запущенных заданий?

1 Ответ

0 голосов
/ 18 декабря 2018

Вы можете написать собственное приложение, используя Go Client , Python Client или Java Client и, в основном, сделать это:

$ kubectl apply -f yourjob.yaml
$ kubectl cordon <nodename>
$ kubectl wait --for=condition=complete job/myjob
$ kubectl drain <nodename>
# Terminate your node if drain returns successfully

Если это частая схема, вы также можете использовать для этого пользовательский контроллер ( оператор ) с определением пользовательского ресурса ( CRD ).Вам нужно будет встроить код вашего приложения, который общается с сервером API.

...