Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure предоставляет возможность автоматического развертывания приложений с помощью GitOps, которая работает с кластерами Kubernetes в Службе Azure Kubernetes (AKS) и кластерами Kubernetes с поддержкой 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 |
флаг | Приостанавливает все выверки исходного кода и 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 с сертификатом центра сертификации (CA) для 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. Если он не указан, предполагается значение false; Если задано, предполагается значение true. |
Исходные аргументы учетной записи BLOB-хранилища Azure
Если вы используете источник azblob
, ниже указаны аргументы команд, специфичные для BLOB.
Параметр | Формат | Примечания. |
---|---|---|
--url
-u
|
Строка URL-адреса | URL-адрес для azblob . |
--container-name |
Струна | Имя контейнера хранилища BLOB-объектов Azure для синхронизации |
--sp_client_id |
Струна | Идентификатор клиента для аутентификации учетной записи службы в Azure Blob, необходимый для этого метода аутентификации. |
--sp_tenant_id |
Струна | Идентификатор арендатора для аутентификации служебного главного компонента с помощью хранилища Azure Blob, необходимый для данного метода проверки подлинности. |
--sp_client_secret |
Струна | Секрет клиента для проверки подлинности субъекта-службы с помощью BLOB-объекта Azure |
--sp_client_cert |
Струна | Сертификат клиента в кодировке Base64 для аутентификации сервисного объекта в Azure Blob |
--sp_client_cert_password |
Струна | Пароль сертификата клиента, используемого для аутентификации сервисного принципала в Azure Blob |
--sp_client_cert_send_chain |
Струна | Указывает, следует ли включать заголовок x5c в утверждения клиента при получении токена для активации аутентификации на основе имени субъекта и издателя для клиентского сертификата. |
--account_key |
Струна | Общий ключ Azure Blob для проверки подлинности |
--sas_token |
Струна | Токен SAS для BLOB-объектов Azure для аутентификации |
--managed-identity-client-id |
Струна | Идентификатор клиента для управляемого удостоверения при аутентификации с Хранилищем объектов Azure (Azure Blob Storage). |
Это важно
При использовании аутентификации с управляемой идентичностью для кластеров AKS и azblob
источника управляемой идентичности, ей должно быть назначено как минимум роль читателя данных хранилища BLOB. Проверка подлинности с помощью управляемого удостоверения пока недоступна для кластеров Kubernetes с поддержкой Azure Arc.
Локальный секрет для аутентификации с источником
Вы можете использовать локальный секрет Kubernetes для проверки подлинности с источником git
, bucket
или 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 с этими методами проверки подлинности.
- Проверка подлинности HTTPS репозитория Git
- Самозаверяющий сертификат HTTPS репозитория Git
- Проверка подлинности SSH репозитория Git
- Статическая аутентификация хранилища
Примечание.
Если вам нужен Flux для доступа к источнику через прокси-сервер, необходимо обновить агенты Azure Arc с параметрами прокси-сервера. Дополнительные сведения см. в разделе Подключение с использованием исходящего прокси-сервера.
Внедрение Git
Для поддержки различных поставщиков репозитория, реализующих Git, Flux можно настроить для использования одной из двух библиотек Git: go-git
или libgit2
. Подробности см. в документации Flux.
Реализация GitOps Flux версии 2 автоматически определяет, какую библиотеку следует использовать для общедоступных репозиториев облака:
- Для репозиториев GitHub, GitLab и BitBucket Flux используется
go-git
. - Для Azure DevOps и всех остальных репозиториев Flux использует
libgit2
.
Для локальных репозиториев используется Flux libgit2
.
Кастомизация
Kustomization — это параметр, созданный для конфигураций Flux, который позволяет выбрать определенный путь в исходном репозитории, который согласен с кластером. Вам не нужно создать файл kustomization.yaml в указанном пути. По умолчанию все манифесты в указанном пути синхронизируются. Однако, если вы хотите создать оверлей Kustomize для приложений, доступных на этом пути репозитория, вам следует создать файлы Kustomize в git для конфигурации Flux, чтобы их использовать.
С помощью az k8s-configuration flux kustomization create
можно создать одну или несколько kustomizations во время настройки.
Параметр | Формат | Примечания. |
---|---|---|
--kustomization |
Нет значения | Начало строки параметров, которые конфигурируют кастомизацию. Его можно использовать несколько раз для создания различных настроек. |
name |
Струна | Уникальное имя для этой настройки. |
path |
Струна | Путь в репозитории Git для согласования с кластером. По умолчанию используется верхний уровень ветви. |
prune |
булевый | По умолчанию — false . Настройте prune=true , чтобы гарантировать, что объекты, развернутые Flux в кластере, удаляются, если они удаляются из репозитория, или если конфигурация Flux или настройки kustomizations удаляются. Использование prune=true важно для сред, где пользователи не имеют доступа к кластерам и могут вносить изменения только через репозиторий Git. |
depends_on |
Струна | Имя одной или нескольких кaстомизаций (в этой конфигурации), которые должны согласоваться до того, как эта кастомизация может согласоваться. Например: 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.
Дальнейшие действия
- Дополнительные сведения о развертываниях приложений с помощью GitOps (Flux версии 2) для AKS и Kubernetes с поддержкой Azure Arc.
- Используйте наш учебник, чтобы узнать , как включить GitOps в кластерах Kubernetes с поддержкой AKS или Azure Arc.
- Узнайте о рабочем процессе CI/CD с помощью GitOps.