То, что я представляю здесь, является упрощенной версией моей установки и синтаксис неправильный.
У меня есть список «агентов» высокого уровня, которые я хочу развернуть как модули в кластере kubernetes.
Некоторые узлы в этом кластере имеют специальное оборудование, некоторые — нет, но все модули должны использовать один и тот же контейнер.
Может выглядеть так (опять же: синтаксис неверен):
агент 1
...
агент8
агент9 сеть rs232.1
агент10 беспроводная сеть rs232.2
Я устанавливаю развертывание, которое выглядит примерно так (синтаксис неверен):
развертывание (стандартные узлы)
реплики: 8
---
развертывание (rs232, терминал 1)
реплики: 1
селектор узлов:
rs232=1
среда:
rs232=1 (потому что nodeSelector не может быть правильно передан)
---
развертывание (rs232, терминал 2)
реплики: 1
селектор узлов:
rs232=2
среда:
rs232=2
Я хотел бы, чтобы каждый из этих агентов запустился и принял одну идентификацию из списка, разумеется, при наличии соответствующего оборудования.
Таким образом, модуль будет общаться со службой распределения ролей следующим образом:
pod — привет, я pod/container-xyz и у меня env/label/annotation rs232=2
service - Привет, ну тогда ты теперь agent10
pod - хорошо, тогда я сделаю работу агента10
(сервис - прикольно, я добавлю агент10 как псевдоним вам в DNS кластера) <- это будет мой следующий вопрос
То же самое для агентов без специального оборудования: сервис дает им по одной роли агента.
Я пробовал что-то с StatefulSet, но это не отвечает всем требованиям (из-за различных nodeSelector, и они очень медленно запускаются).
Я начал думать о выделенном самореализованном серверном модуле, который хранил бы мой список агентов и сдавал их в аренду соответствующему оборудованию (немного похожему на сервер dhcp), но я почти уверен, что я не единственный, у кого есть эта проблема, и должна быть решение там. Я быстро посмотрел на Zookeeper, но не думаю, что это для меня. Я, вероятно, не нахожу решения, потому что мой словарный запас не является правильным, я думаю.
У кого-нибудь есть хорошая идея? Я иду в правильном направлении?