Конфигурации GitOps Flux версии 1 с поддержкой Azure Arc Kubernetes

Важно!

Документы в этом разделе предназначены для GitOps с Flux версии 1. GitOps с Flux версии 2 теперь доступен для кластеров Kubernetes с поддержкой Azure Arc и Служба Azure Kubernetes (AKS); узнайте о GitOps с Flux версии 2. Мы рекомендуем перейти на Flux версии 2 как можно скорее.

Поддержка ресурсов конфигурации кластера flux версии 1, созданных до 1 января 2024 г., завершится 24 мая 2025 г. Начиная с 1 января 2024 г. вы не сможете создавать новые ресурсы конфигурации кластера Flux версии 1.

Если говорить о Kubernetes,GitOps — это практика объявления требуемого состояния конфигураций кластера Kubernetes (развертываний, пространств имен и т. д.) в репозитории Git. За этим объявлением следует развертывание этих конфигураций кластера на основе опроса с помощью оператора. Репозиторий Git может содержать следующие элементы:

  • манифесты в формате YAML, описывающие любые допустимые ресурсы Kubernetes, включая пространства имен, сопоставления ConfigMap, развертывания, контроллеры DaemonSet и т. д.;
  • чарты Helm для развертывания приложений.

Flux, популярное средство с открытым исходным кодом в пространстве GitOps, можно развернуть для кластера Kubernetes, чтобы упростить поток конфигураций из репозитория Git в кластер Kubernetes. Flux поддерживает развертывание своего оператора в областях кластера и пространства имен. Оператор Flux, развернутый в области пространства имен, может выполнять развертывание объектов Kubernetes только в этом конкретном пространстве имен. Возможность выбирать область (кластер или пространство имен) позволяет вам использовать модели развертывания нескольких клиентов в одном кластере Kubernetes.

Конфигурации

Configurations architecture

Подключение между кластером и репозиторием Git создается как ресурс конфигурации (Microsoft.KubernetesConfiguration/sourceControlConfigurations) на вершине ресурса Kubernetes с поддержкой Azure Arc (представлено Microsoft.Kubernetes/connectedClusters) в Azure Resource Manager.

Свойства ресурса конфигурации используются для развертывания оператора Flux в кластере с соответствующими параметрами, такими как репозиторий Git, из которого нужно извлечь манифесты, и интервал опроса, в соответствии с которым их следует извлекать. Данные ресурса конфигурации хранятся в базе данных Azure Cosmos DB в зашифрованном виде, что обеспечивает их конфиденциальность.

Агент config-agent, работающий в кластере, отвечает за следующее:

  • Отслеживание новых или обновленных ресурсов конфигурации в ресурсе Kubernetes с поддержкой Azure Arc.
  • развертывание оператора Flux для наблюдения за репозиторием Git для каждого ресурса конфигурации;
  • применение всех изменений, внесенных в любой ресурс конфигурации.

Вы можете создать несколько ресурсов конфигурации область пространства имен в одном кластере Kubernetes с поддержкой Azure Arc, чтобы обеспечить многотенантность.

Примечание.

  • config-agent отслеживает наличие новых или обновленных ресурсов конфигурации, доступных в ресурсе Kubernetes с поддержкой Azure Arc. Таким агентам требуется подключение, чтобы требуемое состояние было передано в кластер. Если агентам не удается подключиться к Azure, возникает задержка при распространении требуемого состояния в кластер.
  • Конфиденциальные входные данные клиентов, такие как закрытый ключ, содержимое известных узлов, имя пользователя HTTPS и маркер или пароль, не хранятся более 48 часов в службах Kubernetes с поддержкой Azure Arc. Если вы используете для конфигураций конфиденциальные входные данные, подключайте кластеры к сети как можно чаще.

Применение конфигураций в большом масштабе

Так как Azure Resource Manager управляет конфигурациями, вы можете автоматизировать создание одной и той же конфигурации во всех ресурсах Kubernetes с поддержкой Azure Arc с помощью Политика Azure в область подписки или группы ресурсов.

Это принудительное применение обеспечивает общую базовую конфигурацию (содержащую конфигурации, такие как ClusterRoleBindings, RoleBindings и NetworkPolicy), можно применять ко всему флоту или инвентаризации кластеров Kubernetes с поддержкой Azure Arc.

Следующие шаги