Настройте кластер kubernetes с несколькими модулями автоматически - PullRequest
2 голосов
/ 27 мая 2019

Извините, если вопрос немного абстрактный, но я сейчас вхожу в GCP.

Прежде всего, моя цель - я хочу настроить автоматическое создание кластера kubernetes с несколькими модулями.

Что я имею до сих пор - последние несколько дней я просматривал документацию GCP и Kubernetes, а также некоторые примеры. У меня есть два рабочих бита:

  1. Я создал конфигурацию кластера с файлами yaml и jinja, и я можно использовать диспетчер развертывания для их настройки.

    gcloud deployment-manager deployments create my-config --config my-config.yaml
    
  2. Я создал еще один файл конфигурации yaml, в котором используется образ докера, хранящийся в реестре контейнеров GCP, для запуска некоторых модулей в кластере выше (что снова работает нормально)

    kubectl apply -f image-config.yaml --record

У меня вопрос: можно ли как-нибудь объединить вышеперечисленное в один файл конфигурации и запустить все с помощью одной команды? Или, если вы можете указать мне в направлении какого-то подходящего примера.

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Проект Agones выполняет эту задачу, используя комбинацию Terraform и Шлем , как описано в документации Установка с Terraform .Существует одна команда, которая создает кластер GKE, а также устанавливает приложение в кластер (например, запускает несколько модулей).

Если вы не хотите использовать Helm и создавать полный установщик для ваших модулей, вы также можете посмотреть на использование Kubernetes Provider для запуска некоторых простых приложений после развертывания кластера.(проверьте конфигурацию google_container_cluster в провайдере GCP).

0 голосов
/ 27 мая 2019

Да, это вполне возможно.Вам следует объединить два файла конфигурации в многодокументный файл YAML, первый из которых содержит последовательность команд, которые должны быть выполнены во втором документе, и последующие.

---
- gcloud deployment-manager deployments create my-config --config $doc2:my-config.yaml
- kubectl apply -f $doc3:image-config.yaml --record
---
<insert contents of my-config.yaml here>
---
<insert contents of image-config.yaml here>

Небольшая программа может загружать документы, анализировать последовательность в первом документе, извлекать имя временного файла для записи, выгружать соответствующий документ в этот файл, выполнять команду (удаление $docN:), удалите временный файл.Я предполагаю, что это должно быть выполнимо примерно в 15 строках кода.

...