Sobre o projeto
CloudNativePG (CNPG) é um operador open-source que executa e gerencia bancos de dados PostgreSQL no Kubernetes, cobrindo todo o ciclo operacional desde a implantação inicial até a manutenção contínua. É um projeto Sandbox da Cloud Native Computing Foundation (CNCF), originalmente construído e patrocinado pela EDB, e lançado sob a licença Apache-2.0.
Em vez de depender de ferramentas externas de alta disponibilidade como Patroni, repmgr ou Stolon, o operador se integra diretamente à API do Kubernetes e segue o padrão de operador convencional: o estado desejado de um cluster PostgreSQL é declarado em um recurso personalizado Cluster, e o controlador reconcilia continuamente o estado real com ele. O status do cluster é exposto por esse mesmo recurso, podendo ser inspecionado com ferramentas comuns do Kubernetes. Os contêineres de aplicação seguem um modelo de infraestrutura imutável, com atualizações aplicadas por substituição, e não por patch, dos contêineres.
As operações automatizadas incluem:
- Gerenciamento de failover: quando a instância primária falha, o operador elege uma nova primária, atualiza o status do cluster e orquestra a transição.
- Escalonamento de réplicas de leitura: alterar a contagem desejada de réplicas provisiona ou remove volumes persistentes, secrets e config maps, gerenciando a replicação por streaming.
- Atualizações de serviço: o Kubernetes permanece como a única fonte de verdade, mantendo os endpoints do serviço PostgreSQL atualizados.
- Atualizações rolling: atualizações de imagem são aplicadas primeiro nos pods de réplica, seguidas por uma troca controlada da primária.
Além do recurso Cluster, o operador gerencia outros recursos do Kubernetes, incluindo Backup, ScheduledBackup, Database, Pooler, Publication, Subscription, ImageCatalog e ClusterImageCatalog, oferecendo suporte a agendamento declarativo de backups, pooling de conexões, objetos de replicação lógica e catálogos de imagens.
O escopo do projeto é deliberadamente restrito: ele visa apenas Kubernetes puro e PostgreSQL puro, não oferecendo suporte a outros bancos de dados (como MariaDB) ou forks do PostgreSQL (recursos de forks são considerados apenas se integráveis como extensões ou frameworks plugáveis), e pode ser estendido por meio da interface de plugin CNPG-I. Sua missão declarada é aumentar a adoção do PostgreSQL no Kubernetes, tornando-o parte dos processos de desenvolvimento e da automação de CI/CD orientada por GitOps.
O projeto publica um guia de início rápido, documentação completa, um roadmap, um FAQ e um blog; realiza reuniões abertas da comunidade, mantém uma lista pública de adotantes e oferece opções de suporte comercial. Ele foi apresentado em múltiplos eventos KubeCon com temas que incluem recuperação de desastres para bancos de dados muito grandes, escalabilidade vertical com armazenamento Kubernetes, consistência baseada em quorum durante mudanças de cluster e migrações de bancos de dados com quase zero tempo de inatividade.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.