Neste post, vamos mostrar como implantar o MongoDB em um ambiente Kubernetes usando o gráfico Helm bitnami/mongodb. Seguindo os passos descritos, você aprenderá a configurar e gerenciar o MongoDB para uma implantação simples e escalável em um cluster Kubernetes.
Pré-requisitos
Antes de começar a implantação, certifique-se de ter o seguinte:
- Um cluster Kubernetes configurado e em execução
- Helm instalado (versão 3 ou superior)
- Permissões para implantar recursos no seu cluster Kubernetes
Instalando o Helm
Se o Helm ainda não estiver instalado, siga estas etapas para instalá-lo.
Instalar via Script (Linux e macOS)
Execute o seguinte comando para instalar o Helm:
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Instalar via Gerenciador de Pacotes
Por exemplo, você pode instalar o Helm com o Homebrew:
brew install helm
Adicionando o Repositório Helm Bitnami
A Bitnami oferece uma ampla variedade de gráficos Helm. Você pode adicionar o repositório com o seguinte comando:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
Implantando o MongoDB
Você pode implantar o MongoDB usando o gráfico Helm da Bitnami com o comando:
helm install my-mongodb bitnami/mongodb
Configuração Personalizada
Para personalizar a implantação do MongoDB, você pode criar um arquivo values.yaml e especificar suas configurações. Aqui está um exemplo de configuração adaptada a necessidades específicas:
# Configurações de autenticação
auth:
enabled: true
rootPassword: changeme
username: root
password: changeme
database: ryze
# Configurações de armazenamento persistente
persistence:
enabled: true
size: 8Gi
# Desativar conjunto de réplicas
replicaSet:
enabled: false
Explicação das Configurações
Autenticação (auth):
- enabled: Habilita a autenticação.
- Root Password: Define a senha do usuário root (changeme).
- username: Cria um usuário regular (root).
- password: Senha para o usuário regular (changeme).
- database: O banco de dados padrão a ser criado (ryze).
Armazenamento Persistente (persistence):
- enabled: Habilita o armazenamento persistente.
- size: Define o tamanho do armazenamento (8Gi).
Conjunto de Réplicas (replicaSet):
- enabled: Desativa a implantação de conjunto de réplicas (configurado como false para uma instância única).
Implantando com Arquivo values.yaml
Salve a configuração acima em um arquivo values.yaml e implante o MongoDB usando este arquivo:
helm install my-mongodb -f values.yaml bitnami/mongodb
Verificando a Implantação
Para verificar se o Pod do MongoDB está funcionando corretamente:
kubectl get pods -l app.kubernetes.io/name=mongodb
A saída deve ser algo assim:
NAME READY STATUS RESTARTS AGE
my-mongodb-0 1/1 Running 0 2m
Como configuramos como uma instância única, apenas o nó primário será exibido, sem conjuntos de réplicas.
Conectando ao MongoDB
Para se conectar à instância do MongoDB implantada, primeiro obtenha o IP do serviço:
kubectl get svc my-mongodb
Depois, conecte-se usando o cliente MongoDB:
mongo –host <SERVICE_IP> -u root -p changeme –authenticationDatabase ryze
Você será solicitado a inserir a senha (changeme) para completar a conexão.
Gerenciando e Atualizando o MongoDB
Atualizando o MongoDB
Para atualizar o MongoDB para uma versão mais recente do gráfico Helm, use o seguinte comando:
helm repo update
helm upgrade my-mongodb -f values.yaml bitnami/mongodb
Monitoramento e Logs
Para monitorar o MongoDB ou visualizar logs, use o comando:
kubectl logs my-mongodb-0
Isso fornece acesso aos logs do MongoDB, já que o monitoramento foi desativado nesta configuração de exemplo.
Estratégia de Backup
Como a funcionalidade de backup está desativada nesta configuração, recomenda-se estabelecer uma estratégia de backup manual. Você pode usar snapshots de Volumes Persistentes do Kubernetes ou integrar uma ferramenta de backup externa para garantir backups regulares dos dados.
Conclusão
Implantar o MongoDB em um ambiente Kubernetes é simples ao usar o gráfico Helm da Bitnami. Este guia demonstra como realizar uma implantação simples de instância única, adequada para ambientes onde alta disponibilidade e escalabilidade não são preocupações imediatas. Com gerenciamento adequado, o MongoDB pode operar de forma confiável em seu cluster Kubernetes.
Referências:
- Gráfico Helm MongoDB da Bitnami
- Documentação Oficial do Helm
- Documentação Oficial do Kubernetes
- Documentação Oficial do MongoDB