Является ли новое пространство имен K8s для каждого развертывания функциональной ветки хорошей практикой?

Я пытаюсь понять, как организовать пространства имен K8s для кластера разработки.

Теперь у нас есть несколько пространств имен разработки (для каждой команды).

В одном пространстве имен есть тонны подов (около 100-200).

От 1 до 5 модулей на развертывание функциональной ветки.

Мы используем Helm для развертывания. Но некоторые товарищи по команде говорят, что это сложно.

Новая идея заключается в создании пространства имен для каждого развертывания функциональной ветки.

Теперь я вижу, что основная проблема заключается в совместном использовании синхронизации секретов TLS (и других) между пространствами имен. Но это можно решить, сделав CronJob.

Есть ли у этого подхода преимущества или недостатки?


person visortelle    schedule 05.11.2018    source источник
comment
Пространство имен для каждой функциональной ветки - хорошая идея. Если у вас возникли проблемы с обменом секретами, вы можете использовать этот инструмент. Он может синхронизировать секреты и configMap между пространствами имен и даже между кластерами. Любые изменения синхронизируются практически мгновенно. appscode.com/products/kubed/0.8.0 / guides / config-syncer /   -  person Emruz Hossain    schedule 05.11.2018
comment
Эмруз Хоссейн, спасибо за ответ. кубед выглядит именно так, как я хочу!   -  person visortelle    schedule 05.11.2018


Ответы (2)


Определенно хороший подход - использовать пространства имен для ограничения развертываний специализированными командами.
Но становится трудно управлять развертыванием 50+ модулей для каждого пространства имен, особенно если модули содержат 10+ участников. Таким образом, вы будете иметь тенденцию управлять 50X10 = 500 контейнерами на команду развертывания.

От 1 до 5 модулей на развертывание функциональной ветки.

Это действительно отличный способ использовать пространство имен, но все же у вас будет много-много пространства имен, которое нужно запомнить, когда вы изначально сказали, что у вас есть 100-200 модулей.

Надеюсь, вы используете rbac в k8s

person Vinod Kumar    schedule 05.11.2018

Пространство имен для каждой (обзорной) функциональной ветки - это путь.

Изоляция каждой группы развертывания делает ее управляемой ...

Также, если вы используете панель управления kubernetes, обзор пространства имен будет иметь больше смысла.

Идея синхронизации секретов и configMaps по умолчанию прекрасна, если вы действительно повторно используете все и все, и они никогда не зависят от конкретного пространства имен.

Генерация секретов и configMaps динамически в момент создания пространства имен и добавление их тогда и там для этого пространства имен, а не синхронизации, - это еще один способ.

Есть причина, по которой секреты и configMaps изолированы, зависят от пространства имен и находятся в определенном пространстве имен. На секреты и configMaps могут ссылаться только модули, находящиеся в одном пространстве имен.

То, что вы можете синхронизировать, не означает, что вы должны ...

Если вы по-прежнему настаиваете на синхронизации, создайте 1 группу «синхронизируемых общих секретов» и другую группу, зависящую от пространства имен.

https://kubernetes.io/docs/concepts/configuration/secret/#restrictions < / а>

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#restrictions

person Khalil Gharbaoui    schedule 19.04.2019