Шаблоны незаменимы для автоматизации на основе GitOps

Опубликовано: 2022-05-27

Оглавление

Автоматизация на основе GitOps

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

Но благодаря подходу Kubernets к объявлению инфраструктуры вы можете определять изменения точности на любом уровне. Kubernetes позволяет интегрировать несколько инструментов для автоматизированного планирования, развертывания и мониторинга контейнеров.

Одним из таких инструментов является Helm, фреймворк автоматизации, принятый CNCF, который стал популярным не только в кругах Kubernetes, но и в экосистеме GitOps. В этом посте мы рассмотрим, как Helm помогает автоматизировать облачные приложения с помощью Kubernetes и GitOps.

Что такое Хелм?

Хотя Helm описывается как менеджер пакетов, он является мощным инструментом для автоматизации установки, развертывания, обновления и управления приложениями Kubernetes. Управление манифестом Kubernetes — задача, которая становится все более сложной в разных системах. Для одной сортировки требуются дубликаты нескольких файлов YAML и значений жесткого кода. Kubernetes требовался лучший способ управления файлами YAML с помощью простого формата упаковки, что привело к созданию диаграмм управления. Однако назначение Шлема выходит за рамки шаблона.

Графики

Диаграммы Helm — это единицы, которые можно использовать для приложений Kubernetes. Каждая диаграмма может содержать файлы, метаданные и инфраструктуру приложений. Диаграммы, написанные на Go, будут храниться в определенных каталогах шаблонов со связанными переменными, версиями и описаниями. Сохраняя эти диаграммы в виде архивов в репозитории, вы можете делиться ими со всей командой разработчиков для повторного использования.

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

Ниже приведены некоторые важные правила, которые следует знать при работе с Helm.

Chart.YAML: основной файл, содержащий описание вашей диаграммы.

Values.YAML: файл, содержащий значения по умолчанию для вашего графика.

Графики: каталог с поддиаграммами

Шаблоны: каталог источников Kubernetes, определенный как шаблоны

Шаблоны

Папка с шаблонами — ключевая функция Helm. Он содержит файлы конфигурации приложения, которые затем применяются к кластеру. Файлы в каталоге шаблона вызывают свои значения из values.YAML.

Почему Хелм?

Helm добавляет большую ценность среде непрерывной доставки, поскольку дает следующие преимущества.

Улучшенная производительность:

Helm (наряду с другими инструментами сортировки, такими как Flux) позволяет сортировать программное обеспечение с помощью одной кнопки или одной команды. Это позволит вашей команде сосредоточиться только на разработке программного обеспечения.

Облегчает процесс:

Концепция диаграмм позволяет копировать одну и ту же диаграмму в конвейере — разработке, тестировании и производстве — или в рабочем процессе разных команд. Это значительно уменьшает проблему.

Измерение:

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

Легкий вывод:

Helm управляет всеми выпусками, упрощая внесение изменений при возникновении проблем.

GitOps использует как Helm, так и Flux

Helm может управлять сложными выпусками и сохранять простоту по мере ваших измерений. Однако по мере постепенного внесения изменений Helm потребуются дополнительные инструменты для обновления кластера Kubernetes.

Flux — отличное решение-заполнитель для Helm, потому что он действует как мост между Helm и всеми важными репозиториями Git, из которых определяются весь кластер Kubernetes и спецификации утилит.

Flux — это решение для автоматизации развертывания, основанное на модели GitOps, которая делает Git отправной точкой и реальным источником всех изменений. Flux позволяет поддерживать согласованность между репозиториями кода и кластерами Kubernetes и автоматизирует сортировку при внесении изменений в код.

Короче говоря, Flux Helm автоматизирует выпуск диаграмм, синхронизируя диаграммы из Git с кластером Kubernetes.

Как Flux работает с Helm?

Чтобы использовать Flux в качестве оператора GitOps, вы сохраняете все диаграммы Helm вместе с их файлами YAML и пользовательскими ресурсами Kubernetes в репозитории Git. Кроме того, вы помещаете неизменяемые образы этих источников в реестр контейнеров.

Как только вы внесете изменения в Git с помощью запроса «Pull», Flux проверит ваш репозиторий и предоставит необходимые ресурсы. Затем изменения включаются в производственный кластер. Это, конечно, упрощает процесс, и вы можете делать гораздо больше — например, курить тесты или утверждать изменения, специфичные для SRE, — но пока давайте не будем усложнять.

Если вы хотите узнать больше о том, как Flux 2 и Helm работают вместе для повышения скорости и надежности при одновременном сокращении времени простоя, посмотрите это выступление Скотта Ригби на YouTube.

Вывод

Helm значительно упрощает запуск Kubernetes. Он добавляет большую ценность конвейеру GitOps благодаря концепции диаграмм или шаблонов. Тем не менее, помимо шаблонов существуют и другие требования, а именно сквозная автоматизация развертывания. Именно здесь для использования руля необходим такой инструмент, как Flux (или Weave GitOps, встроенный в Flux). Кроме того, решение, подобное Magalix, гарантирует совместимость и безопасность выпусков Helm.

Weave KitApps — это решение для непрерывной доставки, позволяющее масштабировать Kubernetes. Это позволяет любой компании легко принять и внедрить GitOps. Weave GitOps упрощает функциональный кластер с помощью таких команд, как «gitops install» для включения GitOps и «gitops add app» для добавления в ваше приложение. Эти команды абстрагируются от основных сложных задач, которые в противном случае связаны с автоматизацией развертывания. Weave GitOps объединяет весь конвейер GitOps, включая Helm, Flux, Magalix и другие, поэтому вы можете начать работу с GitOps, не теряя времени.

как-стать-продавцом-амазонки-в-простых шагах

цифровой маркетинг для общественного питания