Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Implantando no Azure Kubernetes Service

Você pode fazer deploy de seu projeto no Azure Kubernetes Service (AKS) como parte de fluxos de trabalho para implantação contínua (CD).

Introdução

Este guia explica como usar GitHub Actions para criar e publicar um projeto no Azure Kubernetes Service.

Observação: Se os seus fluxos de trabalho de GitHub Actions tiverem de acessar recursos de um provedor de nuvem compatível com o OpenID Connect (OIDC), você poderá configurar seus fluxos de trabalho para efetuar a autenticção diretamente no provedor de nuvem. Isso permitirá que você pare de armazenar essas credenciais como segredos de longa duração e proporcione outros benefícios de segurança. Para obter mais informações, consulteSobre segurança fortalecida com OpenID Connect" e "Configurando OpenID Connect no Azure."

Pré-requisitos

Antes de criar seu fluxo de trabalho de GitHub Actions, primeiro você precisa concluir as etapas de configuração a seguir:

  1. Crie um cluster-alvo do AKS e um Azure Container Registry (ACR). Para obter mais informações, consulte "Início rápido: Implantar um cluster do AKS usando o portal do Azure - Azure Kubernetes Service" e "Início rápido - Criar registro no portal - Azure Container Registry" na documentação do Azure.

  2. Crie um segredo chamado AZURE_CREDENTIALS para armazenar suas credenciais do Azure. Para obter mais informações sobre como encontrar essa informação e estruturar o segredo, consulte a documentação da ação a açure/login.

Criar o fluxo de trabalho

Depois de preencher os pré-requisitos, você pode prosseguir com a criação do fluxo de trabalho.

O exemplo de fluxo de trabalho a seguir demonstra como criar e implantar um projeto no Azure Kubernetes Services quando o código for enviado por push para o seu repositório.

Na chave do fluxo de trabalho env, altere os seguintes valores:

  • AZURE_CONTAINER_REGISTRY para o nome do seu registro de contêiner
  • PROJECT_NAME para o nome do seu projeto
  • RESOURCE_GROUP para o grupo de recursos que contém seu cluster do AKS
  • CLUSTER_NAME para o nome do seu cluster do AKS

Este fluxo de trabalho usa o mecanismo de interpretação helm para a ação azure/k8s-bake. Se você usar o motor de interpretação helm de renderização, altere o valor de CHART_PATH para o caminho do seu arquivo de helm. Altere CHART_OVERRIDE_PATH para uma matriz de caminhos de arquivos sobrescritos. Se você usar um mecanismo de interpretação diferente, atualize os parâmetros de entrada enviados para a ação azure/k8s-bake.

YAML
# This workflow uses actions that are not certified by GitHub.
# São fornecidas por terceiros e regidas por
# termos de serviço, política de privacidade e suporte separados
# documentação.

name: Build and deploy to Azure Kubernetes Service

env:
  AZURE_CONTAINER_REGISTRY: MY_REGISTRY_NAME # set this to the name of your container registry
  PROJECT_NAME: MY_PROJECT_NAME              # set this to your project's name
  RESOURCE_GROUP: MY_RESOURCE_GROUP          # set this to the resource group containing your AKS cluster
  CLUSTER_NAME: MY_CLUSTER_NAME              # set this to the name of your AKS cluster
  REGISTRY_URL: MY_REGISTRY_URL              # set this to the URL of your registry
  # If you bake using helm:
  CHART_PATH: MY_HELM_FILE                   # set this to the path to your helm file
  CHART_OVERRIDE_PATH: MY_OVERRIDE_FILES     # set this to an array of override file paths

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: Azure Login
      uses: azure/login@89d153571fe9a34ed70fcf9f1d95ab8debea7a73
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}

    - name: Build image on ACR
      uses: azure/CLI@7378ce2ca3c38b4b063feb7a4cbe384fef978055
      with:
        azcliversion: 2.29.1
        inlineScript: |
          az configure --defaults acr=${{ env.AZURE_CONTAINER_REGISTRY }}
          az acr build -t  -t ${{ env.REGISTRY_URL }}/${{ env.PROJECT_NAME }}:${{ github.sha }}

    - name: Gets K8s context
      uses: azure/aks-set-context@4e5aec273183a197b181314721843e047123d9fa
      with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}
          resource-group: ${{ env.RESOURCE_GROUP }}
          cluster-name: ${{ env.CLUSTER_NAME }}
      id: login

    - name: Configure deployment
      uses: azure/k8s-bake@773b6144a3732e3bf4c78b146a0bb9617b2e016b
      with:
        renderEngine: 'helm'
        helmChart: ${{ env.CHART_PATH }}
        overrideFiles: ${{ env.CHART_OVERRIDE_PATH }}
        overrides: |     
          replicas:2
        helm-version: 'latest' 
      id: bake

    - name: Deploys application
    - uses: Azure/k8s-deploy@c8fbd76ededaad2799c054a9fd5d0fa5d4e9aee4
      with:
        manifests: ${{ steps.bake.outputs.manifestsBundle }}
        images: |
          ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.PROJECT_NAME }}:${{ github.sha }}
        imagepullsecrets: |
          ${{ env.PROJECT_NAME }}

Recursos adicionais

Os seguintes recursos também podem ser úteis: