Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure fournit une fonctionnalité de déploiements d’applications automatisés à l’aide de GitOps qui fonctionne avec Azure Kubernetes Service (AKS) et des clusters Kubernetes avec Azure Arc. GitOps avec Flux v2 vous permet d’utiliser votre référentiel Git comme source de vérité pour la configuration du cluster et le déploiement d’applications. Pour plus d’informations, consultez Déploiements d’applications avec GitOps (Flux v2) et Tutoriel : Déployer des applications à l’aide de GitOps avec Flux v2.
GitOps sur Kubernetes avec Azure Arc ou Azure Kubernetes Service utilise Flux, un ensemble d’outils open source populaire qui prend en charge de nombreux paramètres pour activer différents scénarios. Pour obtenir une description de tous les paramètres pris en charge par flux, consultez la documentation Flux officielle.
Pour afficher tous les paramètres pris en charge par Flux dans Azure, consultez la az k8s-configuration
documentation. Cette implémentation ne prend actuellement pas en charge chaque paramètre pris en charge par Flux. Faites-nous savoir si un paramètre dont vous avez besoin est manquant dans l’implémentation d’Azure.
Cet article décrit certains des paramètres et arguments disponibles pour la az k8s-configuration flux create
commande. Vous pouvez également voir la liste complète des paramètres pour le az k8s-configuration flux
en utilisant le paramètre -h
avec Azure CLI (par exemple, az k8s-configuration flux -h
ou az k8s-configuration flux create -h
).
Conseil / Astuce
Une solution de contournement pour déployer des ressources Flux avec des paramètres non pris en charge consiste à définir les ressources personnalisées Flux requises (telles que GitRepository ou Kustomization) à l’intérieur de votre dépôt Git. Déployez ces ressources avec la az k8s-configuration flux create
commande. Vous pourrez alors toujours accéder à vos ressources Flux via l’interface utilisateur Azure Arc.
Arguments généraux de configuration
Paramètre | Format | Remarques |
---|---|---|
--cluster-name -c |
Chaîne | Nom de la ressource de cluster dans Azure. |
--cluster-type -t |
Valeurs autorisées : connectedClusters , managedClusters |
Utiliser connectedClusters pour les clusters Kubernetes avec Azure Arc ou managedClusters pour les clusters AKS. |
--resource-group -g |
Chaîne | Nom du groupe de ressources Azure qui contient la ressource de cluster. |
--name -n |
Chaîne | Nom de la configuration flux dans Azure. |
--namespace --ns |
Chaîne | Nom de l’espace de noms pour déployer la configuration. Par défaut : default . |
--scope -s |
Chaîne | Étendue d’autorisation pour les opérateurs. Les valeurs possibles sont cluster (accès complet) ou namespace (accès restreint). Par défaut : cluster . |
--suspend |
drapeau | Suspend toutes les réconciliations source et Kustomize définies dans cette configuration Flux. Les rapprochements actifs au moment de la suspension continueront. |
Arguments généraux de source
Paramètre | Format | Remarques |
---|---|---|
--kind |
Chaîne | Type de source à rapprocher. Valeurs autorisées : bucket , git , azblob . Par défaut : git . |
--timeout |
Format de la durée golang | Durée maximale de tentative de rapprochement de la source avant expiration du délai d’attente. Valeur par défaut : 10m . |
--sync-interval --interval |
Format de la durée golang | Temps entre les rapprochements de la source sur le cluster. Par défaut : 10m . |
Arguments de référence de la source du référentiel Git
Paramètre | Format | Remarques |
---|---|---|
--branch |
Chaîne | Branche au sein de la source Git à synchroniser avec le cluster. Par défaut : master . Les dépôts plus récents peuvent avoir une branche racine nommée main , auquel cas vous devez définir --branch=main . |
--tag |
Chaîne | Étiquette au sein de la source Git à synchroniser avec le cluster. Exemple : --tag=3.2.0 . |
--semver |
Chaîne | Plage d’étiquettes Git semver au sein de la source Git à synchroniser avec le cluster. Exemple : --semver=">=3.1.0-rc.1 <3.2.0" . |
--commit |
Chaîne | Git commit SHA dans la source Git à synchroniser avec le cluster. Exemple : --commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a . |
Pour plus d’informations, consultez la documentation Flux sur les stratégies d’extraction des référentiels Git.
Dépôt Git public
Paramètre | Format | Remarques |
---|---|---|
--url -u |
http[s]://server/repo[.git] |
URL de la source du dépôt Git à reconcilier avec le cluster. |
Dépôt Git privé avec SSH
Important
Azure DevOps annoncé la dépréciation du SSH-RSA comme méthode de chiffrement prise en charge pour la connexion aux référentiels Azure à l’aide de SSH. Si vous utilisez des clés SSH pour vous connecter aux référentiels Azure dans les configurations flux, nous vous recommandons de passer à des clés RSA-SHA2-256 ou RSA-SHA2-512 plus sécurisées. Pour plus d’informations, consultez dépréciation d’Azure DevOps SSH-RSA.
Dépôt Git privé avec des clés SSH créées par Flux
Ajoutez la clé publique générée par Flux au compte d’utilisateur dans votre fournisseur de services Git.
Paramètre | Format | Remarques |
---|---|---|
--url -u |
ssh://user@server/repo[.git] |
git@ doit remplacer user@ si la clé publique est associée au référentiel au lieu du compte d’utilisateur. |
Dépôt Git privé avec des clés SSH et fournies par l’utilisateur
Utilisez votre propre clé privée directement ou à partir d’un fichier. La clé doit être au format PEM et se terminer par une nouvelle ligne (\n
).
Ajoutez la clé publique associée au compte d’utilisateur dans votre fournisseur de services Git.
Paramètre | Format | Remarques |
---|---|---|
--url -u |
ssh://user@server/repo[.git] | git@ doit remplacer user@ si la clé publique est associée au référentiel au lieu du compte d’utilisateur. |
--ssh-private-key |
Clé Base64 au format PEM | Fournissez directement la clé. |
--ssh-private-key-file |
Chemin d’accès complet au fichier local | Indiquez le chemin d’accès complet au fichier local qui contient la clé de format PEM. |
Hôte Git privé avec des hôtes connus SSH et fournis par l’utilisateur
L’opérateur Flux gère une liste d’hôtes Git courants dans son known_hosts
fichier. Flux utilise ces informations pour authentifier le référentiel Git avant d’établir la connexion SSH. Si vous utilisez un dépôt Git rare ou votre propre hôte Git, vous pouvez fournir la clé d’hôte afin que Flux puisse identifier votre dépôt.
Tout comme les clés privées, vous pouvez fournir le contenu known_hosts
directement ou dans un fichier. Lorsque vous fournissez votre propre contenu, utilisez les spécifications de format de contenu known_hosts, ainsi que l’un des scénarios clés SSH précédents.
Paramètre | Format | Remarques |
---|---|---|
--url -u |
ssh://user@server/repo[.git] | git@ peut remplacer user@ . |
--known-hosts |
Chaîne Base64 | Fournissez le contenu known_hosts directement. |
--known-hosts-file |
Chemin d’accès complet au fichier local | Fournir du contenu known_hosts dans un fichier local. |
Dépôt Git privé avec un utilisateur et une clé HTTPS
Paramètre | Format | Remarques |
---|---|---|
--url -u |
https://server/repo[.git] |
HTTPS avec authentification de base. |
--https-user |
Chaîne brute | Nom d’utilisateur HTTPS. |
--https-key |
Chaîne brute | Jeton d’accès personnel HTTPS ou mot de passe. |
Dépôt Git privé avec un certificat CA HTTPS
Paramètre | Format | Remarques |
---|---|---|
--url -u |
https://server/repo[.git] |
HTTPS avec authentification de base. |
--https-ca-cert |
Chaîne Base64 | Certificat d’autorité de certification pour la communication TLS. |
--https-ca-cert-file |
Chemin d’accès complet au fichier local | Fournissez le contenu du certificat d’autorité de certification dans un fichier local. |
Arguments de la source de compartiment
Si vous utilisez la source bucket
, voici les arguments de commande spécifiques au compartiment.
Paramètre | Format | Remarques |
---|---|---|
--url -u |
Chaîne d’URL | URL du bucket . Formats pris en charge : http:// , https:// . |
--bucket-name |
Chaîne | Nom du bucket à synchroniser. |
--bucket-access-key |
Chaîne | ID de clé d’accès utilisé pour s’authentifier auprès du bucket . |
--bucket-secret-key |
Chaîne | Clé secrète utilisée pour s’authentifier auprès du bucket . |
--bucket-insecure |
Booléen | Communiquez avec un bucket sans TLS. S’il n’est pas fourni, supposé false ; s’il est fourni, supposé vrai. |
Arguments sources de compte Stockage Blob Azure
Si vous utilisez la source azblob
, voici les arguments de commande spécifiques à l’objet blob.
Paramètre | Format | Remarques |
---|---|---|
--url -u |
Chaîne d’URL | URL du azblob . |
--container-name |
Chaîne | Nom du conteneur Stockage Blob Azure à synchroniser |
--sp_client_id |
Chaîne | Pour cette méthode d'authentification, l'ID client pour l'authentification d’un principal de service avec Azure Blob est requis. |
--sp_tenant_id |
Chaîne | ID de tenant pour l’authentification d’un principal du service avec Azure Blob, nécessaire pour cette méthode d’authentification |
--sp_client_secret |
Chaîne | Clé secrète client pour l’authentification d’un principal de service avec Azure Blob |
--sp_client_cert |
Chaîne | Certificat client encodé en Base64 pour l’authentification d’un principal de service avec Azure Blob |
--sp_client_cert_password |
Chaîne | Le mot de passe du certificat client utilisé pour authentifier un principal de service avec Azure Blob |
--sp_client_cert_send_chain |
Chaîne | Spécifie s’il faut inclure l’en-tête x5c dans les revendications clientes lors de l’acquisition d’un jeton pour activer l’authentification basée sur le nom de l’objet/l’émetteur pour le certificat client |
--account_key |
Chaîne | Clé partagée Azure Blob pour l’authentification |
--sas_token |
Chaîne | Jeton SAP Azure Blob pour l’authentification |
--managed-identity-client-id |
Chaîne | ID client de l’identité managée pour l’authentification avec Azure Blob |
Important
Lorsque vous utilisez l’authentification d’identité managée pour les clusters AKS et la source azblob
, l’identité managée doit disposer au moins du rôle Lecteur des données Blob du stockage. L’authentification à l’aide d’une identité managée n’est pas encore disponible pour les clusters Kubernetes avec Azure Arc.
Secret local pour l’authentification avec la source
Vous pouvez utiliser un secret Kubernetes local pour l'authentification avec une source git
, bucket
ou azBlob
. Le secret local doit contenir tous les paramètres d’authentification nécessaires à la source et doit être créé dans le même espace de noms que la configuration flux.
Paramètre | Format | Remarques |
---|---|---|
--local-auth-ref --local-ref |
Chaîne | Référence locale à un secret Kubernetes dans l’espace de noms de configuration Flux à utiliser pour l’authentification avec la source. |
Pour l’authentification HTTPS, vous créez un secret avec :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>
Pour l'authentification SSH, vous créez un secret avec les champs identity
et 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
Important
Azure DevOps annoncé la dépréciation du SSH-RSA comme méthode de chiffrement prise en charge pour la connexion aux référentiels Azure à l’aide de SSH. Si vous utilisez des clés SSH pour vous connecter aux référentiels Azure dans les configurations flux, nous vous recommandons de passer à des clés RSA-SHA2-256 ou RSA-SHA2-512 plus sécurisées. Pour plus d’informations, consultez dépréciation d’Azure DevOps SSH-RSA.
Dans les deux cas, lorsque vous créez la configuration flux, utilisez --local-auth-ref my-custom-secret
à la place des autres paramètres d’authentification :
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
En savoir plus sur l’utilisation d’un secret Kubernetes local avec ces méthodes d’authentification :
- Authentification HTTPS du référentiel Git
- Certificats auto-signés HTTPS du référentiel Git
- Authentification SSH du référentiel Git
- Authentification statique de compartiment
Remarque
Si vous avez besoin de Flux pour accéder à la source via votre proxy, vous devez mettre à jour les agents Azure Arc avec les paramètres du proxy. Pour plus d’informations, consultez Se connecter à l’aide d’un serveur proxy sortant.
L'implémentation Git
Pour prendre en charge différents fournisseurs de référentiels qui implémentent Git, Flux peut être configuré pour utiliser l’une des deux bibliothèques Git : go-git
ou libgit2
. Pour plus d’informations, consultez la documentation Flux.
L’implémentation GitOps de Flux v2 détermine automatiquement la bibliothèque à utiliser pour les dépôts de cloud public :
- Pour les dépôts GitHub, GitLab et BitBucket, Flux utilise
go-git
. - Pour Azure DevOps et tous les autres référentiels, Flux utilise
libgit2
.
Pour les dépôts locaux, Flux utilise libgit2
.
Kustomization
Kustomization est un paramètre créé pour les configurations Flux qui vous permet de choisir un chemin spécifique dans le référentiel source, qui est réconcilié dans le cluster. Vous n’avez pas besoin de créer un fichier « kustomization.yaml sur ce chemin spécifié. Par défaut, tous les manifestes de ce chemin sont rapprochés. Toutefois, si vous souhaitez avoir une superposition Kustomize pour les applications disponibles sur ce chemin de dépôt, vous devez créer des fichiers Kustomize dans Git pour que la configuration Flux les utilise.
En utilisant az k8s-configuration flux kustomization create
, vous pouvez créer une ou plusieurs personnalisations pendant la configuration.
Paramètre | Format | Remarques |
---|---|---|
--kustomization |
Aucune valeur | Début d’une chaîne de paramètres qui configurent une kustomization. Vous pouvez l’utiliser plusieurs fois pour créer plusieurs kustomizations. |
name |
Chaîne | Nom unique pour cette kustomisation. |
path |
Chaîne | Chemin dans le dépôt Git à rapprocher avec le cluster. La valeur par défaut est le niveau supérieur de la branche. |
prune |
Booléen | La valeur par défaut est false . Définissez prune=true pour vous assurer que les objets déployés par Flux sur le cluster sont nettoyés s’ils sont supprimés du référentiel ou si la configuration de Flux ou les kustomizations sont supprimés. L’utilisation prune=true est importante pour les environnements où les utilisateurs n’ont pas accès aux clusters et peuvent apporter des modifications uniquement via le référentiel Git. |
depends_on |
Chaîne | Nom d’une ou plusieurs kustomisations (dans cette configuration) qui doivent se rapprocher avant que cette kustomisation puisse se rapprocher. Par exemple : depends_on=["kustomization1","kustomization2"] . Si vous supprimez une kustomisation qui a des kustomisations dépendantes, l’état des kustomisations dépendantes devient DependencyNotReady et la réconciliation s’arrête. |
timeout |
Format de la durée golang | Par défaut : 10m . |
sync_interval |
Format de la durée golang | Par défaut : 10m . |
retry_interval |
Format de la durée golang | Par défaut : 10m . |
validation |
Chaîne | Valeurs : none , client , server . Par défaut : none . Consultez la documentation Flux pour plus de détails. |
force |
Booléen | Par défaut : false . Définissez force=true pour indiquer au contrôleur kustomize de recréer des ressources en cas d’échec de la mise à jour corrective en raison d’une modification de champ immuable. |
Vous pouvez également utiliser az k8s-configuration flux kustomization
pour mettre à jour, répertorier, afficher et supprimer des kustomizations dans une configuration flux.
Étapes suivantes
- En savoir plus sur les déploiements d’applications avec GitOps (Flux v2) pour AKS et Kubernetes avec Azure Arc.
- Utilisez notre tutoriel pour découvrir comment activer GitOps sur vos clusters Kubernetes AKS ou Azure Arc.
- Découvrez Workflow CI/CD avec GitOps.