Dela via


Parametrar som stöds av GitOps (Flux v2)

Azure tillhandahåller en funktion för automatiserad programdistribution med GitOps som fungerar med Azure Kubernetes Service (AKS) och Azure Arc-aktiverade Kubernetes-kluster. Med GitOps med Flux v2 kan du använda din Git-lagringsplats som sanningskälla för klusterkonfiguration och programdistribution. Mer information finns i Programdistributioner med GitOps (Flux v2) och Självstudie: Distribuera program med GitOps med Flux v2.

GitOps på Azure Arc-aktiverade Kubernetes eller Azure Kubernetes Service använder Flux, en populär verktygsuppsättning med öppen källkod som stöder många parametrar för att aktivera olika scenarier. En beskrivning av alla parametrar som Flux stöder finns i den officiella Flux-dokumentationen.

Information om hur du ser alla parametrar som stöds av Flux i Azure finns i dokumentationenaz k8s-configuration. Den här implementeringen stöder för närvarande inte alla parametrar som Flux stöder. Meddela oss om en parameter som du behöver saknas i Azure-implementeringen.

I den az k8s-configuration flux create här artikeln beskrivs några av de parametrar och argument som är tillgängliga för kommandot. Du kan också se den fullständiga listan med parametrar för az k8s-configuration flux med hjälp av parametern -h i Azure CLI (till exempel az k8s-configuration flux -h eller az k8s-configuration flux create -h).

Dricks

En lösning för att distribuera Flux-resurser med parametrar som inte stöds är att definiera nödvändiga Flux-anpassade resurser (till exempel GitRepository eller Kustomization) i git-lagringsplatsen. Distribuera dessa resurser med az k8s-configuration flux create kommandot . Sedan kommer du fortfarande att kunna komma åt dina Flux-resurser via Azure Arc-användargränssnittet.

Allmänna konfigurationsargument

Parameter Format Anteckningar
--cluster-name -c String Namnet på klusterresursen i Azure.
--cluster-type -t Tillåtna värden: connectedClusters, managedClusters Används connectedClusters för Azure Arc-aktiverade Kubernetes-kluster eller managedClusters för AKS-kluster.
--resource-group -g String Namnet på den Azure-resursgrupp som innehåller klusterresursen.
--name -n String Namn på Flux-konfigurationen i Azure.
--namespace --ns String Namnet på namnområdet för att distribuera konfigurationen. Standard: default.
--scope -s String Behörighetsomfång för operatorerna. Möjliga värden är cluster (fullständig åtkomst) eller namespace (begränsad åtkomst). Standard: cluster.
--suspend flag Pausar alla käll- och kustomize-avstämningar som definierats i den här Flux-konfigurationen. Avstämningar som är aktiva vid tidpunkten för avstängningen fortsätter.

Allmänna källargument

Parameter Format Anteckningar
--kind String Källtyp att stämma av. Tillåtna värden: bucket, git, azblob. Standard: git.
--timeout golang-varaktighetsformat Maximal tid för att försöka stämma av källan innan tidsgränsen nås. Standard: 10m.
--sync-interval --interval golang-varaktighetsformat Tid mellan avstämningar av källan i klustret. Standard: 10m.

Källreferensargument för Git-lagringsplats

Parameter Format Anteckningar
--branch String Förgrena i Git-källan för synkronisering till klustret. Standard: master. Nyare lagringsplatser kan ha en rotgren med namnet main, i vilket fall du behöver ange --branch=main.
--tag String Tagga i Git-källan för att synkronisera med klustret. Exempel: --tag=3.2.0.
--semver String Git-taggintervall semver i Git-källan för synkronisering till klustret. Exempel: --semver=">=3.1.0-rc.1 <3.2.0".
--commit String Git commit SHA i Git-källan för synkronisering till klustret. Exempel: --commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a.

Mer information finns i Flux-dokumentationen om strategier för utcheckning av Git-lagringsplats.

Offentlig Git-lagringsplats

Parameter Format Anteckningar
--url -u http[s]://server/repo[.git] URL för Git-lagringsplatsens källa som ska stämmas av med klustret.

Privat Git-lagringsplats med SSH

Viktigt!

Azure DevOps tillkännagav utfasningen av SSH-RSA som en krypteringsmetod som stöds för att ansluta till Azure-lagringsplatser med hjälp av SSH. Om du använder SSH-nycklar för att ansluta till Azure-lagringsplatser i Flux-konfigurationer rekommenderar vi att du flyttar till säkrare RSA-SHA2-256- eller RSA-SHA2-512-nycklar. Mer information finns i Utfasning av Azure DevOps SSH-RSA.

Privat Git-lagringsplats med SSH- och Flux-skapade nycklar

Lägg till den offentliga nyckel som genereras av Flux till användarkontot i din Git-tjänstleverantör.

Parameter Format Anteckningar
--url -u ssh://user@server/repo[.git] git@ bör ersätta user@ om den offentliga nyckeln är associerad med lagringsplatsen i stället för användarkontot.

Privat Git-lagringsplats med SSH och användarbaserade nycklar

Använd din egen privata nyckel direkt eller från en fil. Nyckeln måste vara i PEM-format och avslutas med en ny rad (\n).

Lägg till den associerade offentliga nyckeln till användarkontot i din Git-tjänstleverantör.

Parameter Format Anteckningar
--url -u ssh://user@server/repo[.git] git@ bör ersätta user@ om den offentliga nyckeln är associerad med lagringsplatsen i stället för användarkontot.
--ssh-private-key Base64-nyckel i PEM-format Ange nyckeln direkt.
--ssh-private-key-file Fullständig sökväg till lokal fil Ange den fullständiga sökvägen till den lokala filen som innehåller PEM-formatnyckeln.

Privat Git-värd med SSH och kända värdar som tillhandahålls av användaren

Flux-operatorn har en lista över vanliga Git-värdar i filen known_hosts . Flux använder den här informationen för att autentisera Git-lagringsplatsen innan SSH-anslutningen upprättas. Om du använder en ovanlig Git-lagringsplats eller en egen Git-värd kan du ange värdnyckeln så att Flux kan identifiera din lagringsplats.

Precis som med privata nycklar kan du ange ditt known_hosts-innehåll direkt eller i en fil. När du tillhandahåller ditt eget innehåll använder du specifikationerna för known_hosts innehållsformat, tillsammans med något av de föregående SSH-nyckelscenarierna.

Parameter Format Anteckningar
--url -u ssh://user@server/repo[.git] git@ kan ersätta user@.
--known-hosts Base64-sträng Ange known_hosts innehåll direkt.
--known-hosts-file Fullständig sökväg till lokal fil Ange known_hosts innehåll i en lokal fil.

Privat Git-lagringsplats med en HTTPS-användare och nyckel

Parameter Format Anteckningar
--url -u https://server/repo[.git] HTTPS med grundläggande autentisering.
--https-user Råsträng HTTPS-användarnamn.
--https-key Råsträng PERSONLIG HTTPS-åtkomsttoken eller lösenord.

Privat Git-lagringsplats med ett HTTPS CA-certifikat

Parameter Format Anteckningar
--url -u https://server/repo[.git] HTTPS med grundläggande autentisering.
--https-ca-cert Base64-sträng CA-certifikat för TLS-kommunikation.
--https-ca-cert-file Fullständig sökväg till lokal fil Ange CA-certifikatinnehåll i en lokal fil.

Argument för bucketkälla

Om du använder bucket källan, här är de bucketspecifika kommandoargumenten.

Parameter Format Anteckningar
--url -u URL-sträng URL:en för bucket. Format som stöds: http://, https://.
--bucket-name String Namnet på synkroniseringen bucket .
--bucket-access-key String Åtkomstnyckel-ID som används för att autentisera bucketmed .
--bucket-secret-key String Hemlig nyckel som används för att autentisera bucketmed .
--bucket-insecure Booleskt Kommunicera med en bucket utan TLS. Om inte anges, antas falskt; om det tillhandahålls, antas sant.

Källargument för Azure Blob Storage-konto

Om du använder azblob källan, här är de blobspecifika kommandoargumenten.

Parameter Format Anteckningar
--url -u URL-sträng URL:en för azblob.
--container-name String Namnet på den Azure Blob Storage-container som ska synkroniseras
--sp_client_id String Klient-ID:t för autentisering av tjänstens huvudnamn med Azure Blob krävs för den här autentiseringsmetoden
--sp_tenant_id String Klientorganisations-ID:t för autentisering av tjänstens huvudnamn med Azure Blob krävs för den här autentiseringsmetoden
--sp_client_secret String Klienthemligheten för att autentisera ett huvudnamn för tjänsten med Azure Blob
--sp_client_cert String Base64-kodat klientcertifikat för autentisering av tjänstens huvudnamn med Azure Blob
--sp_client_cert_password String Lösenordet för klientcertifikatet som används för att autentisera ett huvudnamn för tjänsten med Azure Blob
--sp_client_cert_send_chain String Anger om x5c-huvudet ska inkluderas i klientanspråk när en token hämtas för att aktivera ämnesnamn/utfärdarbaserad autentisering för klientcertifikatet
--account_key String Den delade Azure Blob-nyckeln för autentisering
--sas_token String Azure Blob SAS-token för autentisering
--managed-identity-client-id String Klient-ID för den hanterade identiteten för autentisering med Azure Blob

Viktigt!

När du använder hanterad identitetsautentisering för AKS-kluster och azblob -källa måste den hanterade identiteten tilldelas minst rollen Storage Blob Data Reader . Autentisering med en hanterad identitet är ännu inte tillgänglig för Azure Arc-aktiverade Kubernetes-kluster.

Lokal hemlighet för autentisering med källa

Du kan använda en lokal Kubernetes-hemlighet för autentisering med en git, bucket eller azBlob källa. Den lokala hemligheten måste innehålla alla autentiseringsparametrar som behövs för källan och måste skapas i samma namnområde som Flux-konfigurationen.

Parameter Format Anteckningar
--local-auth-ref --local-ref String Lokal referens till en Kubernetes-hemlighet i namnområdet fluxkonfiguration som ska användas för autentisering med källan.

För HTTPS-autentisering skapar du en hemlighet med username och 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>

För SSH-autentisering skapar du en hemlighet med fälten identity och 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

Viktigt!

Azure DevOps tillkännagav utfasningen av SSH-RSA som en krypteringsmetod som stöds för att ansluta till Azure-lagringsplatser med hjälp av SSH. Om du använder SSH-nycklar för att ansluta till Azure-lagringsplatser i Flux-konfigurationer rekommenderar vi att du flyttar till säkrare RSA-SHA2-256- eller RSA-SHA2-512-nycklar. Mer information finns i Utfasning av Azure DevOps SSH-RSA.

När du skapar Flux-konfigurationen i båda fallen använder --local-auth-ref my-custom-secret du i stället för de andra autentiseringsparametrarna:

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

Läs mer om hur du använder en lokal Kubernetes-hemlighet med dessa autentiseringsmetoder:

Kommentar

Om du behöver Flux för att komma åt källan via proxyn måste du uppdatera Azure Arc-agenterna med proxyinställningarna. Mer information finns i Ansluta med en utgående proxyserver.

Git-implementering

För att stödja olika lagringsplatsprovidrar som implementerar Git kan Flux konfigureras att använda ett av två Git-bibliotek: go-git eller libgit2. Mer information finns i Flux-dokumentationen.

GitOps-implementeringen av Flux v2 avgör automatiskt vilket bibliotek som ska användas för offentliga molnlagringsplatser:

  • För GitHub-, GitLab- och BitBucket-lagringsplatser använder go-gitFlux .
  • För Azure DevOps och alla andra lagringsplatser använder libgit2Flux .

För lokala lagringsplatser använder libgit2Flux .

Kustomisering

Kustomization är en inställning som skapats för Flux-konfigurationer som gör att du kan välja en specifik sökväg i källdatabasen som är avstämd i klustret. Du behöver inte skapa en kustomization.yaml-fil på den angivna sökvägen. Som standard är alla manifest i den här sökvägen avstämda. Men om du vill ha ett Kustomize-överlägg för program som är tillgängliga på den här lagringsplatsens sökväg bör du skapa Kustomize-filer i git för Flux-konfigurationen att använda.

Med hjälp az k8s-configuration flux kustomization createav kan du skapa en eller flera kustomizations under konfigurationen.

Parameter Format Anteckningar
--kustomization Inget värde Start av en sträng med parametrar som konfigurerar en kustomisering. Du kan använda den flera gånger för att skapa flera kustomizations.
name String Unikt namn för den här kustomiseringen.
path String Sökväg i Git-lagringsplatsen för att stämma av med klustret. Standardvärdet är den översta nivån för grenen.
prune Booleskt Standard är false. Ange prune=true för att säkerställa att de objekt som Flux distribuerade till klustret rensas om de tas bort från lagringsplatsen eller om Flux-konfigurationen eller kustomizations tas bort. Användning prune=true är viktigt för miljöer där användarna inte har åtkomst till klustren och endast kan göra ändringar via Git-lagringsplatsen.
depends_on String Namnet på en eller flera kustomizations (i den här konfigurationen) som måste stämmas av innan den här kustomiseringen kan stämmas av. Exempel: depends_on=["kustomization1","kustomization2"]. Om du tar bort en kustomisering som har beroende kustomiseringar blir DependencyNotReadytillståndet för beroende kustomiseringar och avstämningen stoppas.
timeout golang-varaktighetsformat Standard: 10m.
sync_interval golang-varaktighetsformat Standard: 10m.
retry_interval golang-varaktighetsformat Standard: 10m.
validation String Värden: none, client, server. Standard: none. Mer information finns i Flux-dokumentationen .
force Booleskt Standard: false. Ange force=true för att instruera kustomize-kontrollanten att återskapa resurser när korrigeringen misslyckas på grund av en oföränderlig fältändring.

Du kan också använda az k8s-configuration flux kustomization för att uppdatera, lista, visa och ta bort kustomiseringar i en Flux-konfiguration.

Nästa steg