Как я могу гарантировать, что я аннотирую каждый узел Kubernetes до того, как на него будут назначены модули на EKS?

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

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

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

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

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

1 ответ

Как насчет:

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

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

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

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

Другие вопросы по тегам