Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste guia, você implanta um controlador do GitHub Actions altamente disponível e agentes auto-hospedados em execução no AKS (Serviço de Kubernetes do Azure). Os executores auto-hospedados usam compartilhamentos de arquivos do Azure SMB para armazenamento persistente.
Importante
O software de código aberto é mencionado em toda a documentação e amostras do AKS. O software que você implanta está excluído dos contratos de nível de serviço do AKS, garantia limitada e suporte do Azure. Ao usar tecnologia de código aberto junto com o AKS, consulte as opções de suporte disponíveis nas comunidades e mantenedores de projetos respectivos para desenvolver um plano.
A Microsoft assume a responsabilidade por criar os pacotes de código aberto que implantamos no AKS. Essa responsabilidade inclui ter propriedade completa do processo de criação, verificação, sinalização, validação e hotfix, junto com o controle sobre os binários em imagens de contêiner. Para obter mais informações, confira Gerenciamento de vulnerabilidades para o AKS e Cobertura de suporte do AKS.
O que é Consumo de Recursos Real (ARC)?
O ARC (Controlador do Executor de Ações) é um operador do Kubernetes que orquestra e dimensiona os executores auto-hospedados para o GitHub Actions. O ARC depende de volumes persistentes (PVs) para compartilhar informações de trabalho entre o pod executor e o pod de trabalho de contêiner. Para obter mais informações, consulte Sobre o Controller do Runner de Ações.
Por que usar ações auto-hospedadas do GitHub no AKS?
A auto-hospedagem de executores do GitHub Actions no AKS fornece às organizações maior controle, escalabilidade e segurança sobre sua infraestrutura de CI/CD. Em vez de depender dos executores hospedados no GitHub, que são compartilhados e temporários, os executores auto-hospedados oferecem:
- Ambientes personalizados: adapte os executores para corresponder a requisitos específicos de build, teste ou implantação.
- Ganhos de desempenho: aproveite o armazenamento persistente e o cache para reduzir os tempos de build e melhorar a confiabilidade.
- Eficiência de custo em escala: dimensione dinamicamente os executores em sua própria infraestrutura, otimizando para fluxos de trabalho frequentes ou de execução longa.
- Segurança e isolamento aprimorados: mantenha o controle total sobre a infraestrutura e os dados, o que é ideal para setores regulamentados ou cargas de trabalho confidenciais.
Casos de uso comuns
- Pipelines de CI/CD corporativos: para equipes que precisam de ambientes de build consistentes, seguros e escalonáveis.
- Grandes mono-repositórios ou Pipelines de ML: em que o cache ou a persistência de artefatos são críticos.
- Otimização de desempenho: usar compartilhamentos SMB premium dos Arquivos do Azure para reduzir a latência de metadados e aumentar a IOPS.
Pré-requisitos
- Este guia pressupõe uma compreensão básica dos principais conceitos do Kubernetes.
- Você precisa das funções internas do Azure de Proprietário ou Administrador de Acesso do Usuário em uma assinatura em sua conta do Azure.
Utilize o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Introdução ao Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Se você estiver executando no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga as etapas exibidas em seu terminal. Para obter outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar e gerenciar extensões com a CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
- Você precisa de uma conta ativa do GitHub. Consulte as informações de preços com base no controle do repositório.
- Você precisa dos seguintes recursos instalados:
- CLI do Azure versão 2.56 ou posterior.
- Extensão de pré-visualização do Serviço Azure Kubernetes (AKS).
- jq versão 1.5 ou posterior.
- kubectl versão 1.21.0 ou posterior.
- openssl versão 3.3.1 ou posterior.
- Visual Studio Code ou outro editor de código de sua escolha.
Processo de implantação
Neste guia, você aprenderá a:
- Use a CLI do Azure para criar um cluster AKS de várias zonas.
- Implante um compartilhamento de arquivos do Azure para usar em volumes persistentes do AKS.
- Instale o ARC (GitHub Actions Runner Controller) no AKS.
- Instale um conjunto de dimensionamento de executores ARC e monte o compartilhamento de arquivos no AKS.
- Execute um fluxo de trabalho de exemplo usando o GitHub Actions.
Arquitetura de implantação
Essa arquitetura de referência ilustra como implementar uma solução de executor auto-hospedado do GitHub Actions usando o AKS e o SMB (Compartilhamento de Arquivos do Azure). A solução permite que as organizações executem trabalhos de fluxo de trabalho do GitHub com segurança dentro de sua própria infraestrutura do Azure, mantendo o gerenciamento de armazenamento eficiente e a escalabilidade.
A arquitetura consiste em três componentes principais:
- Camada de integração do GitHub: conecta fluxos de trabalho de repositórios do GitHub à sua infraestrutura do Azure.
- Camada de orquestração do AKS: gerencia as instâncias do executor em contêineres e seu ciclo de vida.
- Camada de armazenamento: Fornece recursos de armazenamento persistentes e efêmeros para runners.
Camada de integração do GitHub
A camada de integração do GitHub conecta fluxos de trabalho de repositórios do GitHub à sua infraestrutura do Azure. Trabalhos de fluxo de trabalho são expedidos do GitHub por meio de api.github.com e githubusercontent.com para executores auto-hospedados.
Camada de orquestração de cluster do AKS
A camada de orquestração de cluster do AKS gerencia as instâncias do executor em contêineres e no seu ciclo de vida. O cluster é dividido em dois namespaces: arc-controller e arc-runners.
arc-controller gerencia a infraestrutura do executor e os ouvintes de trabalho.
arc-runners manipula segredos, controle de acesso e pods de executor. Os executores são conteinerizados, usam armazenamento efêmero e se conectam a volumes compartilhados e dedicados.
Camada de armazenamento
A camada de armazenamento de Compartilhamentos de Arquivos do Azure fornece compartilhamento de arquivos NuGet com acesso ReadWriteMany para dependências compartilhadas e armazenamento efêmero para executores, tudo apoiado por declarações de volume persistentes.
Próxima etapa
Contribuidores
A Microsoft mantém este artigo. Os seguintes colaboradores o escreveram originalmente:
- Jorge Arterio | Consultor sênior de nuvem
- Jeff Patterson | Gerente de Produto Principal
- Rena Shah | Gerente de Produto Sênior
- Shekhar Singh Sorot | Gerente de Produto 2
- Erin Schaffer | Desenvolvedora de Conteúdo 2