Implantar o GitHub Actions altamente disponível no AKS (Serviço de Kubernetes do Azure) usando a visão geral dos Arquivos do Azure

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.

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.

Captura de tela do diagrama de arquitetura do GitHub Actions com arquivos do Azure no AKS.

A arquitetura consiste em três componentes principais:

  1. Camada de integração do GitHub: conecta fluxos de trabalho de repositórios do GitHub à sua infraestrutura do Azure.
  2. Camada de orquestração do AKS: gerencia as instâncias do executor em contêineres e seu ciclo de vida.
  3. 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