Podporované parametry GitOps (Flux v2)

Azure poskytuje funkci automatizovaného nasazení aplikací pomocí GitOps, která funguje se službou Azure Kubernetes Service (AKS) a clustery Kubernetes s podporou Azure Arc. GitOps s Flux v2 umožňuje používat úložiště Git jako zdroj pravdy pro konfiguraci clusteru a nasazení aplikací. Další informace najdete v tématu Nasazení aplikací pomocí GitOps (Flux v2) a kurz: Nasazení aplikací pomocí GitOps s Flux v2.

GitOps v Kubernetes s podporou Azure Arc nebo Azure Kubernetes Service používá flux, oblíbenou opensourcovou sadu nástrojů, která podporuje mnoho parametrů pro povolení různých scénářů. Popis všech parametrů, které Flux podporuje, najdete v oficiální dokumentaci k fluxu.

Pokud chcete zobrazit všechny parametry podporované fluxem v Azure, prohlédnou si dokumentaciaz k8s-configuration. Tato implementace v současné době nepodporuje všechny parametry, které Flux podporuje. Dejte nám vědět, jestli v implementaci Azure chybí parametr, který potřebujete.

Tento článek popisuje některé parametry a argumenty dostupné pro az k8s-configuration flux create příkaz. Úplný seznam parametrů můžete az k8s-configuration flux zobrazit také pomocí parametru -h v Azure CLI (napříkladaz k8s-configuration flux -h).az k8s-configuration flux create -h

Tip

Alternativním řešením pro nasazení prostředků Flux s nepodporovými parametry je definovat požadované vlastní prostředky Flux (například GitRepository nebo Kustomization) v úložišti Git. Nasaďte tyto prostředky pomocí az k8s-configuration flux create příkazu. K prostředkům Flux pak budete mít přístup prostřednictvím uživatelského rozhraní Azure Arc.

Obecné argumenty konfigurace

Parametr Formát Notes
--cluster-name -c String Název prostředku clusteru v Azure
--cluster-type -t Povolené hodnoty: connectedClusters, managedClusters Používá se connectedClusters pro clustery Kubernetes s podporou Azure Arc nebo managedClusters pro clustery AKS.
--resource-group -g String Název skupiny prostředků Azure, která obsahuje prostředek clusteru.
--name -n String Název konfigurace fluxu v Azure
--namespace --ns String Název oboru názvů pro nasazení konfigurace. Výchozí hodnota: default.
--scope -s String Obor oprávnění pro operátory Možné hodnoty jsou cluster (úplný přístup) nebo namespace (omezený přístup). Výchozí hodnota: cluster.
--suspend flag Pozastaví všechna odsouhlasení zdroje a kustomize definovaná v této konfiguraci Flux. Odsouhlasení aktivní v době pozastavení bude pokračovat.

Obecné argumenty zdroje

Parametr Formát Notes
--kind String Druh zdroje, který se má odsouhlasit. Povolené hodnoty: bucket, git, azblob. Výchozí hodnota: git.
--timeout formát doby trvání jazyka golang Maximální doba pokusu o odsouhlasení zdroje před vypršením časového limitu Výchozí hodnota: 10m.
--sync-interval --interval formát doby trvání jazyka golang Čas mezi vyrovnáním zdroje v clusteru Výchozí hodnota: 10m.

Referenční argumenty zdroje úložiště Git

Parametr Formát Notes
--branch String Větev ve zdroji Gitu pro synchronizaci s clusterem. Výchozí hodnota: master. Novější úložiště můžou mít kořenovou větev s názvem main, v takovém případě potřebujete nastavit --branch=main.
--tag String Označte zdroj Git, který se má synchronizovat s clusterem. Příklad: --tag=3.2.0.
--semver String Rozsah značek semver Git ve zdroji Gitu, který se má synchronizovat s clusterem. Příklad: --semver=">=3.1.0-rc.1 <3.2.0".
--commit String Git commit SHA within the Git source to sync to the cluster. Příklad: --commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a.

Další informace najdete v dokumentaci Flux ke strategiím rezervace úložiště Git.

Veřejné úložiště Git

Parametr Formát Notes
--url -u http[s]://server/repo[.git] Adresa URL zdroje úložiště Git pro odsouhlasení clusteru

Privátní úložiště Git s využitím SSH

Důležité

Azure DevOps oznámila vyřazení SSH-RSA jako podporovanou metodu šifrování pro připojení k úložištím Azure pomocí SSH. Pokud pro připojení k úložištím Azure v konfiguracích Flux používáte klíče SSH, doporučujeme přejít na bezpečnější klíče RSA-SHA2-256 nebo RSA-SHA2-512. Další informace najdete v tématu Vyřazení Azure DevOps SSH-RSA.

Privátní úložiště Git s klíči vytvořenými SSH a Flux

Přidejte veřejný klíč vygenerovaný nástrojem Flux do uživatelského účtu u vašeho poskytovatele služeb Git.

Parametr Formát Notes
--url -u ssh://user@server/repo[.git] git@ by měla nahradit user@ , pokud je veřejný klíč přidružený k úložišti místo uživatelského účtu.

Privátní úložiště Git s klíči SSH a klíči poskytnutými uživatelem

Použijte vlastní privátní klíč přímo nebo ze souboru. Klíč musí být ve formátu PEM a musí končit novým textem (\n).

Přidejte přidružený veřejný klíč do uživatelského účtu u vašeho poskytovatele služeb Git.

Parametr Formát Notes
--url -u ssh://user@server/repo[.git] git@ by měla nahradit user@ , pokud je veřejný klíč přidružený k úložišti místo uživatelského účtu.
--ssh-private-key Klíč Base64 ve formátu PEM Zadejte klíč přímo.
--ssh-private-key-file Úplná cesta k místnímu souboru Zadejte úplnou cestu k místnímu souboru, který obsahuje klíč formátu PEM.

Privátní hostitel Git s protokolem SSH a známými hostiteli poskytovanými uživatelem

Operátor Flux udržuje v souboru known_hosts seznam běžných hostitelů Git. Flux tyto informace používá k ověření úložiště Git před navázáním připojení SSH. Pokud používáte neobvyklé úložiště Git nebo vlastního hostitele Gitu, můžete zadat klíč hostitele, aby flux mohl identifikovat vaše úložiště.

Stejně jako u privátních klíčů můžete obsah known_hosts zadat přímo nebo do souboru. Při poskytování vlastního obsahu použijte specifikace known_hosts formátu obsahu spolu s některým z předchozích klíčových scénářů SSH.

Parametr Formát Notes
--url -u ssh://user@server/repo[.git] git@ může nahradit user@.
--known-hosts Řetězec Base64 Zadejte known_hosts obsah přímo.
--known-hosts-file Úplná cesta k místnímu souboru Zadejte known_hosts obsah v místním souboru.

Privátní úložiště Git s uživatelem a klíčem HTTPS

Parametr Formát Notes
--url -u https://server/repo[.git] HTTPS se základním ověřováním.
--https-user Nezpracovaný řetězec Uživatelské jméno HTTPS.
--https-key Nezpracovaný řetězec Osobní přístupový token HTTPS nebo heslo.

Privátní úložiště Git s certifikátem certifikační autority HTTPS

Parametr Formát Notes
--url -u https://server/repo[.git] HTTPS se základním ověřováním.
--https-ca-cert Řetězec Base64 Certifikát certifikační autority pro komunikaci pomocí protokolu TLS
--https-ca-cert-file Úplná cesta k místnímu souboru Zadejte obsah certifikátu certifikační autority v místním souboru.

Zdrojové argumenty kbelíku

Pokud používáte bucket zdroj, tady jsou argumenty příkazu specifické pro kontejnery.

Parametr Formát Notes
--url -u Řetězec adresy URL Adresa URL pro bucket. Podporované formáty: http://, https://.
--bucket-name String bucket Název synchronizace.
--bucket-access-key String ID přístupového bucketklíče použitého k ověření pomocí .
--bucket-secret-key String Tajný klíč použitý k ověření pomocí bucketklíče .
--bucket-insecure Logická hodnota Komunikace s protokolem bucket TLS bez protokolu TLS Pokud není uvedeno, předpokládá se nepravda; pokud je uvedeno, předpokládá se true.

Zdrojové argumenty účtu služby Azure Blob Storage

Pokud používáte azblob zdroj, tady jsou argumenty příkazu specifické pro objekt blob.

Parametr Formát Notes
--url -u Řetězec adresy URL Adresa URL pro azblob.
--container-name String Název kontejneru Azure Blob Storage, který se má synchronizovat
--sp_client_id String ID klienta pro ověřování instančního objektu s objektem blob Azure vyžadované pro tuto metodu ověřování
--sp_tenant_id String ID tenanta pro ověřování instančního objektu s objektem blob Azure vyžadované pro tuto metodu ověřování
--sp_client_secret String Tajný klíč klienta pro ověřování instančního objektu pomocí azure Blob
--sp_client_cert String Klientský certifikát s kódováním Base64 pro ověřování instančního objektu pomocí objektu blob Azure
--sp_client_cert_password String Heslo pro klientský certifikát použitý k ověření instančního objektu pomocí azure Blob
--sp_client_cert_send_chain String Určuje, jestli se má do deklarací identity klienta zahrnout hlavička x5c, aby bylo možné povolit ověřování na základě názvu subjektu nebo vystavitele pro klientský certifikát.
--account_key String Sdílený klíč objektu blob Azure pro ověřování
--sas_token String Token SAS objektu blob Azure pro ověřování
--managed-identity-client-id String ID klienta spravované identity pro ověřování pomocí Azure Blob

Důležité

Při použití ověřování spravované identity pro clustery a azblob zdroj AKS musí být spravovaná identita přiřazena minimálně roli Čtenář dat objektů blob služby Storage. Ověřování pomocí spravované identity ještě není k dispozici pro clustery Kubernetes s podporou Azure Arc.

Místní tajný klíč pro ověřování se zdrojem

Pro ověřování pomocí gitbucket klíče nebo azBlob zdroje můžete použít místní tajný klíč Kubernetes. Místní tajný klíč musí obsahovat všechny parametry ověřování potřebné pro zdroj a musí být vytvořeny ve stejném oboru názvů jako konfigurace Flux.

Parametr Formát Notes
--local-auth-ref --local-ref String Místní odkaz na tajný klíč Kubernetes v oboru názvů konfigurace Flux, který se má použít pro ověřování se zdrojem.

Pro ověřování HTTPS vytvoříte tajný kód s následujícími výjimkou username 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>

Pro ověřování SSH vytvoříte tajný klíč s poli identity a known_hosts poli:

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

Důležité

Azure DevOps oznámila vyřazení SSH-RSA jako podporovanou metodu šifrování pro připojení k úložištím Azure pomocí SSH. Pokud pro připojení k úložištím Azure v konfiguracích Flux používáte klíče SSH, doporučujeme přejít na bezpečnější klíče RSA-SHA2-256 nebo RSA-SHA2-512. Další informace najdete v tématu Vyřazení Azure DevOps SSH-RSA.

V obou případech při vytváření konfigurace Flux použijte --local-auth-ref my-custom-secret místo ostatních parametrů ověřování:

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

Další informace o použití místního tajného kódu Kubernetes s těmito metodami ověřování:

Poznámka:

Pokud potřebujete flux pro přístup ke zdroji prostřednictvím proxy serveru, musíte aktualizovat agenty Azure Arc nastavením proxy serveru. Další informace najdete v tématu Připojení pomocí odchozího proxy serveru.

Implementace Gitu

Pro podporu různých poskytovatelů úložiště, kteří implementují Git, lze flux nakonfigurovat tak, aby používal jednu ze dvou knihoven Gitu: go-git nebo libgit2. Podrobnosti najdete v dokumentaci k fluxu.

Implementace GitOps fluxu v2 automaticky určuje, kterou knihovnu použít pro úložiště veřejného cloudu:

  • Pro úložiště GitHub, GitLab a BitBucket používá go-gitFlux .
  • Pro Azure DevOps a všechna ostatní úložiště používá libgit2Flux .

Pro místní úložiště používá libgit2Flux .

Kustomizace

Kustomization je nastavení vytvořené pro konfigurace Flux, které umožňuje zvolit konkrétní cestu ve zdrojovém úložišti, které je odsouhlasené do clusteru. V této zadané cestě nemusíte vytvářet soubor kustomization.yaml. Ve výchozím nastavení jsou všechny manifesty v této cestě odsouhlasené. Pokud ale chcete mít překrytí Kustomize pro aplikace dostupné v této cestě k úložišti, měli byste soubory Kustomize vytvořit v Gitu, aby se konfigurace Flux využila.

Pomocí příkazu az k8s-configuration flux kustomization createmůžete během konfigurace vytvořit jednu nebo více kustomizace.

Parametr Formát Notes
--kustomization Žádná hodnota Začátek řetězce parametrů, které konfiguruje kustomizaci Můžete ho použít vícekrát k vytvoření více kustomizace.
name String Jedinečný název pro tuto kustomizaci.
path String Cesta v úložišti Git pro odsouhlasení clusteru Výchozí hodnota je nejvyšší úroveň větve.
prune Logická hodnota Výchozí hodnota je false. Nastavte prune=true , aby se zajistilo, že objekty, které flux nasadí do clusteru, se vyčistí, pokud jsou odebrány z úložiště nebo pokud dojde k odstranění konfigurace fluxu nebo kustomizace. Použití prune=true je důležité pro prostředí, kde uživatelé nemají přístup ke clusterům a můžou provádět změny pouze prostřednictvím úložiště Git.
depends_on String Název jedné nebo více kustomizace (v rámci této konfigurace), které musí být odsouhlaseny před dokončením této kustomizace. Například: depends_on=["kustomization1","kustomization2"]. Pokud odeberete kustomizaci, která má závislé kustomizace, stav závislých kustomizace se stane DependencyNotReadya odsouhlasení se zastaví.
timeout formát doby trvání jazyka golang Výchozí hodnota: 10m.
sync_interval formát doby trvání jazyka golang Výchozí hodnota: 10m.
retry_interval formát doby trvání jazyka golang Výchozí hodnota: 10m.
validation String Hodnoty: none, client, server. Výchozí hodnota: none. Podrobnosti najdete v dokumentaci k fluxu.
force Logická hodnota Výchozí hodnota: false. Nastavte force=true pokyn kontroleru kustomize, aby znovu vytvořil prostředky při selhání opravy kvůli neměnné změně pole.

Můžete také použít az k8s-configuration flux kustomization k aktualizaci, výpisu, zobrazení a odstranění kustomizace v konfiguraci Flux.

Další kroky