Есть ли способ развернуть разные наборы модулей на основе контекста?

#kubernetes

#kubernetes

Вопрос:

Например, у меня есть три приложения, которые я хочу развернуть, а также база данных. При запуске на компьютере разработчика ( docker-for-desktop контекст) или в кластере интеграции или тестирования я бы хотел запускать по 2 копии каждого приложения, плюс иметь контейнер SQL, к которому все они подключаются. В промежуточном режиме или в рабочей среде я хочу иметь возможность устанавливать реплики в соответствии с потребностями трафика, и я хочу подключиться к другому (внешнему) серверу SQL.

Затем я бы хотел, чтобы эти файлы yaml хранились в системе управления версиями, поэтому, в зависимости от вашего env, он использует правильный контекст и «создает» все файлы yaml.

Возможно ли это с помощью контекстов? Или это проблема пространства имен? Или мне просто нужно иметь файлы yaml в отдельных папках ( local папка, staging скоросшиватель, production скоросшиватель) и иметь копии файлов yaml в каждой папке. Или, может быть, какой-то другой вариант?

Ответ №1:

Существует несколько вариантов поддержания одного и того же набора файлов YAML для разных конфигураций, например:

Helm

Настройка

ksonnet

Вы можете использовать эти инструменты для сохранения конфигураций только для каждой среды в разных файлах в git.

Комментарии:

1. Спасибо за ссылки! Похоже, что ksonnet уходит, но Kustomize выглядит именно так, как мне было нужно, и Helm выглядит так же, плюс многое другое. Я углублюсь в эти два.

2. Helm имеет широкое сообщество, и это зрелый инструмент. На всякий случай у всех инструментов есть один недостаток — они не могут создавать образы контейнеров. это не проблема, если вы полагаетесь на настроенный частный реестр и CI. Но Skaffold это могло бы помочь с подключением локальной разработки, сборкой образов и обновлением ресурсов k8s в кластере.