Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste guia, você implanta um controlador de Ações do GitHub altamente disponível e agentes auto-hospedados em execução no Serviço Kubernetes do Azure (AKS). Os executores auto-hospedados usam compartilhamentos de arquivos do SMB Azure 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 é excluído dos contratos de nível de serviço do AKS, da garantia limitada e do suporte do Azure. Ao usar a tecnologia de código aberto ao lado do AKS, consulte as opções de suporte disponíveis nas respetivas comunidades e mantenedores do projeto para desenvolver um plano.
A Microsoft assume a responsabilidade pela criação dos pacotes de código aberto que implantamos no AKS. Essa responsabilidade inclui ter a propriedade completa do processo de compilação, digitalização, assinatura, validação e correção rápida, juntamente com o controlo dos binários nas imagens de contentor. Para obter mais informações, consulte Gestão de vulnerabilidades para AKS e Cobertura de suporte AKS.
O que é o Actions Runner Controller (ARC)?
O Actions Runner Controller (ARC) é um operador do Kubernetes que orquestra e dimensiona executores auto-hospedados para GitHub Actions. O ARC depende de volumes persistentes (PVs) para compartilhar informações de trabalho entre o pod runner e o pod de trabalho do contêiner. Para obter mais informações, consulte Sobre o Actions Runner Controller.
Por que usar ações do GitHub auto-hospedadas no AKS?
Os self-hosted runners de GitHub Actions no AKS fornecem às organizações maior controle, escalabilidade e segurança sobre sua infraestrutura de CI/CD. Em vez de depender de corredores hospedados no GitHub, que são compartilhados e efêmeros, os corredores auto-hospedados oferecem:
- Ambientes personalizados: você pode adaptar os runners para corresponder a requisitos específicos de compilação, teste ou implantação.
- Ganhos de desempenho: aproveite o armazenamento persistente e o cache para reduzir os tempos de compilação e melhorar a confiabilidade.
- Eficiência de custos em escala: dimensione dinamicamente os executores dentro da sua própria infraestrutura, para otimização de fluxos de trabalho frequentes ou de execução prolongada.
- Segurança aprimorada e isolamento: mantenha controle total sobre a infraestrutura e os dados, o que é ideal para setores regulamentados ou cargas de trabalho confidenciais.
Casos comuns de utilização
- Pipelines de CI/CD corporativos: para equipes que precisam de ambientes de compilação consistentes, seguros e escaláveis.
- Grandes monorepos ou pipelines de ML: onde o armazenamento em cache ou a persistência de artefatos é crítica.
- Otimização de desempenho: usando compartilhamentos SMB premium do Azure Files para reduzir a latência de metadados e aumentar o IOPS.
Pré-requisitos
- Este guia pressupõe uma compreensão básica dos principais conceitos do Kubernetes.
- Você precisa das funções Proprietário ou Administrador de Acesso de Utilizador e Colaborador nas funções internas do Azure em uma assinatura na sua conta do Azure.
Utilize o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale o CLI do Azure. Se estiver a usar Windows ou macOS, considere executar o Azure CLI num contentor Docker. Para obter mais informações, consulte 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 os passos exibidos no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão do Azure CLI na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para descobrir 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 no GitHub. Consulte as informações de preços com base no controlo do seu repositório.
- Você precisa dos seguintes recursos instalados:
Processo de implantação
Neste guia, você aprenderá a:
- Use a CLI do Azure para criar um cluster AKS multizona.
- Implante um compartilhamento de arquivos do Azure para usar em volumes persistentes do AKS.
- Instale o GitHub Actions Runner Controller (ARC) no AKS.
- Instale um conjunto de escala de corredores ARC e monte o compartilhamento de arquivos no AKS.
- Execute um fluxo de trabalho de exemplo usando as Ações do GitHub.
Arquitetura de implantação
Esta arquitetura de referência ilustra como implementar uma solução de runner auto-hospedada do GitHub Actions usando AKS e Azure File Share (SMB). A solução permite que as organizações executem trabalhos de fluxo de trabalho do GitHub com segurança em sua própria infraestrutura do Azure, mantendo o gerenciamento e a escalabilidade eficientes do armazenamento.
A arquitetura consiste em três componentes principais:
- Camada de integração do GitHub: conecta fluxos de trabalho dos repositórios do GitHub à sua infraestrutura do Azure.
- Camada de orquestração AKS: gerencia as instâncias do corredor em contêineres e seu ciclo de vida.
- Camada de armazenamento: fornece recursos de armazenamento persistentes e efêmeros para corredores.
Camada de integração do GitHub
A camada de integração do GitHub conecta fluxos de trabalho dos repositórios do GitHub à sua infraestrutura do Azure. Os trabalhos de fluxo de trabalho são despachados do GitHub via api.github.com e githubusercontent.com para corredores auto-hospedados.
Camada de orquestração do cluster AKS
A camada de orquestração do cluster AKS gere as instâncias de execução em contentores e o seu ciclo de vida. O cluster é dividido em dois namespaces: arc-controller e arc-runners.
arc-controller gerencia a infraestrutura do corredor e os ouvintes de trabalho.
arc-runners lida com segredos, controle de acesso e pods de corredor. Os corredores 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 temporário para executores, todos apoiados por declarações de volume persistentes.
Próximo passo
Contribuidores
A Microsoft mantém este artigo. Os seguintes colaboradores escreveram-no originalmente:
- Jorge Arterio | Advogado Sénior de Cloud
- Jeff Patterson: Gerente de Produto Principal
- Rena Shah | Gerente de Produto Senior
- Shekhar Singh Sorot | Gerente de Produto 2
- Erin Schaffer | Desenvolvedora de Conteúdo 2