Delen via


Ondersteunde parameters voor GitOps (Flux v2)

Azure biedt een mogelijkheid tot geautomatiseerde applicatie-implementaties met behulp van GitOps, die samenwerkt met Azure Kubernetes Service (AKS) en met Azure Arc-geactiveerde Kubernetes-clusters. 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).

Hint

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

Maatstaf Formaat Opmerkingen
--cluster-name -c Touwtje 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 Touwtje Naam van de Azure-resourcegroep die de clusterresource bevat.
--name -n Touwtje Naam van de Flux-configuratie in Azure.
--namespace --ns Touwtje Naam van de naamruimte om de configuratie te implementeren. Standaard: default.
--scope -s Touwtje Machtigingsbereik voor de operators. Mogelijke waarden zijn cluster (volledige toegang) of namespace (beperkte toegang). Standaard: cluster.
--suspend vlag 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

Maatstaf Formaat Opmerkingen
--kind Touwtje Brontype om te verzoenen. 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 synchronisaties van de bron op het cluster. Standaard: 10m.

Referentieargumenten voor Git-repository-bron

Maatstaf Formaat Opmerkingen
--branch Touwtje 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 Touwtje Tag binnen de Git-bron om te synchroniseren met het cluster. Voorbeeld: --tag=3.2.0.
--semver Touwtje Git-tagbereik semver binnen de Git-bron om te synchroniseren met het cluster. Voorbeeld: --semver=">=3.1.0-rc.1 <3.2.0".
--commit Touwtje Git commit SHA in de Git-bron om te synchroniseren met het cluster. Voorbeeld: --commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a.

Voor meer informatie, zie de Flux-documentatie over strategieën voor het uitchecken van Git-opslagplaatsen.

Openbare Git-opslagplaats

Maatstaf Formaat Opmerkingen
--url -u http[s]://server/repo[.git] URL van de Git-repository om met 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 De 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.

Maatstaf Formaat 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.

Maatstaf Formaat 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 je je eigen inhoud aanlevert, gebruik je de specificaties van de known_hosts-indeling, samen met een van de eerdere SSH-sleutelscenario's.

Maatstaf Formaat 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

Maatstaf Formaat 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

Maatstaf Formaat 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.

Maatstaf Formaat Opmerkingen
--url -u URL-tekenreeks De URL voor de bucket. Ondersteunde indelingen: http://, https://.
--bucket-name Touwtje Naam van de bucket om te synchroniseren.
--bucket-access-key Touwtje Sleutel-ID voor toegang die wordt gebruikt voor authenticatie met de bucket.
--bucket-secret-key Touwtje Geheime sleutel die wordt gebruikt voor verificatie met de bucket.
--bucket-insecure Booleaan 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.

Maatstaf Formaat Opmerkingen
--url -u URL-tekenreeks De URL voor de azblob.
--container-name Touwtje Naam van de Azure Blob Storage-container die moet worden gesynchroniseerd
--sp_client_id Touwtje De client-id voor het verifiëren van een service-principal met Azure Blob, vereist voor deze verificatiemethode
--sp_tenant_id Touwtje De tenant-id voor het verifiëren van een service-principal met Azure Blob, vereist voor deze verificatiemethode
--sp_client_secret Touwtje Het clientgeheim voor het verifiëren van een service-principal met Azure Blob
--sp_client_cert Touwtje Het met Base64 gecodeerde clientcertificaat voor het verifiëren van een service-principal met Azure Blob
--sp_client_cert_password Touwtje Het wachtwoord voor het clientcertificaat dat wordt gebruikt voor het verifiëren van een service-principal met Azure Blob
--sp_client_cert_send_chain Touwtje Hiermee geeft u op of de x5c-header moet worden opgenomen in de clientclaims bij het aanvragen van een token om verificatie op basis van onderwerpnaam/verstrekker in te schakelen voor het clientcertificaat
--account_key Touwtje De gedeelde Azure Blob-sleutel voor verificatie
--sas_token Touwtje Het SAS-token voor Azure Blob voor verificatie
--managed-identity-client-id Touwtje 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 bucketazBlob 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.

Maatstaf Formaat Opmerkingen
--local-auth-ref --local-ref Touwtje 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 De afschaffing van Azure DevOps SSH-RSA voor meer informatie.

Gebruik in beide gevallen, wanneer u de Flux-configuratie maakt, --local-auth-ref my-custom-secret in plaats van de andere authenticatieparameters.

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 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 Flux go-git.
  • Voor Azure DevOps en alle andere opslagplaatsen gebruikt Flux libgit2.

Voor lokale repositories gebruikt Flux libgit2.

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.

Maatstaf Formaat 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 Touwtje Unieke naam voor deze kustomisatie.
path Touwtje Pad binnen de Git-opslagplaats om overeen te stemmen met het cluster. De standaardwaarde is het hoogste niveau van de vertakking.
prune Booleaan De standaardwaarde 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 Touwtje 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 Touwtje Waarden: none, client, server. Standaard: none. Zie de Flux-documentatie voor meer informatie.
force Booleaan 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 az k8s-configuration flux kustomization gebruiken om kustomisaties bij te werken, op te sommen, weer te geven en te verwijderen in een Flux-configuratie.

Volgende stappen