Migrera till Innovate Summit:
Lär dig hur migrering och modernisering till Azure kan öka företagets prestanda, motståndskraft och säkerhet, så att du kan använda AI fullt ut.Registrera dig nu
Den här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
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
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.
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.
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.
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.
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:
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:
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.
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.
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.
Använd Azure Policy för att framtvinga principer och skydd på dina Kubernetes-kluster i stor skala. Azure Policy Säkerställer att klustret är säkert, kompatibelt och konsekvent i hela organisationen.
Den här artikeln innehåller en konceptuell översikt över GitOps i Azure för användning i Azure Arc-aktiverade Kubernetes- och Azure Kubernetes Service-kluster (AKS).
I den här självstudien går vi igenom hur du konfigurerar en CI/CD-lösning med GitOps (Flux v2) i Azure Arc-aktiverade Kubernetes- eller Azure Kubernetes Service-kluster.
Syntax och egenskaper för Azure Microsoft.KubernetesConfiguration/fluxConfigurations som ska användas i Azure Resource Manager-mallar för distribution av resursen. SENASTE API-version