Использование Digital Ocean Kubernetes Auto-Scaling для автоматического понижения доступности узлов - PullRequest
0 голосов
/ 05 мая 2020

У меня есть кластер Kubernetes, то есть «Cluster1» с автоматическим масштабированием до максимум 2 узлов и минимум 1 узел. Я пытаюсь понять поведение цифрового океана для автоматического понижения уровня узлов в следующем сценарии.

  1. Кластер «Cluster1» имеет Nginx в качестве входящего контроллера, который был добавлен как часть "Настройка в 1 щелчок" во время подготовки кластера.
  2. В этом кластере автоматическое масштабирование настроено как 1 минимальный узел и 2 максимальных узла. Назовем их Node1 и Node2.
  3. Этот кластер находится за цифровым балансировщиком нагрузки океана, то есть LB1, который взаимодействует с контроллером входящего трафика, то есть с запущенным модулем Nginx.
  4. Допустим, есть одна реплика ( реплика: 1) контроллер развертывания образа «1», который требует 80% ЦП.
  5. Первоначально развертывается образ 1, и, поскольку ресурсы доступны, образ 1 запускается на Узле 1.
  6. Считайте, что image1 обновляется до image2 в восходящем направлении. Контроллер развертывания увидит, что узел недоступен, и подготовит узел 2, и создаст еще один модуль, на котором запущен образ 2 на узле 2, модуль, работающий с образом 1, начнет завершать свою работу, как только образ 2 будет запущен и запущен.
  7. LB1 обновляет маршрутизацию на Node1, Node2.
  8. Теперь после завершения работы модуля (на Node1) для образа 1, поскольку реплика: 1 установлена ​​в контроллере развертывания, Node1 ничего не запускает с точки зрения пользователя.
  9. В идеале должно быть автоматическое c деинициализация узла, т.е. Node1.
  10. Я попытался вручную удалить Node1 из кластера с помощью панели управления DO.
  11. Обновления LB1 и показывает доступность одного узла, но показывает состояние как неработающее.
  12. После исследования я обнаружил, что «nginx -controller» работал только на Node1. Когда Node1 завершается, «nginx -controller» требует времени, чтобы подготовить новый модуль на тогда доступном Node2. Однако все это время случаются простои.

Мой вопрос в том, как лучше всего использовать автоматическое масштабирование для перехода на более раннюю версию. У меня есть несколько решений, которые я подумал.

  1. Можно ли запустить «nginx -controller» на всех узлах?

или

  1. Если я сливаю узел из "kubectl", то есть слива kubectl, а затем удаляю вручную, удаляю узел с панели инструментов, простоя не должно быть ?. или просто выполните слив с помощью kubectl, DigitalOcean автоматически откатится к предыдущей версии.

1 Ответ

0 голосов
/ 06 мая 2020

если Nginx контроллер входящего трафика установлен как DaemonSet, это возможно

Пожалуйста, go через официальный документ kubernetes об этом топи c.

https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...