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.
GitHub Actions nabízí flexibilitu při vytváření pracovního postupu životního cyklu automatizovaného vývoje softwaru. K nasazení do kontejnerů ze služby Azure Container Registry (ACR) do služby Azure Kubernetes Service (AKS) pomocí GitHub Actions můžete použít několik akcí Kubernetes.
Požadavky
- Účet Azure s aktivním předplatným. Pokud ho nemáte, vytvořte si účet zdarma.
- Účet GitHub. Pokud ho nemáte, zdarma se zaregistrujte.
- Pokud používáte GitHub Actions, musíte nakonfigurovat integraci mezi Azure a úložištěm GitHub. Pokud chcete nakonfigurovat integraci, přečtěte si téma Použití GitHub Actions pro připojení k Azure.
- Existující cluster AKS s připojeným ACR. Pokud ho nemáte, přečtěte si téma Ověřování pomocí ACR z AKS.
GitHub Actions pro AKS
Pomocí GiHub Actions můžete automatizovat pracovní postupy vývoje softwaru z GitHubu. Další informace najdete v tématu GitHub Actions pro Azure.
Následující tabulka uvádí dostupné akce pro AKS:
| Název | Popis | Další podrobnosti |
|---|---|---|
azure/aks-set-context |
Nastavte kontext cílového clusteru AKS pro použití jinými akcemi nebo pro spuštění příkazů kubectl. | azure/aks-set-context (nastavit kontext) |
azure/k8s-set-context |
Nastavte kontext cílového clusteru Kubernetes pro další akce nebo spuštění jakýchkoli příkazů kubectl. | azure/k8s-set-context |
azure/k8s-bake |
Vytvořte soubor manifestu pro nasazení pomocí Helmu, kustomize nebo kompose. | azure/k8s-bake |
azure/k8s-create-secret |
Vytvořte v clusteru Kubernetes obecný tajný kód nebo tajný kód registru Dockeru. | azure/k8s-create-secret |
azure/k8s-deploy |
Nasaďte manifesty do clusterů Kubernetes. | azure/k8s-deploy |
azure/k8s-lint |
Ověřte nebo lintujte soubory manifestu. | azure/k8s-lint |
azure/setup-helm |
Nainstalujte na spouštěč konkrétní verzi binárního souboru Helm. | azure/setup-helm |
azure/setup-kubectl |
Nainstalujte na spouštěč konkrétní verzi kubectl. | azure/setup-kubectl |
azure/k8s-artifact-substitute |
Aktualizujte značku nebo digest pro kontejnerové obrazy. | azure/k8s-artifact-substitute |
azure/aks-create-action |
Vytvořte cluster AKS pomocí Terraformu. | azure/aks-create-action |
azure/aks-github-runner |
Nastavte vlastní hostované agenty pro GitHub Actions. | azure/aks-github-runner |
azure/acr-build |
Vytváření kontejnerů pomocí ACR | azure/acr-build |
Použití GitHub Actions s AKS
Jako příklad můžete pomocí GitHub Actions nasadit aplikaci do clusteru AKS při každém nasdílení změn do úložiště GitHub. V tomto příkladu se používá aplikace Azure Vote .
Poznámka:
V tomto příkladu se k ověřování s clusterem ACR a AKS používá instanční objekt. Alternativně můžete nakonfigurovat Open ID Connect (OIDC) a aktualizovat azure/login akci tak, aby používala OIDC. Další informace najdete v tématu Nastavení přihlášení Azure pomocí autentizace OpenID Connect.
Forkovat a aktualizovat úložiště
Přejděte do úložiště Azure Vote a vyberte Fork.
Aktualizujte
azure-vote-all-in-one-redis.yaml, aby používal vaše ACR pro obrazazure-vote-front.<registryName>nahraďte názvem vašeho registru.... containers: - name: azure-vote-front image: <registryName>.azurecr.io/azuredocs/azure-vote-front:v1 ...Uložte aktualizovaný
azure-vote-all-in-one-redis.yamldo svého úložiště.
Vytváření tajných kódů
Pomocí příkazu vytvořte instanční objekt pro přístup ke skupině prostředků s rolí
Contributorpomocíaz ad sp create-for-rbac. Nahraďte<SUBSCRIPTION_ID>ID předplatného vašeho účtu Azure a<RESOURCE_GROUP>názvem skupiny prostředků, která obsahuje váš ACR.az ad sp create-for-rbac \ --name "ghActionAzureVote" \ --scope /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP> \ --role Contributor \ --json-authVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
{ "clientId": <clientId>, "clientSecret": <clientSecret>, "subscriptionId": <subscriptionId>, "tenantId": <tenantId>, ... }Přejděte do nastavení vašeho úložiště GitHub a vyberte Zabezpečení>Tajnosti a proměnné>Akce.
Pro každý tajný údaj vyberte Nový tajný údaj úložiště a zadejte jeho název a hodnotu.
Název tajného klíče Hodnota tajného klíče AZURE_CREDENTIALS Celý výstup JSON z az ad sp create-for-rbacpříkazu.služební principál Hodnota <clientId>.service_principal_password Hodnota <clientSecret>.odběr Hodnota <subscriptionId>.klient Hodnota <tenantId>.registr Název registru. úložiště azuredocs skupina zdrojů Název vaší skupiny prostředků cluster_name Název clusteru.
Další informace o vytváření tajných kódů naleznete v tématu Šifrované tajné kódy.
Vytvoření souboru akcí
V úložišti vytvořte
.github/workflows/main.ymla vložte následující obsah:name: build_deploy_aks on: push: paths: - "azure-vote/**" jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v3 - name: ACR build id: build-push-acr uses: azure/acr-build@v1 with: service_principal: ${{ secrets.service_principal }} service_principal_password: ${{ secrets.service_principal_password }} tenant: ${{ secrets.tenant }} registry: ${{ secrets.registry }} repository: ${{ secrets.repository }} image: azure-vote-front folder: azure-vote branch: master tag: ${{ github.sha }} - name: Azure login id: login uses: azure/login@v1.4.3 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Set AKS context id: set-context uses: azure/aks-set-context@v3 with: resource-group: '${{ secrets.resource_group }}' cluster-name: '${{ secrets.cluster_name }}' - name: Setup kubectl id: install-kubectl uses: azure/setup-kubectl@v3 - name: Deploy to AKS id: deploy-aks uses: Azure/k8s-deploy@v4 with: namespace: 'default' manifests: | azure-vote-all-in-one-redis.yaml images: '${{ secrets.registry }}.azurecr.io/${{ secrets.repository }}/azure-vote-front:${{ github.sha }}' pull-images: falseOddíl
onobsahuje událost, která akci aktivuje. V ukázkovém souboru se akce aktivuje při vložení změny doazure-voteadresáře.Oddíl
stepsobsahuje každou samostatnou akci:- Vycheckoutování zdrojového kódu používá akci GitHub Actions Checkout k naklonování úložiště.
- Sestavení ACR využívá akci sestavení Azure Container Registry k vytvoření obrazu a jeho nahrání do registru.
- Přihlášení k Azure používá akci přihlášení Azure k přihlášení k účtu Azure.
- Nastavení kontextu AKS používá akci Nastavení kontextu Azure AKS pro nastavení kontextu vašeho AKS clusteru.
- Nastavení kubectl používá Azure AKS Setup Kubectl Action k instalaci kubectl na váš spouštěč.
- Nasazení do AKS používá akci nasazení Azure Kubernetes k nasazení aplikace do clusteru Kubernetes.
Vložte soubor
.github/workflows/main.ymldo svého úložiště.Pokud chcete potvrdit, že akce funguje, aktualizujte
azure-vote/azure-vote/config_file.cfgnásledujícím obsahem.# UI Configurations TITLE = 'Azure Voting App' VOTE1VALUE = 'Fish' VOTE2VALUE = 'Dogs' SHOWHOST = 'false'Uložte aktualizovaný
azure-vote/azure-vote/config_file.cfgdo svého úložiště.V úložišti vyberte Akce a potvrďte, že je spuštěný pracovní postup. Pak ověřte, že pracovní postup má zelenou značku zaškrtnutí a aktualizovaná aplikace se nasadí do clusteru.
Další kroky
Projděte si následující úvodní pracovní postupy pro AKS. Další informace naleznete v tématu Použití úvodních pracovních postupů.