Как я могу гарантировать, что я аннотирую каждый узел Kubernetes до того, как на EKS запланированы стручки? - PullRequest
1 голос
/ 27 марта 2019

Я пытаюсь использовать CNI Custom Networking на EKS , чтобы убедиться, что IP-адреса Pod выделены из альтернативных подмножеств (чтобы предотвратить голодание IP в подсетях, в которых работают мои узлы кластера). Для этого мне нужно создать несколько ENIConfigs и аннотировать каждый узел.

Как я могу убедиться, что каждый узел аннотирован до того, как на него запланированы какие-либо модули, чтобы убедиться, что IP-адреса модулей не выделены из подсетей, в которых работают мои узлы?

РЕДАКТИРОВАТЬ: Единственное решение, которое я могу придумать, это:

  • Добавить по умолчанию NoSchedule для всех узлов
  • Развертывание пользовательского контроллера, который переносит порчу
  • Получите контроллер для аннотирования всех узлов по мере необходимости и удалите порчу

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

1 Ответ

1 голос
/ 27 марта 2019

Как насчет:

  • Добавить по умолчанию ENIConfigComplete: false порчу ко всем узлам
  • Развернуть DaemonSet, который допускает ENIConfigComplete: false
  • DaemonSet создает модуль накаждый новый узел, который
  • создает несколько узлов ENIConfigs (сценарий bash ??)
  • аннотирует каждый узел с помощью ENIConfigComplete: true
  • DaemonSet больше не допускает узел, поэтому
  • Pod удален из узла.

DaemonSet обеспечит правильную настройку каждого нового узла.

Salesforce расскажет об этой технике для подготовки дисков наих новые узлы:

Это позволит избежать длительного процесса контроллера.

...