Динамически вводить команды в развертывание - PullRequest
1 голос
/ 21 июня 2020

Когда у вас есть StatefulSet или Deployment, у вас обычно есть средства для предоставления команд, которые будут загружены в контейнер модуля при его создании.

Возможно ли, что в массив команд нужно ввести больше аргументов в виде автоматическое масштабирование развертывания, скажем, HPA или удаление некоторых, если оно уменьшается? список команд модуля nsqAdmin.

command:
   - /nsqd
   - -data-path
   - /data
   - -lookupd-tcp-address
   - nsqlookupd-0.nsqlookupd:4160
   - -lookupd-tcp-address
   - nsqlookupd-1.nsqlookupd:4160
   - -lookupd-tcp-address
   - nsqlookupd-2.nsqlookupd:4160
    ...

Ситуация является гипотетической, поскольку вам нужно достичь безумно большого количества очередей, которые, как я полагаю, должны выходить за пределы 3 nsqlookupd-s (очередь NSQ discovery sv c), поэтому при умеренных нагрузках достаточно фиксированного количества looupd-ов. Тем не менее, мне интересно, как такой тип автоматического масштабирования в экстремальном случае может быть обработан в Kubernetes.

1 Ответ

2 голосов
/ 21 июня 2020

Этот вопрос больше касается варианта масштабирования определенных сервисов в Kubernetes. Я думаю, что лучший шаблон для этого - иметь Оператор Kubernetes . По сути, это будет управлять жизненным циклом вашего приложения nsqd. Существует несколько инструментов оператора, которые вы можете использовать для создания своего оператора nsqd:

Хорошим примером оператора масштабирования является Srimzi , который является Kafka оператор для Kubernetes.

Вы также можете найти другие известные операторы в Operator Hub .

...