Ondersteunde parameters voor GitOps (Flux v2)
Azure biedt een mogelijkheid voor geautomatiseerde toepassingsimplementaties met Behulp van GitOps die werkt met Azure Kubernetes Service (AKS) en Kubernetes-clusters met Azure Arc. Met GitOps met Flux v2 kunt u uw Git-opslagplaats gebruiken als de bron van waarheid voor clusterconfiguratie en toepassingsimplementatie. Zie Toepassingsimplementaties met GitOps (Flux v2) en Zelfstudie: Toepassingen implementeren met GitOps met Flux v2 voor meer informatie.
GitOps in Kubernetes met Azure Arc of Azure Kubernetes Service maakt gebruik van Flux, een populaire opensource-hulpprogrammaset die veel parameters ondersteunt om verschillende scenario's mogelijk te maken. Zie de officiële Flux-documentatie voor een beschrijving van alle parameters die Door Flux worden ondersteund.
Raadpleeg de az k8s-configuration
documentatie voor alle parameters die worden ondersteund door Flux in Azure. Deze implementatie biedt momenteel geen ondersteuning voor elke parameter die Flux ondersteunt. Laat ons weten of een parameter die u nodig hebt ontbreekt in de Azure-implementatie.
In dit artikel worden enkele parameters en argumenten beschreven die beschikbaar zijn voor de az k8s-configuration flux create
opdracht. U kunt ook de volledige lijst met parameters voor de az k8s-configuration flux
parameter bekijken met behulp van de -h
parameter in Azure CLI (bijvoorbeeld az k8s-configuration flux -h
of az k8s-configuration flux create -h
).
Tip
Een tijdelijke oplossing voor het implementeren van Flux-resources met niet-ondersteunde parameters is het definiëren van de vereiste aangepaste Flux-resources (zoals GitRepository of Kustomization) in uw Git-opslagplaats. Implementeer deze resources met de az k8s-configuration flux create
opdracht. Vervolgens hebt u nog steeds toegang tot uw Flux-resources via de Azure Arc-gebruikersinterface.
Algemene configuratieargumenten
Parameter | Format | Opmerkingen |
---|---|---|
--cluster-name -c |
String | Naam van de clusterresource in Azure. |
--cluster-type -t |
Toegestane waarden: connectedClusters , managedClusters |
Gebruiken connectedClusters voor Kubernetes-clusters met Azure Arc of managedClusters voor AKS-clusters. |
--resource-group -g |
String | Naam van de Azure-resourcegroep die de clusterresource bevat. |
--name -n |
String | Naam van de Flux-configuratie in Azure. |
--namespace --ns |
String | Naam van de naamruimte om de configuratie te implementeren. Standaard: default . |
--scope -s |
String | Machtigingsbereik voor de operators. Mogelijke waarden zijn cluster (volledige toegang) of namespace (beperkte toegang). Standaard: cluster . |
--suspend |
flag | Alle bron- en kustomize-afstemmingen die in deze Flux-configuratie zijn gedefinieerd, worden onderbroken. Afstemmingen die actief zijn op het moment van schorsing, zullen doorgaan. |
Algemene bronargumenten
Parameter | Format | Opmerkingen |
---|---|---|
--kind |
String | Brontype om af te stemmen. Toegestane waarden: bucket , git , azblob . Standaard: git . |
--timeout |
golang-duurnotatie | Maximale tijd om de bron af te stemmen voordat er een time-out optreedt. Standaard: 10m . |
--sync-interval --interval |
golang-duurnotatie | Tijd tussen afstemmingen van de bron op het cluster. Standaard: 10m . |
Referentieargumenten voor Git-opslagplaats
Parameter | Format | Opmerkingen |
---|---|---|
--branch |
String | Vertakking binnen de Git-bron om te synchroniseren met het cluster. Standaard: master . Nieuwere opslagplaatsen hebben mogelijk een hoofdbranch met de naam main , in welk geval u moet instellen --branch=main . |
--tag |
String | Tag binnen de Git-bron om te synchroniseren met het cluster. Voorbeeld: --tag=3.2.0 . |
--semver |
String | Git-tagbereik semver binnen de Git-bron om te synchroniseren met het cluster. Voorbeeld: --semver=">=3.1.0-rc.1 <3.2.0" . |
--commit |
String | Git commit SHA in de Git-bron om te synchroniseren met het cluster. Voorbeeld: --commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a . |
Zie de Flux-documentatie over het uitchecken van Git-opslagplaatsen voor meer informatie.
Openbare Git-opslagplaats
Parameter | Format | Opmerkingen |
---|---|---|
--url -u |
http[s]://server/repo[.git] |
URL van de Bron van de Git-opslagplaats om het cluster af te stemmen. |
Persoonlijke Git-opslagplaats met SSH
Belangrijk
Azure DevOps heeft de afschaffing van SSH-RSA aangekondigd als een ondersteunde versleutelingsmethode voor het maken van verbinding met Azure-opslagplaatsen met behulp van SSH. Als u SSH-sleutels gebruikt om verbinding te maken met Azure-opslagplaatsen in Flux-configuraties, raden we u aan om over te stappen op veiligere RSA-SHA2-256- of RSA-SHA2-512-sleutels. Zie afschaffing van Azure DevOps SSH-RSA voor meer informatie.
Persoonlijke Git-opslagplaats met door SSH en Flux gemaakte sleutels
Voeg de openbare sleutel die door Flux wordt gegenereerd toe aan het gebruikersaccount in uw Git-serviceprovider.
Parameter | Format | Opmerkingen |
---|---|---|
--url -u |
ssh://user@server/repo[.git] |
git@ moet worden vervangen user@ als de openbare sleutel is gekoppeld aan de opslagplaats in plaats van het gebruikersaccount. |
Persoonlijke Git-opslagplaats met SSH- en door de gebruiker geleverde sleutels
Gebruik uw eigen persoonlijke sleutel rechtstreeks of vanuit een bestand. De sleutel moet de PEM-indeling hebben en eindigen met een nieuwe regel (\n
).
Voeg de bijbehorende openbare sleutel toe aan het gebruikersaccount in uw Git-serviceprovider.
Parameter | Format | Opmerkingen |
---|---|---|
--url -u |
ssh://user@server/repo[.git] | git@ moet worden vervangen user@ als de openbare sleutel is gekoppeld aan de opslagplaats in plaats van het gebruikersaccount. |
--ssh-private-key |
Base64-sleutel in PEM-indeling | Geef de sleutel rechtstreeks op. |
--ssh-private-key-file |
Volledig pad naar lokaal bestand | Geef het volledige pad op naar het lokale bestand dat de PEM-indelingssleutel bevat. |
Privé-Git-host met SSH en door de gebruiker verstrekte bekende hosts
De Flux-operator onderhoudt een lijst met algemene Git-hosts in het known_hosts
bestand. Flux gebruikt deze informatie om de Git-opslagplaats te verifiëren voordat de SSH-verbinding tot stand wordt gebracht. Als u een ongebruikelijke Git-opslagplaats of uw eigen Git-host gebruikt, kunt u de hostsleutel opgeven zodat Flux uw opslagplaats kan identificeren.
Net als bij privésleutels kunt u uw known_hosts
-inhoud rechtstreeks of in een bestand opgeven. Wanneer u uw eigen inhoud oplevert, gebruikt u de specificaties van de known_hosts inhoudsindeling, samen met een van de voorgaande SSH-sleutelscenario's.
Parameter | Format | Opmerkingen |
---|---|---|
--url -u |
ssh://user@server/repo[.git] | git@ kan vervangen user@ . |
--known-hosts |
Base64-tekenreeks | Geef known_hosts rechtstreeks inhoud op. |
--known-hosts-file |
Volledig pad naar lokaal bestand | Geef known_hosts inhoud op in een lokaal bestand. |
Persoonlijke Git-opslagplaats met een HTTPS-gebruiker en -sleutel
Parameter | Format | Opmerkingen |
---|---|---|
--url -u |
https://server/repo[.git] |
HTTPS met basisverificatie. |
--https-user |
Onbewerkte tekenreeks | HTTPS-gebruikersnaam. |
--https-key |
Onbewerkte tekenreeks | Persoonlijk HTTPS-toegangstoken of -wachtwoord. |
Persoonlijke Git-opslagplaats met een HTTPS-CA-certificaat
Parameter | Format | Opmerkingen |
---|---|---|
--url -u |
https://server/repo[.git] |
HTTPS met basisverificatie. |
--https-ca-cert |
Base64-tekenreeks | CA-certificaat voor TLS-communicatie. |
--https-ca-cert-file |
Volledig pad naar lokaal bestand | Ca-certificaatinhoud opgeven in een lokaal bestand. |
Bucket-bronargumenten
Als u bron gebruikt bucket
, zijn dit de bucketspecifieke opdrachtargumenten.
Parameter | Format | Opmerkingen |
---|---|---|
--url -u |
URL-tekenreeks | De URL voor de bucket . Ondersteunde indelingen: http:// , https:// . |
--bucket-name |
String | Naam van de bucket te synchroniseren. |
--bucket-access-key |
String | Toegangssleutel-id die wordt gebruikt voor verificatie met de bucket . |
--bucket-secret-key |
String | Geheime sleutel die wordt gebruikt voor verificatie met de bucket . |
--bucket-insecure |
Booleaanse waarde | Communiceren met een bucket zonder TLS. Indien niet opgegeven, wordt ervan uitgegaan dat deze onwaar is; indien opgegeven, wordt ervan uitgegaan dat waar. |
Bronargumenten voor Azure Blob Storage-account
Als u bron gebruikt azblob
, zijn dit de blobspecifieke opdrachtargumenten.
Parameter | Format | Opmerkingen |
---|---|---|
--url -u |
URL-tekenreeks | De URL voor de azblob . |
--container-name |
String | Naam van de Azure Blob Storage-container die moet worden gesynchroniseerd |
--sp_client_id |
String | De client-id voor het verifiëren van een service-principal met Azure Blob, vereist voor deze verificatiemethode |
--sp_tenant_id |
String | De tenant-id voor het verifiëren van een service-principal met Azure Blob, vereist voor deze verificatiemethode |
--sp_client_secret |
String | Het clientgeheim voor het verifiëren van een service-principal met Azure Blob |
--sp_client_cert |
String | Het met Base64 gecodeerde clientcertificaat voor het verifiëren van een service-principal met Azure Blob |
--sp_client_cert_password |
String | Het wachtwoord voor het clientcertificaat dat wordt gebruikt voor het verifiëren van een service-principal met Azure Blob |
--sp_client_cert_send_chain |
String | Hiermee geeft u op of x5c-header moet worden opgenomen in clientclaims bij het verkrijgen van een token om verificatie op basis van onderwerpnaam/verlener in te schakelen voor het clientcertificaat |
--account_key |
String | De gedeelde Azure Blob-sleutel voor verificatie |
--sas_token |
String | Het SAS-token voor Azure Blob voor verificatie |
--managed-identity-client-id |
String | De client-id van de beheerde identiteit voor verificatie met Azure Blob |
Belangrijk
Wanneer u verificatie van beheerde identiteiten gebruikt voor AKS-clusters en azblob
-bron, moet de beheerde identiteit minimaal de rol Opslagblobgegevenslezer worden toegewezen. Verificatie met een beheerde identiteit is nog niet beschikbaar voor Kubernetes-clusters met Azure Arc.
Lokaal geheim voor verificatie met bron
U kunt een lokaal Kubernetes-geheim gebruiken voor verificatie met een git
of azBlob
bucket
bron. Het lokale geheim moet alle verificatieparameters bevatten die nodig zijn voor de bron en moeten worden gemaakt in dezelfde naamruimte als de Flux-configuratie.
Parameter | Format | Opmerkingen |
---|---|---|
--local-auth-ref --local-ref |
String | Lokale verwijzing naar een Kubernetes-geheim in de Flux-configuratienaamruimte die moet worden gebruikt voor verificatie met de bron. |
Voor HTTPS-verificatie maakt u een geheim met de username
en 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>
Voor SSH-verificatie maakt u een geheim met de identity
en known_hosts
velden:
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
Belangrijk
Azure DevOps heeft de afschaffing van SSH-RSA aangekondigd als een ondersteunde versleutelingsmethode voor het maken van verbinding met Azure-opslagplaatsen met behulp van SSH. Als u SSH-sleutels gebruikt om verbinding te maken met Azure-opslagplaatsen in Flux-configuraties, raden we u aan om over te stappen op veiligere RSA-SHA2-256- of RSA-SHA2-512-sleutels. Zie afschaffing van Azure DevOps SSH-RSA voor meer informatie.
Gebruik voor beide gevallen wanneer u de Flux-configuratie maakt in --local-auth-ref my-custom-secret
plaats van de andere verificatieparameters:
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
Meer informatie over het gebruik van een lokaal Kubernetes-geheim met deze verificatiemethoden:
- HTTPS-verificatie voor Git-opslagplaats
- Zelfondertekende HTTPS-opslagplaatscertificaten in Git-opslagplaats
- SSH-verificatie voor Git-opslagplaats
- Statische bucketverificatie
Notitie
Als u Flux nodig hebt voor toegang tot de bron via uw proxy, moet u de Azure Arc-agents bijwerken met de proxy-instellingen. Zie Verbinding maken met een uitgaande proxyserver voor meer informatie.
Git-implementatie
Om verschillende opslagplaatsproviders te ondersteunen die Git implementeren, kan Flux worden geconfigureerd voor het gebruik van een van de twee Git-bibliotheken: go-git
of libgit2
. Zie de Flux-documentatie voor meer informatie.
De GitOps-implementatie van Flux v2 bepaalt automatisch welke bibliotheek moet worden gebruikt voor openbare cloudopslagplaatsen:
- Voor GitHub-, GitLab- en BitBucket-opslagplaatsen gebruikt
go-git
Flux . - Voor Azure DevOps en alle andere opslagplaatsen gebruikt
libgit2
Flux .
Voor on-premises opslagplaatsen gebruikt libgit2
Flux .
Kustomisatie
Kustomization is een instelling die is gemaakt voor Flux-configuraties waarmee u een specifiek pad kunt kiezen in de bronopslagplaats die is afgestemd op het cluster. U hoeft geen kustomization.yaml-bestand te maken op dit opgegeven pad. Standaard worden alle manifesten in dit pad op elkaar afgestemd. Als u echter een Kustomize-overlay wilt hebben voor toepassingen die beschikbaar zijn op dit opslagplaatspad, moet u Kustomize-bestanden maken in Git voor de Flux-configuratie om gebruik te maken van.
Met behulp van az k8s-configuration flux kustomization create
kunt u een of meer kustomisaties maken tijdens de configuratie.
Parameter | Format | Opmerkingen |
---|---|---|
--kustomization |
Geen waarde | Begin van een tekenreeks met parameters waarmee een kustomisatie wordt geconfigureerd. U kunt het meerdere keren gebruiken om meerdere kustomisaties te maken. |
name |
String | Unieke naam voor deze kustomisatie. |
path |
String | Pad in de Git-opslagplaats om het cluster af te stemmen. De standaardwaarde is het hoogste niveau van de vertakking. |
prune |
Booleaanse waarde | Standaard is false . Ingesteld prune=true om ervoor te zorgen dat de objecten die Flux in het cluster hebben geïmplementeerd, worden opgeschoond als ze uit de opslagplaats worden verwijderd of als de Flux-configuratie of kustomisaties worden verwijderd. Het gebruik prune=true is belangrijk voor omgevingen waar gebruikers geen toegang hebben tot de clusters en alleen wijzigingen kunnen aanbrengen via de Git-opslagplaats. |
depends_on |
String | Naam van een of meer kustomisaties (binnen deze configuratie) die moeten worden afgestemd voordat deze kustomisatie kan worden afgestemd. Voorbeeld: depends_on=["kustomization1","kustomization2"] . Als u een kustomisatie verwijdert die afhankelijke kustomisaties bevat, wordt de status van afhankelijke kustomisaties gewijzigd DependencyNotReady en stopt de afstemming. |
timeout |
golang-duurnotatie | Standaard: 10m . |
sync_interval |
golang-duurnotatie | Standaard: 10m . |
retry_interval |
golang-duurnotatie | Standaard: 10m . |
validation |
String | Waarden: none , client , server . Standaard: none . Zie de Flux-documentatie voor meer informatie. |
force |
Booleaanse waarde | Standaard: false . Ingesteld force=true om de kustomize-controller opdracht te geven om resources opnieuw te maken wanneer patches mislukken vanwege een onveranderbare veldwijziging. |
U kunt ook kustomisaties az k8s-configuration flux kustomization
bijwerken, weergeven en verwijderen in een Flux-configuratie.
Volgende stappen
- Meer informatie over toepassingsimplementaties met GitOps (Flux v2) voor AKS en Kubernetes met Azure Arc.
- Gebruik onze zelfstudie voor meer informatie over het inschakelen van GitOps op uw AKS- of Kubernetes-clusters met Azure Arc.
- Meer informatie over CI/CD-werkstroom met behulp van GitOps.