Поделиться через


Поддерживаемые параметры GitOps (Flux версии 2)

Azure предоставляет возможность автоматического развертывания приложений с помощью GitOps, которая работает с кластерами Kubernetes с поддержкой Служба Azure Kubernetes (AKS) и Azure Arc. GitOps с Flux версии 2 позволяет использовать репозиторий Git в качестве источника истины для конфигурации кластера и развертывания приложений. Дополнительные сведения см. в статьях о развертываниях приложений с помощью GitOps (Flux версии 2) и учебнике. Развертывание приложений с помощью GitOps с Flux версии 2.

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

Чтобы просмотреть все параметры, поддерживаемые Flux в Azure, см az k8s-configuration . документацию. Эта реализация в настоящее время не поддерживает каждый параметр, поддерживаемый Flux. Сообщите нам, отсутствует ли нужный параметр из реализации Azure.

В этой статье описываются некоторые параметры и аргументы, доступные для az k8s-configuration flux create команды. Вы также можете просмотреть полный список параметров для этого az k8s-configuration flux с помощью -h параметра в Azure CLI (например, az k8s-configuration flux -h или az k8s-configuration flux create -h).

Совет

Решением для развертывания ресурсов Flux с не поддерживаемыми параметрами является определение необходимых пользовательских ресурсов Flux (например , GitRepository или Kustomization) в репозитории Git. Разверните эти ресурсы с помощью az k8s-configuration flux create команды. Затем вы по-прежнему сможете получить доступ к ресурсам Flux через пользовательский интерфейс Azure Arc.

Общие аргументы конфигурации

Параметр Форматировать Примечания.
--cluster-name -c Строка Имя ресурса кластера в Azure.
--cluster-type -t Допустимые значения: connectedClusters, managedClusters Используйте connectedClusters для кластеров Kubernetes с поддержкой Azure Arc или managedClusters для кластеров AKS.
--resource-group -g Строка Имя группы ресурсов Azure, содержащей ресурс кластера.
--name -n Строка Имя конфигурации Flux в Azure.
--namespace --ns Строка Имя пространства имен для развертывания конфигурации. По умолчанию: default.
--scope -s Строка Область разрешений для операторов. Возможные значения: cluster (полный доступ) или namespace (ограниченный доступ). По умолчанию: cluster.
--suspend flag Приостанавливает все исходные и kustomize выверки, определенные в этой конфигурации Flux. Сверки, активные во время приостановки, будут продолжаться.

Исходные общие аргументы

Параметр Форматировать Примечания.
--kind Строка Тип источника для согласования. Допустимые значения: bucket, git, azblob. По умолчанию: git.
--timeout Формат длительности golang Максимальное время для попытки примирить источник до истечения времени ожидания. По умолчанию: 10m.
--sync-interval --interval Формат длительности golang Время между сверками источника в кластере. По умолчанию: 10m.

Ссылочные аргументы источника репозитория Git

Параметр Форматировать Примечания.
--branch Строка Ветвь в источнике Git для синхронизации с кластером. По умолчанию: master. Более новые репозитории могут иметь корневую ветвь с именем main, в этом случае необходимо задать --branch=main.
--tag Строка Тег в источнике Git для синхронизации с кластером. Пример: --tag=3.2.0.
--semver Строка Диапазон тегов semver Git в источнике Git для синхронизации с кластером. Пример: --semver=">=3.1.0-rc.1 <3.2.0".
--commit Строка Git фиксация SHA в источнике Git для синхронизации с кластером. Пример: --commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a.

Дополнительные сведения см. в документации Flux по стратегиям получения репозитория Git.

Общедоступный репозиторий Git

Параметр Форматировать Примечания.
--url -u http[s]://server/repo[.git] URL-адрес источника репозитория Git для согласования с кластером.

Частный репозиторий Git с SSH

Внимание

Azure DevOps объявила об отмене SSH-RSA в качестве поддерживаемого метода шифрования для подключения к репозиториям Azure с помощью SSH. При использовании ключей SSH для подключения к репозиториям Azure в конфигурациях Flux рекомендуется перейти к более безопасным ключам RSA-SHA2-256 или RSA-SHA2-512. Дополнительные сведения см. в статье об отмене использования SSH-RSA в Azure DevOps.

Частный репозиторий Git с ключами, созданными SSH и Flux

Добавьте открытый ключ, созданный с помощью Flux, в учетную запись пользователя в поставщике службы Git.

Параметр Форматировать Примечания.
--url -u ssh://user@server/repo[.git] git@ следует заменить user@ , если открытый ключ связан с репозиторием вместо учетной записи пользователя.

Частный репозиторий Git с ключами SSH и пользовательскими ключами

Используйте собственный закрытый ключ непосредственно или из файла. Ключ должен быть в формате PEM и заканчиваться новой строкой (\n).

Добавьте связанный открытый ключ в учетную запись пользователя в поставщике службы Git.

Параметр Форматировать Примечания.
--url -u ssh://user@server/repo[.git] git@ следует заменить user@ , если открытый ключ связан с репозиторием вместо учетной записи пользователя.
--ssh-private-key Ключ Base64 в формате PEM Укажите ключ напрямую.
--ssh-private-key-file Полный путь к локальному файлу Укажите полный путь к локальному файлу, который содержит ключ формата PEM.

Частный узел Git с SSH и известными узлами, предоставленными пользователем

Оператор Flux поддерживает список распространенных узлов Git в файле known_hosts . Flux использует эти сведения для проверки подлинности репозитория Git перед установкой подключения SSH. Если вы используете необычный репозиторий Git или собственный узел Git, вы можете указать ключ узла, чтобы Flux идентифицировать репозиторий.

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

Параметр Форматировать Примечания.
--url -u ssh://user@server/repo[.git] git@ может заменить user@.
--known-hosts Строка Base64 Предоставьте known_hosts содержимое напрямую.
--known-hosts-file Полный путь к локальному файлу Укажите known_hosts содержимое в локальном файле.

Частный репозиторий Git с пользователем и ключом HTTPS

Параметр Форматировать Примечания.
--url -u https://server/repo[.git] HTTPS с базовой проверкой подлинности.
--https-user Необработанная строка Имя пользователя HTTPS.
--https-key Необработанная строка HttpS персональный маркер доступа или пароль.

Частный репозиторий Git с сертификатом ЦС HTTPS

Параметр Форматировать Примечания.
--url -u https://server/repo[.git] HTTPS с базовой проверкой подлинности.
--https-ca-cert Строка Base64 Сертификат ЦС для обмена данными TLS.
--https-ca-cert-file Полный путь к локальному файлу Укажите содержимое сертификата ЦС в локальном файле.

Аргументы источника контейнера

Если используется bucket источник, ниже приведены аргументы команды для конкретного контейнера.

Параметр Форматировать Примечания.
--url -u Строка URL-адреса URL-адрес для bucket. Поддерживаемые форматы: http://, https://.
--bucket-name Строка Имя синхронизации bucket .
--bucket-access-key Строка Идентификатор ключа доступа, используемый для проверки подлинности с помощью идентификатора bucketключа доступа.
--bucket-secret-key Строка Секретный ключ, используемый для проверки подлинности с помощью bucket.
--bucket-insecure Логический Обмен данными с протоколом bucket TLS без протокола TLS. Если он не указан, предполагается значение false; Если задано, предполагается значение true.

аргументы источника учетной записи Хранилище BLOB-объектов Azure

Если используется azblob источник, ниже приведены аргументы команды, относящиеся к большому двоичному объекту.

Параметр Форматировать Примечания.
--url -u Строка URL-адреса URL-адрес для azblob.
--container-name Строка Имя контейнера Хранилище BLOB-объектов Azure для синхронизации
--sp_client_id Строка Идентификатор клиента для проверки подлинности субъекта-службы с помощью BLOB-объектов Azure, необходимый для этого метода проверки подлинности.
--sp_tenant_id Строка Идентификатор клиента для проверки подлинности субъекта-службы с помощью BLOB-объектов Azure, необходимый для этого метода проверки подлинности.
--sp_client_secret Строка Секрет клиента для проверки подлинности субъекта-службы с помощью BLOB-объекта Azure
--sp_client_cert Строка Сертификат клиента в кодировке Base64 для проверки подлинности субъекта-службы с помощью BLOB-объекта Azure
--sp_client_cert_password Строка Пароль сертификата клиента, используемого для проверки подлинности субъекта-службы с помощью BLOB-объекта Azure
--sp_client_cert_send_chain Строка Указывает, следует ли включать заголовок x5c в утверждения клиента при получении маркера для включения проверки подлинности субъекта или издателя для сертификата клиента.
--account_key Строка Общий ключ BLOB-объектов Azure для проверки подлинности
--sas_token Строка Маркер SAS BLOB-объектов Azure для проверки подлинности
--managed-identity-client-id Строка Идентификатор клиента управляемого удостоверения для проверки подлинности с помощью BLOB-объекта Azure

Внимание

При использовании проверки подлинности управляемого удостоверения для кластеров AKS и azblob источника управляемое удостоверение должно быть назначено как минимум роли чтения данных BLOB-объектов хранилища. Проверка подлинности с помощью управляемого удостоверения пока недоступна для кластеров Kubernetes с поддержкой Azure Arc.

Локальный секрет для проверки подлинности с исходным кодом

Вы можете использовать локальный секрет Kubernetes для проверки подлинности с gitbucket помощью источника или azBlob источника. Локальный секрет должен содержать все параметры проверки подлинности, необходимые для источника, и их необходимо создать в том же пространстве имен, что и конфигурация Flux.

Параметр Форматировать Примечания.
--local-auth-ref --local-ref Строка Локальная ссылка на секрет Kubernetes в пространстве имен конфигурации Flux для проверки подлинности с источником.

Для проверки подлинности HTTPS создается секрет с помощью username следующих passwordкомпонентов:

kubectl create ns flux-config
kubectl create secret generic -n flux-config my-custom-secret --from-literal=username=<my-username> --from-literal=password=<my-password-or-key>

Для проверки подлинности SSH создайте секрет с полямиidentity:known_hosts

kubectl create ns flux-config
kubectl create secret generic -n flux-config my-custom-secret --from-file=identity=./id_rsa --from-file=known_hosts=./known_hosts

Внимание

Azure DevOps объявила об отмене SSH-RSA в качестве поддерживаемого метода шифрования для подключения к репозиториям Azure с помощью SSH. При использовании ключей SSH для подключения к репозиториям Azure в конфигурациях Flux рекомендуется перейти к более безопасным ключам RSA-SHA2-256 или RSA-SHA2-512. Дополнительные сведения см. в статье об отмене использования SSH-RSA в Azure DevOps.

В обоих случаях при создании конфигурации Flux используйте --local-auth-ref my-custom-secret вместо других параметров проверки подлинности:

az k8s-configuration flux create -g <cluster_resource_group> -c <cluster_name> -n <config_name> -t connectedClusters --scope cluster --namespace flux-config -u <git-repo-url> --kustomization name=kustomization1 --local-auth-ref my-custom-secret

Дополнительные сведения об использовании локального секрета Kubernetes с этими методами проверки подлинности:

Примечание.

Если вам нужен Flux для доступа к источнику через прокси-сервер, необходимо обновить агенты Azure Arc с параметрами прокси-сервера. Дополнительные сведения см. в разделе Подключение с использованием исходящего прокси-сервера.

Реализация Git

Для поддержки различных поставщиков репозитория, реализующих Git, Flux можно настроить для использования одной из двух библиотек Git: go-git или libgit2. Дополнительные сведения см. в документации flux.

Реализация GitOps Flux версии 2 автоматически определяет, какую библиотеку следует использовать для общедоступных репозиториев облака:

  • Для репозиториев GitHub, GitLab и BitBucket используется go-gitFlux.
  • Для Azure DevOps и всех остальных репозиториев используется Flux libgit2.

Для локальных репозиториев используется Flux libgit2.

Kustomization

Kustomization — это параметр, созданный для конфигураций Flux, который позволяет выбрать определенный путь в исходном репозитории, который согласен с кластером. Вам не нужно создать файл kustomization.yaml в указанном пути. По умолчанию все манифесты в этом пути согласованы. Однако если вы хотите наложить kustomize на приложения, доступные по этому пути репозитория, необходимо создать файлы Kustomize в git для конфигурации Flux, чтобы использовать их.

С помощью az k8s-configuration flux kustomization createможно создать одну или несколько kustomizations во время настройки.

Параметр Форматировать Примечания.
--kustomization Нет значения Начало строки параметров, которые настраивают kustomization. Его можно использовать несколько раз для создания нескольких kustomizations.
name Строка Уникальное имя для этой kustomization.
path Строка Путь в репозитории Git для согласования с кластером. По умолчанию используется верхний уровень ветви.
prune Логический По умолчанию — false. Установите для prune=true обеспечения того, чтобы объекты, развернутые в кластере Flux, были удалены, если они удалены из репозитория, или если конфигурация Flux или kustomizations удаляются. Использование prune=true важно для сред, где пользователи не имеют доступа к кластерам и могут вносить изменения только через репозиторий Git.
depends_on Строка Имя одного или нескольких kustomizations (в этой конфигурации), которое должно примириться до того, как эта kustomization может примириться. Например: depends_on=["kustomization1","kustomization2"]. Если удалить kustomization, которая имеет зависимые kustomizations, состояние зависимых kustomizations становится DependencyNotReady, и сверка останавливается.
timeout Формат длительности golang По умолчанию: 10m.
sync_interval Формат длительности golang По умолчанию: 10m.
retry_interval Формат длительности golang По умолчанию: 10m.
validation Строка Значения: none, client, server. По умолчанию: none. Дополнительные сведения см . в документации flux.
force Логический По умолчанию: false. Задайте для force=true указания контроллеру kustomize повторно создавать ресурсы при сбое исправления из-за неизменяемого изменения поля.

Вы также можете использовать az k8s-configuration flux kustomization для обновления, отображения, отображения и удаления kustomizations в конфигурации Flux.

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