Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 git
of bucket
azBlob
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:
- HTTPS-verificatie voor Git-opslagplaats
- Zelfondertekende HTTPS-certificaten voor Git-opslagplaatsen
- SSH-verificatie voor Git-opslagplaats
- Statische Bucketverificatie
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 create
kunt 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 DependencyNotReady en 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
- Meer informatie over toepassingsimplementaties met GitOps (Flux v2) voor AKS en Kubernetes met Azure Arc.
- Gebruik onze zelfstudie voor meer informatie over het inschakelen van GitOps op uw AKS- of Kubernetes-clusters met Azure Arc.
- Meer informatie over CI/CD-werkstroom met behulp van GitOps.