Логически отдельные развертывания лазурного Куберне - PullRequest
0 голосов
/ 18 апреля 2019

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

Во-первых, если я развернул с помощью firstapp.yaml, который создал модуль и службу для внешнего отображения модуля.

Если у меня есть два узла в кластере, а затем выполнить другое развертывание с помощью secondapp.yaml.

Я заметил, что второе развертывание пошло на другой узел. Хотя это желаемое поведение для логического разделения.

Это то, что предоставлено kubernetes. Как он будет управлять развертываниями, выполненными с использованием разных файлов? будут ли они всегда идти на отдельные узлы (если есть выделенные узлы)?

Если нет, то какую практику следует придерживаться, если я хочу логическое разделение между двумя узлами, которое я хочу вести как две среды, скажем, среду dev и qa.

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Нет, они не обязательно будут переходить на разные узлы.Планировщик определяет, куда поместить модуль, основываясь на разных критериях.

Что касается вашего последнего вопроса - это не имеет смысла.Вы можете использовать пространства имен \ сетевые политики для разделения сред, вам не важно, на каких узлах находятся ваши модули.В этом весь смысл кластера.

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

https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

0 голосов
/ 19 апреля 2019

Согласна с @ 4c74356b41. Как дополнение. Неважно, где находятся ваши модули, у вас может быть несколько реплик вашего приложения, разделенных, скажем, на 50 узлов, они могут по-прежнему взаимодействовать друг с другом (службы, обнаружение служб, сетевой CNI ) и совместно использовать ресурсы и т. Д.

И да, это поведение по умолчанию для Kubernetes, на которое вы можете влиять порками, толерантностью, ресурсами, ограничивающими сродство Node и анти-сродством (вы можете найти много информации о каждом из них в документации или просто погуглить) ). Кроме того, то, где запланированы блоки, зависит от узла емкость . Ваш модуль был настроен на определенный узел, потому что планировщик рассчитал, что он имеет лучший результат, сначала с учетом упомянутых условий. Вы можете найти подробную информацию о процессе здесь .

Опять же, как упоминает @ 4c74356b41, если вы хотите разделить кластер на несколько сред, скажем, для разных команд или, как вы упомянули для сред dev и qa, вы можете использовать для этого пространства имен . Они в основном создают меньшие кластеры в вашем кластере (обратите внимание, что это скорее логическое разделение, а не разделение с точки зрения безопасности, пока вы не добавите другие компоненты, такие как например роли) Вы можете просто добавить поле namespace в YAML своего развертывания, чтобы указать, в каком пространстве имен вы хотите развернуть свои модули - все равно не имеет значения, на каких узлах они находятся. В зависимости от вашего варианта использования.

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

...