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 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 gitof azBlobbucket 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

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:

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 een uitgaande proxyserver gebruiken 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-gitFlux .
  • Voor Azure DevOps en alle andere opslagplaatsen gebruikt libgit2Flux .

Voor on-premises opslagplaatsen gebruikt libgit2Flux .

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 createkunt 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 DependencyNotReadyen 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