PostgreSQL em Kubernetes: funciona?

PostgreSQL em Kubernetes: funciona?

Bom, se tem uma coisa pela qual eu sempre torci o nariz é a utilização de bancos de dados relacionais sem soluções de microserviços. Quem conhece um pouco sabe que persistência em banco de dados é algo que precisa ser consistente e íntegro.

Mas eu conheço apenas banco de dados e muito pouco de microserviços, e imaginar todos aqueles pods subindo e descendo, sendo criados, recriados e deletados, para um DBA tradicionalista (não faço nem ideia se isso realmente existe), traz um certo desconforto que beira a um ataque de ansiedade que necessita de intervenção médica — brincadeira, mas talvez nem tanto.

Sou daqueles que acreditam que banco de dados deve permanecer em sua redoma consistente e segura, sem interrupções, com seus dados persistidos no disco mais performático e redundante possível. Mas é mal de DBA, com aquele instinto protetor de manter o que é hoje um dos recursos mais importantes da nossa era: os dados.

Mas claro…

Como dizem — temos que experimentar coisas novas. E também, como já dizia Bob Dylan:

“People are crazy and times are strange…” Opa, pera! Não é essa. É: “For the times, they are a-changin'”

Talvez as coisas realmente estejam mudando — e já há algum tempo. Toda essa introdução, com um pouco de opinião e música, é só pra dizer que, sim, PostgreSQL em Kubernetes funciona. E, que, há até uma solução Cloud Native para isso: o CloudNativePG, que foi um dos temas abordados na KubeCon 2024.

Mas afinal, o que é o CloudNativePG?

O CloudNativePG é um operador de código aberto criado para gerenciar clusters do PostgreSQL em ambientes Kubernetes. Ele automatiza todo o ciclo de vida de um cluster PostgreSQL, desde a implantação inicial até a manutenção contínua, integrado nativamente à API do Kubernetes — juro, não inventei, isso está na documentação deles.

Destacam-se como principais recursos:

  • Alta Disponibilidade: Utiliza a replicação nativa do PostgreSQL para garantir que, em caso de falha do nó primário, uma réplica seja promovida automaticamente, garantindo a continuidade do serviço.
  • Autopilot ou Piloto Automático — como preferir. Essa é uma funcionalidade que automatiza várias tarefas críticas dentro do cluster PostgreSQL em Kubernetes. Projetado para simplificar a administração, é ele que: inicia o failover da instância em caso de falha, gerencia réplicas e replicações, realiza o escalonamento automático de pods, auto-recuperação, backups, monitoramento e alertas.
  • Segurança e Certificados TLS: Suporta conexões TLS criptografadas em trânsito, garantindo uma camada adicional de segurança para as comunicações entre os serviços e o PostgreSQL.
  • Recuperação de Desastres: Oferece backup contínuo e aproveita a funcionalidade de recuperação point-in-time do PostgreSQL, permitindo a inicialização de um novo cluster a partir de um ponto específico no tempo.
  • Persistência de Dados — se não fosse por isso, eu nem teria falado sobre Kubernetes. O CloudNativePG gerencia PVCs de forma eficiente, assegurando que os dados do PostgreSQL sejam armazenados de maneira confiável e consistente.

Isso é só um breve resumo sobre essa solução, que é bastante interessante. Convenhamos, facilita a implementação de um cluster PostgreSQL em ambiente Kubernetes, proporcionando diversas funcionalidades que desempenham um papel importante na continuidade e disponibilidade de qualquer serviço. Vale a pena ganhar algumas horas aprofundando e testando todas as possibilidades.

 

 

 

 

Anterior Monitoramento de protocolo SNMP com Logstash
Próxima DeepSeek para Empresas: Como Implementar IA de Código Aberto e Reduzir Custos

About author

Você pode gostar também

Containers

Descubra como otimizar seu cluster Kubernetes com o plugin de rede Calico

Olá mundo DevOps! Nesse post irei mostrar como se comporta um cluster Kubernetes quando trabalhamos com nós de trabalho divididos em várias instâncias cloud como Amazon Web Services (AWS), Google

DevOps

Domine o Jenkins: Crie Pipelines eficientes com Jenkinsfile e Groovy

O Jenkinsfile é a maneira mais recomendada para criar Pipelines no Jenkins. Utilizando as melhores práticas, podemos colocar o arquivo na raiz de um repositório Git. Essa técnica nos permite

Infraestrutura TI

Guia prático: Configurando a fila Dead Letter Queue no Logstash

O Logstash é um pipeline de processamento de dados do lado do servidor de código aberto que ingere dados de várias fontes, transforma-os simultaneamente e os envia para seu “stash”