Ответ 1
Я думаю, что рулевое управление станет стандартным способом создания установщика приложений для кластеров кубернетов. Я попытаюсь создать свой собственный график, чтобы параметризовать развертывание моего приложения.
В нескольких местах на сайте документации Kubernetes они рекомендуют хранить файлы конфигурации YAML в исходном элементе управления для упрощения отслеживания версий, отката и развертывания.
В настоящее время мы с моими коллегами пытаемся определить структуру нашего репозитория git.
Похоже, что существует множество потенциальных изменений, и все они имеют недостатки. Каков приемлемый способ структурирования такого репозитория?
Я думаю, что рулевое управление станет стандартным способом создания установщика приложений для кластеров кубернетов. Я попытаюсь создать свой собственный график, чтобы параметризовать развертывание моего приложения.
Я полагаю, пока не установлен установленный стандарт. Я считаю, что шлейфы слишком сложны для начала, особенно с использованием еще одного неуправляемого компонента, работающего на кластере k8s. Это рабочий процесс, который мы следуем, который хорошо работает для настройки 15-ти микросервисов и 5 различных сред (devx2, staging, qa, prod).
Две ключевые идеи:
Инструментарий достаточно прост, чтобы понять, собрав несколько сценариев bash или интегрировавшись с Makefile и т.д.
EDIT: ответить на некоторые вопросы в комментарии
Репозиторий исходного кода приложения используется как единственный источник правды. Таким образом, это означает, что если все работает так, как следует, изменения никогда не должны перемещаться из кластера кубернетов в репозиторий.
Изменения непосредственно на сервере запрещены в нашем рабочем процессе. Если это когда-либо произойдет, мы должны вручную убедиться, что они снова вошли в репозиторий приложений.
Опять же, просто хочу отметить, что конфигурации, хранящиеся в исходном коде, фактически являются шаблонами и используют secretKeyRef
довольно либерально. Это означает, что из инструментария CI появляются некоторые конфигурации, и они поступают из секретов, которые живут только в кластере (например, пароли базы данных, маркеры API и т.д.).
На мой взгляд, Хельм относится к кубернетам, поскольку Docker-compose - к докеру
Нет причин опасаться руля, так как в нем самая основная функциональность, все, что он делает, похоже на kubectl apply -f templates
.
Как только вы познакомитесь с рулем, вы можете начать использовать values.yaml
и добавить значения в свои шаблоны kubernetes для максимальной гибкости.
values.yaml
name: my-name
внутри шаблонов /deployment.yaml
name: {{.Values.name }}
Мой подход заключается в создании подкаталога helm в каждом проекте, так же, как я включаю файл docker-compose.yml.
в дополнение к этому вы также можете поддерживать репозиторий руля для всех ваших проектов, которые ссылаются на предварительно созданные изображения