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 bucket klíče použitého k ověření pomocí . |
--bucket-secret-key |
String | Tajný klíč použitý k ověření pomocí bucket klíč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í git
bucket
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í:
- Ověřování HTTPS úložiště Git
- Certifikáty podepsané svým držitelem (self-signed certificate) úložiště Git
- Ověřování SSH úložiště Git
- Statické ověřování kontejneru
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-git
Flux . - Pro Azure DevOps a všechna ostatní úložiště používá
libgit2
Flux .
Pro místní úložiště používá libgit2
Flux .
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 create
můž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 DependencyNotReady a 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
- Přečtěte si další informace o nasazeních aplikací pomocí GitOps (Flux v2) pro AKS a Kubernetes s podporou Azure Arc.
- V našem kurzu se dozvíte, jak povolit GitOps v clusterech Kubernetes s podporou AKS nebo Azure Arc.
- Seznamte se s pracovním postupem CI/CD pomocí GitOps.