Kurz: Implementace CI/CD pomocí GitOps (Flux v. 2)
V tomto kurzu nastavíte řešení CI/CD pomocí GitOps s fluxem v2 a clustery Kubernetes s podporou Azure Arc nebo Azure Kubernetes Service (AKS). Pomocí ukázkové aplikace Azure Vote provedete následující:
- Vytvořte cluster Kubernetes nebo AKS s podporou Azure Arc.
- Připojení vaše aplikace a úložiště GitOps do Azure Repos nebo GitHubu.
- Implementujte tok CI/CD pomocí Azure Pipelines nebo GitHubu.
- Připojení azure Container Registry do Azure DevOps a Kubernetes.
- Vytvořte skupiny proměnných prostředí nebo tajné kódy.
- Nasaďte prostředí
dev
astage
prostředí. - Otestujte aplikační prostředí.
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Azure Cloud Shell
Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.
Spuštění služby Azure Cloud Shell:
Možnost | Příklad nebo odkaz |
---|---|
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. | |
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. | |
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. |
Použití Azure Cloud Shellu:
Spusťte Cloud Shell.
Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.
Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.
Stisknutím klávesy Enter spusťte kód nebo příkaz.
Požadavky
V předchozím kurzu se dozvíte, jak nasadit GitOps pro prostředí CI/CD.
Seznamte se s výhodami a architekturou této funkce.
Ověřte, že máte:
- Připojený cluster Kubernetes s podporou Azure Arc s názvem arc-cicd-cluster.
- Připojený azure Container Registry s integrací AKS nebo ověřováním clusteru bez AKS.
Nainstalujte nejnovější verze těchto rozšíření Kubernetes a Kubernetes Configuration CLI s podporou služby Azure Arc:
az extension add --name connectedk8s az extension add --name k8s-configuration
Pokud chcete tato rozšíření aktualizovat na nejnovější verzi, spusťte následující příkazy:
az extension update --name connectedk8s az extension update --name k8s-configuration
Připojení Azure Container Registry do Kubernetes
Povolte cluster Kubernetes načítat image ze služby Azure Container Registry. Pokud je privátní, vyžaduje se ověřování.
Připojení Azure Container Registry do existujících clusterů AKS
Pomocí následujícího příkazu integrujte existující službu Azure Container Registry se stávajícími clustery AKS:
az aks update -n arc-cicd-cluster -g myResourceGroup --attach-acr arc-demo-acr
Vytvoření tajného kódu pro vyžádání image
Pokud chcete připojit jiné clustery než AKS a místní clustery ke službě Azure Container Registry, vytvořte tajný klíč pro vyžádání image. Kubernetes používá tajné kódy pro vyžádání image k ukládání informací potřebných k ověření vašeho registru.
Vytvořte tajný kód pro vyžádání image pomocí následujícího kubectl
příkazu. Opakujte pro obory dev
názvů i stage
obory názvů.
kubectl create secret docker-registry <secret-name> \
--namespace <namespace> \
--docker-server=<container-registry-name>.azurecr.io \
--docker-username=<service-principal-ID> \
--docker-password=<service-principal-password>
Pokud se chcete vyhnout nastavení imagePullSecret pro každý pod, zvažte přidání imagePullSecret do účtu služby v dev
oborech názvů a stage
obory názvů. Další informace najdete v kurzu Kubernetes.
V závislosti na preferujete orchestrátoru CI/CD, můžete pokračovat pokyny pro Azure DevOps nebo pro GitHub.
Implementace CI/CD s Využitím Azure DevOps
V tomto kurzu se předpokládá znalost Azure DevOps, Azure Repos a Pipelines a Azure CLI.
Nejprve proveďte následující kroky:
- Přihlaste se ke službě Azure DevOps Services.
- Ověřte, že máte oprávnění Build Správa a Project Správa pro Azure Repos a Azure Pipelines.
Import úložišť aplikací a GitOps do Azure Repos
Importujte úložiště aplikací a úložiště GitOps do Azure Repos. Pro účely tohoto kurzu použijte následující ukázková úložiště:
Úložiště aplikací arc-cicd-demo-src
- URL: https://github.com/Azure/arc-cicd-demo-src
- Obsahuje příklad aplikace Azure Vote, kterou nasadíte pomocí GitOps.
- Import úložiště s názvem
arc-cicd-demo-src
Úložiště GitOps arc-cicd-demo-gitops
- URL: https://github.com/Azure/arc-cicd-demo-gitops
- Funguje jako základ pro prostředky clusteru, které jsou součástí aplikace Azure Vote.
- Import úložiště s názvem
arc-cicd-demo-gitops
Přečtěte si další informace o importu úložišť Git.
Poznámka:
Import a použití dvou samostatných úložišť pro aplikace a úložiště GitOps může zlepšit zabezpečení a jednoduchost. Oprávnění a viditelnost úložiště GitOps aplikace a GitOps je možné ladit jednotlivě. Správce clusteru například nemusí najít změny v kódu aplikace, které jsou relevantní pro požadovaný stav clusteru. Vývojář aplikací naopak nemusí znát konkrétní parametry pro každé prostředí – sada testovacích hodnot, které poskytují pokrytí parametrů, může být dostačující.
Připojení úložiště GitOps
Pokud chcete aplikaci průběžně nasazovat, připojte úložiště aplikací ke clusteru pomocí GitOps. Úložiště GitOps arc-cicd-demo-gitops obsahuje základní prostředky pro zprovoznění aplikace v clusteru arc-cicd-cluster .
Počáteční úložiště GitOps obsahuje pouze manifest , který vytvoří obory názvů pro vývoj a fázi odpovídající prostředím nasazení.
Připojení GitOps, které vytvoříte, automaticky:
- Synchronizujte manifesty v adresáři manifestu.
- Aktualizujte stav clusteru.
Pracovní postup CI/CD naplní adresář manifestu dalšími manifesty pro nasazení aplikace.
Vytvořte nové připojení GitOps k nově importovanému úložišti arc-cicd-demo-gitops v Azure Repos.
az k8s-configuration flux create \ --name cluster-config \ --cluster-name arc-cicd-cluster \ --namespace flux-system \ --resource-group myResourceGroup \ -u https://dev.azure.com/<Your organization>/<Your project>/_git/arc-cicd-demo-gitops \ --https-user <Azure Repos username> \ --https-key <Azure Repos PAT token> \ --scope cluster \ --cluster-type connectedClusters \ --branch master \ --kustomization name=cluster-config prune=true path=arc-cicd-cluster/manifests
Tip
Pro cluster AKS (místo clusteru s podporou arc) použijte
-cluster-type managedClusters
.Zkontrolujte stav nasazení na webu Azure Portal.
- V případě úspěchu uvidíte v clusteru vytvořené obory
dev
názvů istage
obory názvů. - Můžete také ověřit, že na stránce webu Azure Portal vašeho clusteru se na kartě f
GitOps
vytvoří konfiguracecluster-config
.
- V případě úspěchu uvidíte v clusteru vytvořené obory
Import kanálů CI/CD
Teď, když jste synchronizovali připojení GitOps, musíte importovat kanály CI/CD, které vytvářejí manifesty.
Úložiště aplikace obsahuje .pipeline
složku s kanály používanými pro žádosti o přijetí změn, CI a CD. Naimportujte a přejmenujte tři kanály, které jsou k dispozici v ukázkovém úložišti:
Název souboru kanálu | Popis |
---|---|
.pipelines/az-vote-pr-pipeline.yaml |
Kanál žádosti o přijetí změn aplikace s názvem arc-cicd-demo-src PR |
.pipelines/az-vote-ci-pipeline.yaml |
Kanál CI aplikace s názvem arc-cicd-demo-src CI |
.pipelines/az-vote-cd-pipeline.yaml |
Kanál CD aplikace s názvem arc-cicd-demo-src CD |
Připojení azure Container Registry do Azure DevOps
Během procesu CI nasadíte kontejnery aplikací do registru. Začněte vytvořením připojení služby Azure:
- V Azure DevOps otevřete stránku připojení služby ze stránky nastavení projektu. V sadě TFS otevřete stránku Služby z ikony nastavení v horním řádku nabídek.
- Zvolte + Nové připojení služby a vyberte typ připojení služby, které potřebujete.
- Vyplňte parametry připojení služby. Pro účely tohoto kurzu:
- Pojmenujte připojení služby arc-demo-acr.
- Jako skupinu prostředků vyberte myResourceGroup .
- Vyberte oprávnění Udělit přístup všem kanálům.
- Tato možnost autorizuje soubory kanálů YAML pro připojení služeb.
- Pokud chcete vytvořit připojení, zvolte OK .
Konfigurace připojení služby PR
Kanál CD manipuluje s žádosti o přijetí změn v úložišti GitOps. Aby to bylo možné, potřebuje připojení ke službě. Konfigurace tohoto připojení:
- V Azure DevOps otevřete stránku připojení služby ze stránky nastavení projektu. V sadě TFS otevřete stránku Služby z ikony nastavení v horním řádku nabídek.
- Zvolte + Nové připojení služby a vyberte
Generic
typ. - Vyplňte parametry připojení služby. Pro účely tohoto kurzu:
- Adresa URL serveru
https://dev.azure.com/<Your organization>/<Your project>/_apis/git/repositories/arc-cicd-demo-gitops
- Nechte uživatelské jméno a heslo prázdné.
- Pojmenujte připojení služby azdo-pr-connection.
- Adresa URL serveru
- Vyberte oprávnění Udělit přístup všem kanálům.
- Tato možnost autorizuje soubory kanálů YAML pro připojení služeb.
- Pokud chcete vytvořit připojení, zvolte OK .
Instalace Připojení oru GitOps
Přidejte úložiště GitOps Připojení or do úložišť Helm:
helm repo add gitops-connector https://azure.github.io/gitops-connector/
Nainstalujte konektor do clusteru:
helm upgrade -i gitops-connector gitops-connector/gitops-connector \ --namespace flux-system \ --set gitRepositoryType=AZDO \ --set ciCdOrchestratorType=AZDO \ --set gitOpsOperatorType=FLUX \ --set azdoGitOpsRepoName=arc-cicd-demo-gitops \ --set azdoOrgUrl=https://dev.azure.com/<Your organization>/<Your project> \ --set gitOpsAppURL=https://dev.azure.com/<Your organization>/<Your project>/_git/arc-cicd-demo-gitops \ --set orchestratorPAT=<Azure Repos PAT token>
Poznámka:
Azure Repos PAT token
by měla mítBuild: Read & execute
aCode: Full
mít oprávnění.Konfigurace fluxu pro odesílání oznámení do konektoru GitOps:
cat <<EOF | kubectl apply -f - apiVersion: notification.toolkit.fluxcd.io/v1beta1 kind: Alert metadata: name: gitops-connector namespace: flux-system spec: eventSeverity: info eventSources: - kind: GitRepository name: cluster-config - kind: Kustomization name: cluster-config-cluster-config providerRef: name: gitops-connector --- apiVersion: notification.toolkit.fluxcd.io/v1beta1 kind: Provider metadata: name: gitops-connector namespace: flux-system spec: type: generic address: http://gitops-connector:8080/gitopsphase EOF
Podrobnosti o instalaci najdete v úložišti gitOps Připojení oru.
Vytvoření skupin proměnných prostředí
Skupina proměnných úložiště aplikací
Vytvořte skupinu proměnných s názvem az-vote-app-dev. Nastavte následující hodnoty:
Proměnná | Hodnota |
---|---|
AZURE_SUBSCRIPTION | (vaše Připojení služby Azure, což by mělo být arc-demo-acr z dřívějšího kurzu) |
AZ_ACR_NAME | Název Azure ACR, například arc-demo-acr |
ENVIRONMENT_NAME | Vývoj |
MANIFESTS_BRANCH | master |
MANIFESTS_REPO | arc-cicd-demo-gitops |
ORGANIZATION_NAME | Název organizace Azure DevOps |
PROJECT_NAME | Název projektu GitOps v Azure DevOps |
REPO_URL | Úplná adresa URL úložiště GitOps |
SRC_FOLDER | azure-vote |
TARGET_CLUSTER | arc-cicd-cluster |
TARGET_NAMESPACE | dev |
VOTE_APP_TITLE | Hlasovací aplikace |
AKS_RESOURCE_GROUP | Skupina prostředků AKS Potřebné pro automatizované testování. |
AKS_NAME | Název AKS Potřebné pro automatizované testování. |
Skupina proměnných prostředí fáze
- Naklonujte skupinu proměnných az-vote-app-dev .
- Změňte název na az-vote-app-stage.
- Ujistěte se, že pro odpovídající proměnné platí následující hodnoty:
Proměnná | Hodnota |
---|---|
ENVIRONMENT_NAME | Fáze |
TARGET_NAMESPACE | stage |
Teď jste připraveni k nasazení do dev
prostředí a stage
prostředí.
Vytvoření prostředí
V projektu Azure DevOps vytvořte Dev
a vytvořte prostředí Stage
. Podrobnosti najdete v tématu Vytvoření a cílení prostředí.
Udělení dalších oprávnění ke službě sestavení
Kanál CD používá token zabezpečení spuštěného sestavení k ověření v úložišti GitOps. Aby kanál vytvořil novou větev, odeslal změny a vytvořil žádosti o přijetí změn, potřebuje další oprávnění.
- Přejděte na
Project settings
hlavní stránku projektu Azure DevOps. - Vyberte možnost
Repos/Repositories
. - Vyberte možnost
Security
. <Project Name> Build Service (<Organization Name>)
Pro pole a proProject Collection Build Service (<Organization Name>)
něj (zadejte ho do vyhledávacího pole, pokud se nezobrazí), povolteContribute
,Contribute to pull requests
aCreate branch
.- Přejděte na
Pipelines/Settings
. - Možnost vypnutí
Protect access to repositories in YAML pipelines
Další informace naleznete v tématu:
První nasazení vývojového prostředí
Když jsou vytvořené kanály CI a CD, spusťte kanál CI a nasaďte aplikaci poprvé.
Kanál CI
Během počátečního spuštění kanálu CI se může při čtení názvu připojení služby zobrazit chyba autorizace prostředků.
- Ověřte, že je proměnná, ke které se přistupuje, AZURE_SUBSCRIPTION.
- Autorizuje použití.
- Znovu spusťte kanál.
Kanál CI:
- Zajišťuje, že změna aplikace projde všemi automatizovanými kontrolami kvality nasazení.
- Provede jakékoli dodatečné ověření, které se nepodařilo dokončit v kanálu žádosti o přijetí změn.
- Kanál také publikuje artefakty pro potvrzení, které bude kanál CD nasazovat, konkrétně pro GitOps.
- Ověří, že se image Dockeru změnila a nová image se nasdílí.
Kanál CD
Během počátečního spuštění kanálu CD musíte kanálu udělit přístup k úložišti GitOps. Po zobrazení výzvy vyberte Zobrazit , že kanál potřebuje oprávnění pro přístup k prostředku. Pak vyberte Povolit udělit oprávnění k používání úložiště GitOps pro aktuální a budoucí spuštění kanálu.
Úspěšné spuštění kanálu CI aktivuje kanál CD, aby se dokončil proces nasazení. Postupně nasadíte do každého prostředí.
Tip
Pokud se kanál CD neaktivuje automaticky:
- Ověřte, že název odpovídá triggeru větve v
.pipelines/az-vote-cd-pipeline.yaml
- Měla by mít hodnotu
arc-cicd-demo-src CI
.
- Měla by mít hodnotu
- Znovu spusťte kanál CI.
Jakmile se šablona a manifest změní v úložišti GitOps, kanál CD vytvoří potvrzení, odešle ho a vytvoří žádost o přijetí změn ke schválení.
Vyhledejte žádost o přijetí změn vytvořenou kanálem do úložiště GitOps.
Ověřte změny v úložišti GitOps. Měli byste vidět tohle:
- Změny šablony Helm vysoké úrovně
- Manifesty Kubernetes nízké úrovně, které zobrazují základní změny požadovaného stavu. Flux nasadí tyto manifesty.
Pokud všechno vypadá dobře, schvalte a dokončete žádost o přijetí změn.
Po několika minutách flux změnu převezme a spustí nasazení.
Monitorujte stav potvrzení Gitu na kartě Historie potvrzení. Jakmile je
succeeded
, kanál CD spustí automatizované testování.Přesměrujte port místně pomocí
kubectl
aplikace a ujistěte se, že aplikace funguje správně pomocí:kubectl port-forward -n dev svc/azure-vote-front 8080:80
Zobrazte aplikaci Azure Vote v prohlížeči na adrese
http://localhost:8080/
.Hlasujte pro své oblíbené položky a připravte se na provedení některých změn v aplikaci.
Nastavení schválení prostředí
Při nasazení aplikace můžete nejen provádět změny kódu nebo šablon, ale také neúmyslně umístit cluster do špatného stavu.
Pokud vývojové prostředí odhalí přerušení po nasazení, zachovejte ho v pozdějších prostředích pomocí schválení prostředí.
- V projektu Azure DevOps přejděte do prostředí, které je potřeba chránit.
- Přejděte na Schválení a Zkontrolujte prostředek.
- Vyberte Vytvořit.
- Zadejte schvalovatele a volitelnou zprávu.
- Dalším výběrem možnosti Vytvořit dokončíte přidání kontroly ručního schvalování.
Další podrobnosti najdete v kurzu Definování schválení a kontrol .
Při příštím spuštění kanálu CD se kanál pozastaví po vytvoření žádosti o přijetí změn GitOps. Ověřte, že se změna správně synchronizovala, a předá základní funkce. Schválením kontroly z kanálu umožníte toku změn do dalšího prostředí.
Provedení změny aplikace
Pomocí této základní sady šablon a manifestů představujících stav v clusteru provedete malou změnu aplikace.
V úložišti arc-cicd-demo-src upravte
azure-vote/src/azure-vote-front/config_file.cfg
soubor.Vzhledem k tomu, že "Kočky vs psi" nedostává dostatek hlasů, změňte ho na "Tabs vs Spaces", aby se počet hlasů zvýšit.
Potvrďte změnu v nové větvi, nasdílejte ji a vytvořte žádost o přijetí změn. Tato posloupnost kroků je typický vývojový tok, který spouští životní cyklus CI/CD.
Kanál ověření žádosti o přijetí změn
Kanál žádosti o přijetí změn je první linie obrany proti vadné změně. Běžné kontroly kvality kódu aplikace zahrnují lintování a statickou analýzu. Z pohledu GitOps musíte také zajistit stejnou kvalitu výsledné infrastruktury, která se má nasadit.
Grafy Dockerfile a Helm aplikace můžou podobně jako aplikace používat lintování.
Chyby zjištěné při lintování rozsahu od nesprávně formátovaných souborů YAML až po návrhy osvědčených postupů, jako je nastavení limitů procesoru a paměti pro vaši aplikaci.
Poznámka:
Pokud chcete dosáhnout nejlepšího pokrytí z lintování Helmu v reálné aplikaci, budete muset nahradit hodnoty, které jsou přiměřeně podobné těm, které se používají ve skutečném prostředí.
Chyby zjištěné během provádění kanálu se zobrazí v části výsledků testu spuštění. Zde můžete:
- Sledujte užitečné statistiky o typech chyb.
- Najděte první potvrzení, u kterého byly zjištěny.
- Odkazy na styl trasování zásobníku na oddíly kódu, které způsobily chybu.
Po dokončení spuštění kanálu jste si zajistili kvalitu kódu aplikace a šablony, která ho nasadí. Nyní můžete žádost o přijetí změn schválit a dokončit. CI se spustí znovu a znovu vygeneruje šablony a manifesty před aktivací kanálu CD.
Tip
Ve skutečném prostředí nezapomeňte nastavit zásady větví, abyste zajistili, že žádost o přijetí změn projde kontrolou kvality. Další informace najdete v tématu Nastavení zásad větve.
Schválení procesů CD
Úspěšné spuštění kanálu CI aktivuje kanál CD, aby se dokončil proces nasazení. Tentokrát kanál vyžaduje, abyste schválili každé prostředí nasazení.
- Schvalte nasazení do
dev
prostředí. - Jakmile se šablona a manifest změní v úložišti GitOps, kanál CD vytvoří potvrzení, odešle ho a vytvoří žádost o přijetí změn ke schválení.
- Ověřte změny v úložišti GitOps. Měli byste vidět:
- Změny šablony Helm vysoké úrovně
- Manifesty Kubernetes nízké úrovně, které zobrazují základní změny požadovaného stavu.
- Pokud všechno vypadá dobře, schvalte a dokončete žádost o přijetí změn.
- Počkejte, až se nasazení dokončí.
- Jako základní orientační test přejděte na stránku aplikace a ověřte, že hlasovací aplikace teď zobrazuje tabulátory a mezery.
- Přesměrujte port místně pomocí
kubectl
aplikace a ujistěte se, že aplikace funguje správně pomocí:kubectl port-forward -n dev svc/azure-vote-front 8080:80
- Prohlédněte si aplikaci Azure Vote v prohlížeči
http://localhost:8080/
a ověřte, že se možnosti hlasování změnily na Karty a Mezery.
- Přesměrujte port místně pomocí
- Opakujte kroky 1 až 7 pro
stage
prostředí.
Nasazení je teď hotové.
Podrobný přehled všech kroků a technik implementovaných v pracovních postupech CI/CD používaných v tomto kurzu najdete v diagramu toku GitOps Azure DevOps.
Implementace CI/CD pomocí GitHubu
V tomto kurzu se předpokládá znalost GitHubu, GitHub Actions.
Fork application and GitOps repositories
Vytvoření forku úložiště aplikace a úložiště GitOps Pro účely tohoto kurzu použijte následující ukázková úložiště:
Úložiště aplikací arc-cicd-demo-src
- URL: https://github.com/Azure/arc-cicd-demo-src
- Obsahuje příklad aplikace Azure Vote, kterou nasadíte pomocí GitOps.
Úložiště GitOps arc-cicd-demo-gitops
- URL: https://github.com/Azure/arc-cicd-demo-gitops
- Funguje jako základ pro prostředky clusteru, které jsou součástí aplikace Azure Vote.
Připojení úložiště GitOps
Pokud chcete aplikaci průběžně nasazovat, připojte úložiště aplikací ke clusteru pomocí GitOps. Úložiště GitOps arc-cicd-demo-gitops obsahuje základní prostředky pro zprovoznění aplikace v clusteru arc-cicd-cluster .
Počáteční úložiště GitOps obsahuje pouze manifest , který vytvoří obory názvů pro vývoj a fázi odpovídající prostředím nasazení.
Připojení GitOps, které vytvoříte, automaticky:
- Synchronizujte manifesty v adresáři manifestu.
- Aktualizujte stav clusteru.
Pracovní postup CI/CD naplní adresář manifestu dalšími manifesty pro nasazení aplikace.
Vytvořte nové připojení GitOps k nově rozvětvovanému úložišti arc-cicd-demo-gitops na GitHubu.
az k8s-configuration flux create \ --name cluster-config \ --cluster-name arc-cicd-cluster \ --namespace cluster-config \ --resource-group myResourceGroup \ -u https://github.com/<Your organization>/arc-cicd-demo-gitops.git \ --https-user <Azure Repos username> \ --https-key <Azure Repos PAT token> \ --scope cluster \ --cluster-type connectedClusters \ --branch master \ --kustomization name=cluster-config prune=true path=arc-cicd-cluster/manifests
Zkontrolujte stav nasazení na webu Azure Portal.
- V případě úspěchu uvidíte v clusteru vytvořené obory
dev
názvů istage
obory názvů.
- V případě úspěchu uvidíte v clusteru vytvořené obory
Instalace Připojení oru GitOps
Přidejte úložiště GitOps Připojení or do úložišť Helm:
helm repo add gitops-connector https://azure.github.io/gitops-connector/
Nainstalujte konektor do clusteru:
helm upgrade -i gitops-connector gitops-connector/gitops-connector \ --namespace flux-system \ --set gitRepositoryType=GITHUB \ --set ciCdOrchestratorType=GITHUB \ --set gitOpsOperatorType=FLUX \ --set gitHubGitOpsRepoName=arc-cicd-demo-src \ --set gitHubGitOpsManifestsRepoName=arc-cicd-demo-gitops \ --set gitHubOrgUrl=https://api.github.com/repos/<Your organization> \ --set gitOpsAppURL=https://github.com/<Your organization>/arc-cicd-demo-gitops/commit \ --set orchestratorPAT=<GitHub PAT token>
Konfigurace fluxu pro odesílání oznámení do konektoru GitOps:
cat <<EOF | kubectl apply -f - apiVersion: notification.toolkit.fluxcd.io/v1beta1 kind: Alert metadata: name: gitops-connector namespace: flux-system spec: eventSeverity: info eventSources: - kind: GitRepository name: cluster-config - kind: Kustomization name: cluster-config-cluster-config providerRef: name: gitops-connector --- apiVersion: notification.toolkit.fluxcd.io/v1beta1 kind: Provider metadata: name: gitops-connector namespace: flux-system spec: type: generic address: http://gitops-connector:8080/gitopsphase EOF
Podrobnosti o instalaci najdete v úložišti gitOps Připojení oru.
Vytvoření tajných kódů GitHubu
Vytvoření tajných kódů úložiště GitHub
Tajný | Hodnota |
---|---|
AZURE_CREDENTIALS | Přihlašovací údaje pro Azure v následujícím formátu {"clientId":"GUID","clientSecret":"GUID","subscriptionId":"GUID","tenantId":"GUID"} |
AZ_ACR_NAME | Název Azure ACR, například arc-demo-acr |
MANIFESTS_BRANCH | master |
MANIFESTS_FOLDER | arc-cicd-cluster |
MANIFESTS_REPO | https://github.com/your-organization/arc-cicd-demo-gitops |
VOTE_APP_TITLE | Hlasovací aplikace |
AKS_RESOURCE_GROUP | Skupina prostředků AKS Potřebné pro automatizované testování. |
AKS_NAME | Název AKS Potřebné pro automatizované testování. |
PAT | Token PAT GitHubu s oprávněním k žádosti o přijetí změn do úložiště GitOps |
Vytvoření tajných kódů prostředí GitHubu
- Vytvořte
az-vote-app-dev
prostředí s následujícími tajnými kódy:
Tajný | Hodnota |
---|---|
ENVIRONMENT_NAME | Vývoj |
TARGET_NAMESPACE | dev |
- Vytvořte
az-vote-app-stage
prostředí s následujícími tajnými kódy:
Tajný | Hodnota |
---|---|
ENVIRONMENT_NAME | Fáze |
TARGET_NAMESPACE | stage |
Teď jste připraveni k nasazení do dev
prostředí a stage
prostředí.
Pracovní postup CI/CD Dev
Pokud chcete spustit pracovní postup CI/CD Dev, změňte zdrojový kód. V úložišti aplikace aktualizujte hodnoty v .azure-vote/src/azure-vote-front/config_file.cfg
souboru a nasdílete změny do úložiště.
Pracovní postup CI/CD Dev:
- Zajišťuje, že změna aplikace projde všemi automatizovanými kontrolami kvality nasazení.
- Provede jakékoli dodatečné ověření, které se nepodařilo dokončit v kanálu žádosti o přijetí změn.
- Ověří, že se image Dockeru změnila a nová image se nasdílí.
- Publikuje artefakty (značky imagí Dockeru, šablony manifestu, nástroje), které budou použity v následujících fázích CD.
- Nasadí aplikaci do vývojového prostředí.
- Generuje manifesty do úložiště GitOps.
- Vytvoří žádost o přijetí změn do úložiště GitOps ke schválení.
Vyhledejte žádost o přijetí změn vytvořenou kanálem do úložiště GitOps.
Ověřte změny v úložišti GitOps. Měli byste vidět tohle:
- Změny šablony Helm vysoké úrovně
- Manifesty Kubernetes nízké úrovně, které zobrazují základní změny požadovaného stavu. Flux nasadí tyto manifesty.
Pokud všechno vypadá dobře, schvalte a dokončete žádost o přijetí změn.
Po několika minutách flux změnu převezme a spustí nasazení.
Monitorujte stav potvrzení Gitu na kartě Historie potvrzení. Jakmile je
succeeded
,CD Stage
pracovní postup se spustí.Přesměrujte port místně pomocí
kubectl
aplikace a ujistěte se, že aplikace funguje správně pomocí:kubectl port-forward -n dev svc/azure-vote-front 8080:80
Zobrazte aplikaci Azure Vote v prohlížeči na adrese
http://localhost:8080/
.Hlasujte pro své oblíbené položky a připravte se na provedení některých změn v aplikaci.
Pracovní postup fáze CD
Pracovní postup fáze CD se spustí automaticky, jakmile Flux úspěšně nasadí aplikaci do vývojového prostředí a upozorní akce GitHubu prostřednictvím GitOps Připojení oru.
Pracovní postup fáze CD:
- Spustí orientační testy aplikací pro vývojové prostředí.
- Nasadí aplikaci do prostředí Stage.
- Generuje manifesty do úložiště GitOps.
- Vytvoří žádost o přijetí změn do úložiště GitOps ke schválení.
Jakmile se manifesty PR do prostředí Fáze sloučí a Flux úspěšně použije všechny změny, stav potvrzení Gitu se aktualizuje v úložišti GitOps. Nasazení je teď hotové.
Podrobný přehled všech kroků a technik implementovaných v pracovních postupech CI/CD používaných v tomto kurzu najdete v diagramu toku GitOps GitHubu.
Vyčištění prostředků
Pokud nebudete tuto aplikaci dál používat, odstraňte všechny prostředky pomocí následujícího postupu:
Odstraňte připojení konfigurace GitOps služby Azure Arc:
az k8s-configuration flux delete \ --name cluster-config \ --cluster-name arc-cicd-cluster \ --resource-group myResourceGroup \ -t connectedClusters --yes
Odstranění Připojení oru GitOps:
helm uninstall gitops-connector -n flux-system kubectl delete alerts.notification.toolkit.fluxcd.io gitops-connector -n flux-system kubectl delete providers.notification.toolkit.fluxcd.io gitops-connector -n flux-system
Další kroky
V tomto kurzu jste nastavili úplný pracovní postup CI/CD, který implementuje DevOps z vývoje aplikací prostřednictvím nasazení. Změny aplikace automaticky aktivují ověřování a nasazení, které jsou vyměněny ručními schváleními.
V našem koncepčním článku se dozvíte více o GitOps a konfiguracích s využitím Kubernetes s podporou Azure Arc.