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).

Tips/Råd

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 Noteringar
--cluster-name -c Sträng 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 Sträng Namnet på den Azure-resursgrupp som innehåller klusterresursen.
--name -n Sträng Namn på Flux-konfigurationen i Azure.
--namespace --ns Sträng Namnet på namnområdet för att distribuera konfigurationen. Förvald: default.
--scope -s Sträng Behörighetsomfång för operatorerna. Möjliga värden är cluster (fullständig åtkomst) eller namespace (begränsad åtkomst). Förvald: cluster.
--suspend flagga 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 Noteringar
--kind Sträng Källtyp att stämma av. Tillåtna värden: bucket, git, azblob. Förvald: 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. Förvald: 10m.

Källreferensargument för Git-lagringsplats

Parameter Format Noteringar
--branch Sträng Förgrena i Git-källan för synkronisering till klustret. Förvald: master. Nyare lagringsplatser kan ha en rotgren med namnet main, i vilket fall du behöver ange --branch=main.
--tag Sträng Tagga i Git-källan för att synkronisera med klustret. Exempel: --tag=3.2.0.
--semver Sträng Git-taggintervall semver i Git-källan för synkronisering till klustret. Exempel: --semver=">=3.1.0-rc.1 <3.2.0".
--commit Sträng 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 Noteringar
--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 Azure DevOps SSH-RSA utfasning.

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 Noteringar
--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 Noteringar
--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 Noteringar
--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 Noteringar
--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 Noteringar
--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 källan för bucket

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

Parameter Format Noteringar
--url -u URL-sträng URL:en för bucket. Format som stöds: http://, https://.
--bucket-name Sträng Namnet på bucket som ska synkroniseras.
--bucket-access-key Sträng Åtkomstnyckel-ID som används för att autentisera med bucket.
--bucket-secret-key Sträng Hemlig nyckel som används för att autentisera med bucket.
--bucket-insecure Boolesk 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 Noteringar
--url -u URL-sträng URL:en för azblob.
--container-name Sträng Namnet på den Azure Blob Storage-container som ska synkroniseras
--sp_client_id Sträng Klient-ID för autentisering av tjänsthuvudnamn med Azure Blob, krävs för den här autentiseringsmetoden
--sp_tenant_id Sträng Tenant-ID för autentisering av ett tjänstekonto med Azure Blob krävs för den här autentiseringsmetoden
--sp_client_secret Sträng Klienthemligheten för att autentisera en tjänsthuvudkonto med Azure Blob
--sp_client_cert Sträng Base64-kodat klientcertifikat för autentisering av en service principal med Azure Blob
--sp_client_cert_password Sträng Lösenordet för klientcertifikatet som används för att autentisera ett tjänsthuvudkonto med Azure Blob.
--sp_client_cert_send_chain Sträng 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 Sträng Den delade Azure Blob-nyckeln för autentisering
--sas_token Sträng Azure Blob SAS-token för autentisering
--managed-identity-client-id Sträng 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 Noteringar
--local-auth-ref --local-ref Sträng Lokal referens till en Kubernetes Secret i Flux-konfigurationens namnområde 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 Azure DevOps SSH-RSA utfasning.

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:

Anmärkning

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 Flux libgit2.

För lokala lagringsplatser använder Flux libgit2.

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 av az k8s-configuration flux kustomization create kan du skapa en eller flera anpassningar under konfigurationen.

Parameter Format Noteringar
--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 Sträng Unikt namn för den här kustomiseringen.
path Sträng Sökväg i Git-förrådet för att synkronisera med klustret. Standardvärdet är den översta nivån för grenen.
prune Boolesk 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 Sträng Namnet på en eller flera kustomiseringar (i den här konfigurationen) som måste sammanfogas innan den här kustomiseringen kan sammanfogas. Till exempel: depends_on=["kustomization1","kustomization2"]. Om du tar bort en kustomisering som har beroende kustomiseringar blir tillståndet för de beroende kustomiseringarna DependencyNotReady, och avstämningen stoppas.
timeout golang-varaktighetsformat Förvald: 10m.
sync_interval golang-varaktighetsformat Förvald: 10m.
retry_interval golang-varaktighetsformat Förvald: 10m.
validation Sträng Värden: none, client, server. Förvald: none. Mer information finns i Flux-dokumentationen .
force Boolesk Förvald: 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