Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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édnout 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
Návod
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 | Poznámky |
|---|---|---|
--cluster-name
-c
|
Řetězec | 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
|
Řetězec | Název skupiny prostředků Azure, která obsahuje prostředek clusteru. |
--name
-n
|
Řetězec | Název konfigurace fluxu v Azure |
--namespace
--ns
|
Řetězec | Název oboru názvů pro nasazení konfigurace. Výchozí hodnota: default. |
--scope
-s
|
Řetězec | 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 |
vlajka | Pozastaví všechna odsouhlasení zdroje a kustomize definovaná v této konfiguraci Flux. Smíření aktivní v době pozastavení budou pokračovat. |
Obecné argumenty zdroje
| Parametr | Formát | Poznámky |
|---|---|---|
--kind |
Řetězec | Druh zdroje, který se má odsouhlasit. Povolené hodnoty: bucket, git, azblob. Výchozí hodnota: git. |
--timeout |
formát trvání v 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 trvání v golang | Čas mezi synchronizacemi zdroje v clusteru Výchozí hodnota: 10m. |
Referenční argumenty zdroje úložiště Git
| Parametr | Formát | Poznámky |
|---|---|---|
--branch |
Řetězec | 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 |
Řetězec | Označte zdroj Git, který se má synchronizovat s clusterem. Příklad: --tag=3.2.0. |
--semver |
Řetězec | 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 |
Řetězec | Git commit SHA ve zdrojovém kódu Git k synchronizaci s clusterem. 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 | Poznámky |
|---|---|---|
--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 zastavení podpory 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 | Poznámky |
|---|---|---|
--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 | Poznámky |
|---|---|---|
--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 |
Base64 klíč 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 formátu known_hosts obsahu spolu s některým z předchozích klíčových scénářů SSH.
| Parametr | Formát | Poznámky |
|---|---|---|
--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 | Poznámky |
|---|---|---|
--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 | Poznámky |
|---|---|---|
--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. |
Argumenty zdroje "bucket"
Pokud používáte bucket zdroj, tady jsou argumenty příkazu specifické pro kontejnery.
| Parametr | Formát | Poznámky |
|---|---|---|
--url
-u
|
Řetězec adresy URL | Adresa URL pro bucket. Podporované formáty: http://, https://. |
--bucket-name |
Řetězec |
bucket Název synchronizace. |
--bucket-access-key |
Řetězec | ID přístupového klíče použitého k ověření s bucket. |
--bucket-secret-key |
Řetězec | Tajný klíč použitý k ověření pomocí bucketklíče . |
--bucket-insecure |
Boolovská logika | 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 | Poznámky |
|---|---|---|
--url
-u
|
Řetězec adresy URL | Adresa URL pro azblob. |
--container-name |
Řetězec | Název kontejneru Azure Blob Storage, který se má synchronizovat |
--sp_client_id |
Řetězec | ID klienta pro ověření služebního principála s Azure Blob je vyžadováno pro tuto autentizační metodu. |
--sp_tenant_id |
Řetězec | 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 |
Řetězec | Tajný klíč klienta pro ověřování instančního objektu pomocí azure Blob |
--sp_client_cert |
Řetězec | 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 |
Řetězec | Heslo pro klientský certifikát použitý k ověření instančního objektu pomocí azure Blob |
--sp_client_cert_send_chain |
Řetězec | Určuje, zda zahrnout hlavičku x5c do deklarací identity klienta při získávání tokenu, aby bylo možné povolit autentizaci na základě jména subjektu nebo vystavitele pro klientský certifikát. |
--account_key |
Řetězec | Sdílený klíč objektu blob Azure pro ověřování |
--sas_token |
Řetězec | SAS token pro ověřování v Azure Blob |
--managed-identity-client-id |
Řetězec | 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 | Poznámky |
|---|---|---|
--local-auth-ref
--local-ref
|
Řetězec | Místní odkaz na tajný klíč Kubernetes v oboru názvů konfigurace Flux, který se má použít pro ověřování se zdrojem. |
K ověřování HTTPS vytvoříte tajemství s username a 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 zastavení podpory 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 Flux používá
go-git. - Pro Azure DevOps a všechna ostatní úložiště používá Flux
libgit2.
Pro místní úložiště používá Flux libgit2.
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ě sladěné. Pokud ale chcete mít překrytí Kustomize pro aplikace dostupné v úložišti na této cestě, měli byste vytvořit soubory Kustomize v Gitu, aby konfigurace Flux mohla být využívána.
Pomocí příkazu az k8s-configuration flux kustomization createmůžete během konfigurace vytvořit jednu nebo více kustomizace.
| Parametr | Formát | Poznámky |
|---|---|---|
--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 |
Řetězec | Jedinečný název pro tuto kustomizaci. |
path |
Řetězec | Cesta v úložišti Git pro sladění s clusterem Výchozí nastavení je nejvyšší úroveň větve. |
prune |
Boolovská logika | 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 |
Řetězec | Název jedné nebo více kustomizací (v rámci této konfigurace), které musí být vyrovnány před tím, než může být tato kustomizace vyrovnána. Například: depends_on=["kustomization1","kustomization2"]. Pokud odstraníte kustomizaci, která má závislé kustomizace, stav těchto závislých kustomizací se změní na DependencyNotReady a proces synchronizace se zastaví. |
timeout |
formát trvání v golang | Výchozí hodnota: 10m. |
sync_interval |
formát trvání v golang | Výchozí hodnota: 10m. |
retry_interval |
formát trvání v golang | Výchozí hodnota: 10m. |
validation |
Řetězec | Hodnoty: none, client, server. Výchozí hodnota: none. Podrobnosti najdete v dokumentaci k Fluxu. |
force |
Boolovská logika | Výchozí hodnota: false. Nastavte force=true jako příkaz pro kontroler kustomize, aby znovu vytvořil prostředky, pokud oprava selže kvůli změně neměnného 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.