GitHub lança Actions Runner Controller 0.15.0 com foco em confiabilidade em escala
Aprofundamento CEVIU
Aprofundamento
O ARC é um operador Kubernetes que escala runners self-hosted do GitHub Actions conforme a demanda de workflows. A versão 0.15.0, lançada em 1º de outubro segundo a fonte, ataca o custo de manter os recursos sincronizados. Os controllers agora usam requisições de patch em vez de updates completos, o que reduz o tamanho dos payloads. A agregação de status dos runners para EphemeralRunnerSet e AutoscalingRunnerSet passou para as métricas, e isso corta o número de atualizações de status enviadas à API do Kubernetes.
Há também ajustes de controle: filtro de eventos para evitar reconciliações desnecessárias, rate limit do cliente de API do listener configurável por queries por segundo e burst, e concorrência de reconciliação ajustável por flags max-concurrent-reconciles, global ou por controller. Upgrades de patch atualizam os recursos in place, mantendo o mapeamento um para um entre autoscaling runner sets e ephemeral runner sets. O terminationGracePeriodSeconds ficou configurável e alinhado ao timeout de graceful shutdown do controller manager. O ARC ainda consegue registrar de novo um scale set quando o registro correspondente some do serviço do GitHub Actions, e apaga runners efêmeros mais rápido quando o pod sai com sucesso, pulando uma checagem extra no servidor.
Por que isso importa
Para quem opera o ARC como CI compartilhado, a leitura é que o gargalo deixa de ser só a capacidade do cluster e passa a ser o próprio controller. Menos patch e menos status na API aliviam o control plane. Mas subir a concorrência sem testar pode aumentar a pressão sobre Kubernetes e GitHub, então vale validar com o padrão real de carga antes de mexer nas flags.
Perguntas frequentes
O que é o Actions Runner Controller (ARC)?
É um operador Kubernetes que escala runners self-hosted do GitHub Actions de acordo com a demanda. Ele cria e remove instâncias de runner conforme os jobs chegam e terminam. Assim a organização controla o ambiente de build sem manter um pool fixo.
O que muda na API do Kubernetes com o ARC 0.15.0?
Os controllers passam a enviar requisições de patch, que têm payload menor que um update completo. A agregação de status dos runners foi para as métricas, o que reduz as atualizações de status enviadas à API. Os controllers também filtram eventos para evitar reconciliação desnecessária.
Aumentar a concorrência de reconciliação sempre melhora o desempenho?
Não. Mais concorrência pode elevar a taxa de chamadas do controller ao Kubernetes e aos serviços do GitHub. A recomendação é validar a mudança contra o padrão de carga e a capacidade do cluster.
Como ficam os upgrades e o desligamento do controller?
Upgrades de versão patch atualizam os recursos in place, com menos disrupção. O terminationGracePeriodSeconds agora é configurável e alinhado ao timeout de graceful shutdown do controller manager. Isso dá mais previsibilidade em restarts e upgrades.
Fontes
- infoq.comfonte original
- Categoria
- CEVIU DevOps
- Publicado
- 23 de outubro de 2026
- Editoria
- CEVIU DevOps

