13 de maio de 20264 min de leitura

Construindo uma plataforma Cloud Native do zero com Kairos, k0rdent e bindy

Erick Bourgeois

Cloud Native Computing Foundation

Banner - Construindo uma plataforma Cloud Native do zero com Kairos, k0rdent e bindy

Construindo uma plataforma Cloud Native do zero com Kairos, k0rdent e bindy

Este artigo detalha a estratégia de engenharia de plataforma da RBC Capital Markets para gerenciar 50+ clusters Kubernetes em ambientes híbridos e regulados. A solução centraliza-se em infraestrutura imutável (Kairos), orquestração de ciclo de vida de clusters (k0rdent) e automação de DNS nativa (bindy). A conclusão principal é que a unificação de operações via modelos declarativos, versionados em Git, elimina o drift de configuração e garante conformidade contínua, transformando a infraestrutura em código real e auditável.

Como compartilhamos anteriormente em nosso post sobre FluxCD, a RBC Capital Markets iniciou uma jornada deliberada para modernizar nossa plataforma Kubernetes. O GitOps com FluxCD nos forneceu uma fundação sólida de deployment. No entanto, ao escalar para mais de 50 clusters entre ambientes on-premises VMware e multi-cloud, enfrentamos desafios que ferramentas de mercado não resolviam isoladamente: como gerenciar o lifecycle dos clusters, garantir que cada node seja imutável e integrar o service discovery do Kubernetes com DNS corporativo sem filas de tickets.

O desafio: Engenharia de plataforma em ambiente regulado

Gerenciar 50+ clusters não é apenas um desafio operacional, mas de compliance (SOX, PCI-DSS, Basel III). Problemas como nodes "flocos de neve" (nodes únicos, mal documentados), drift de configuração e registros DNS manuais não são aceitáveis. Identificamos três lacunas principais:

  1. Node configuration drift: Nodes baseados em VMs que eram alterados manualmente via patches e perdiam a previsibilidade.
  2. Cluster provisioning: O provisionamento manual levava dias, sem uma única fonte da verdade.
  3. DNS integration: A dependência da equipe de rede para cada novo endpoint de ingress criava gargalos e audit trails fora do fluxo GitOps.

Kairos: OS imutável para nodes de confiança

O primeiro pilar foi a imutabilidade. O Kairos, projeto Sandbox da CNCF, permite que cada node inicialize a partir de uma imagem OCI versionada. A configuração do nó — chaves SSH, autenticação SSSD/AD e registro no Kubernetes — é definida via cloud-config em YAML, tratado pelo FluxCD.

Um pipeline CI/CD para imagens de sistema

Tratamos nossas imagens Kairos como imagens de container: cada alteração dispara um pipeline no GitHub Actions que builda a imagem, executa testes de integração em VMs reais e publica uma tag OCI apenas após a aprovação.

Como a automação de VMs com VirtRigaud elimina o drift operacional?

Para o provisionamento, utilizamos o VirtRigaud, um operator Kubernetes que fornece gerenciamento declarativo de VMs. O provisioning de um nó Kairos torna-se semanticamente idêntico ao deploy de uma carga de trabalho: um pull request aprovado e reconciliado automaticamente.

k0rdent: O lifecycle de cluster como plataforma

O k0rdent, construído sobre a Cluster API (CAPI), permite modelar clusters como CRDs. Combinado com o k0s (distribuição Kubernetes de binário único) e k0smotron, conseguimos expressar toda nossa topologia de forma declarativa.

Essa abordagem permite:

  • Cluster upgrades: Simplesmente um PR alterando a versão no manifesto.
  • Cluster templates: Padronização institucional para diferentes times (trading, risco), reduzindo o tempo de criação de dias para minutos.

bindy: Operações DNS nativas do Kubernetes

O bindy é um operator desenvolvido em Rust que gerencia zonas e registros DNS como recursos de primeira classe (CRDs) no Kubernetes. Ele atua como o elo entre o GitOps e sistemas de DDI legados (como Infoblox).

Ao usar o bindy, registros DNS são criados automaticamente via FluxCD conforme o serviço é provisionado, transformando DNS de um gargalo manual em parte integrante do ciclo de vida da aplicação.

Como os três componentes se encaixam?

A coerência da plataforma reside no princípio: tudo é código, reconciliado continuamente.

  • Git (Fonte da verdade)
    • FluxCD (Motor de reconciliação)
      • k0rdent / CAPI: Lifecycle de clusters.
      • Kairos cloud-config: Configuração imutável de nodes.
      • bindy CRDs: Registros DNS orquestrados.

Desafios e aprendizados

  1. Integração corporativa demanda paciência: SSSD, caixas de certificados corporativos (CA) e NetworkManager exigem atenção dobrada em ambientes imutáveis.
  2. Shift-left de responsabilidade: Quando o provisioning vira um pull request, a governança dos templates torna-se o ponto crítico de segurança.
  3. Maturidade de Rust: O uso de kube-rs é excelente para performance, mas exige design cuidadoso para arquiteturas multi-controller.

Artigo originalmente publicado por Erick Bourgeois, Director & Head of Kubernetes Platform Engineering, RBC Capital Markets em Cloud Native Computing Foundation.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset