Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Learn why MongoDB was selected as a leader in the 2024 Gartner® Magic Quadrant™
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Conectoreschevron-right

Implementando o MongoDB Enterprise Kubernetes Operator no Google Cloud

Arek Borucki6 min read • Published Jan 13, 2023 • Updated Jan 13, 2023
KubernetesConectores
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Este artigo faz parte de uma série de três partes sobre a implantação do MongoDB em vários clusters Kubernetes usando os operadores.
Implementar e gerenciar o MongoDB no Kubernetes pode ser uma tarefa difícil. Isso requer a criação e a configuração de vários recursos do Kubernetes, como volumes persistentes, serviços e implantações, o que pode consumir tempo e exigir uma compreensão profunda dos produtos Kubernetes e MongoDB. Além disso, tarefas como escalabilidade, backups e atualizações devem ser realizadas manualmente, o que pode ser complexo e propenso a erros. Isso pode afetar a confiabilidade e a disponibilidade da implantação do MongoDB e pode exigir intervenção manual frequente para mantê-la funcionando sem problemas. Além disso, pode ser difícil garantir que sua implementação do MongoDB esteja sendo executada no estado desejado e seja capaz de se recuperar automaticamente de falhas.
Felizmente, o MongoDB oferece operadores, que são extensões de software da API do Kubernetes que usam recursos personalizados para gerenciar aplicativos e seus componentes. O MongoDB Operator traduz o conhecimento humano de criar uma instância MongoDB em um método dimensionável, repetível e padronizado, e aproveita os recursos do Kubernetes para operar o MongoDB para você. Isso facilita a implementação e o gerenciamento do MongoDB no Kubernetes, fornecendo recursos e funcionalidades avançadas para executar o MongoDB em ambientes nativos da cloud.
Há três operadores principais do Kubernetes disponíveis para implantar e gerenciar o MongoDB de forma tranquila e eficiente em ambientes do Kubernetes:
  • O MongoDB Community Kubernetes Operator é um operador de código aberto que está disponível gratuitamente e pode ser usado para implantar e gerenciar o MongoDB Replica Set em qualquer cluster Kubernetes. Ele fornece funcionalidade básica para implantar e gerenciar MongoDB, mas não inclui alguns dos recursos mais avançados disponíveis nos operadores Enterprise e Atlas.
  • O MongoDB Enterprise Kubernetes Operator é um operador comercial do Kubernetes incluído na assinatura do MongoDB Enterprise. Ele permite que você implemente e gerencie facilmente qualquer tipo de sistema do MongoDB (standalone, conjunto de réplicas, cluster fragmentado) no Kubernetes, fornecendo recursos e funcionalidades avançadas para implantar e gerenciar o MongoDB em ambientes nativos da cloud.
  • O MongoDB Atlas Kubernetes Operator é um operador disponível como parte do serviço Atlas. Ele permite implementar e gerenciar rapidamente o MongoDB na plataforma de nuvem do Atlas, fornecendo recursos como provisionamento e dimensionamento automáticos de clusters do MongoDB, integração com recursos e serviços do Atlas e backups e restaurações automáticos. Você pode saber mais sobre esse operador em nosso blog post sobre implantação de aplicativos no Kubernetes.
Este artigo se concentrará no Operador Empresarial. O MongoDB Enterprise Kubernetes Operator se integra perfeitamente a outros recursos e serviços do MongoDB Enterprise, como o MongoDB Ops Manager (que também pode ser executado no Kubernetes) e o MongoDB Cloud Manager. Isso permite que você monitore, faça backup, atualize e gerencie facilmente suas implementações do MongoDB a partir de um único local centralizado e fornece acesso a uma variedade de ferramentas e serviços para gerenciar, proteger e otimizar sua implementação.

Operador de Kubernetes do MongoDB Enterprise

O MongoDB Enterprise Kubernetes Operator automatiza o processo de criação e gerenciamento de instâncias do MongoDB de maneira escalável, repetível e padronizada. Ele usa a API e as ferramentas do Kubernetes para lidar com os eventos do ciclo de vida de um cluster MongoDB, incluindo o provisionamento de recursos de armazenamento e computação, configuração de conexões de rede, configuração de usuários e alterações nessas configurações conforme necessário. Isso ajuda a facilitar o trabalho de configurar e gerenciar manualmente aplicativos com estado, como bancos de dados, no ambiente Kubernetes.
O Operador Kubernetes gerencia os eventos típicos do ciclo de vida de um cluster MongoDB: provisionamento de armazenamento e capacidade de computação, configuração de conexões de rede, configuração de usuários e alteração dessas configurações conforme a necessidade.

Definições de recursos personalizados do Kubernetes

CRDs do Kubernetes (definições de recursos personalizados) é um recurso no Kubernetes que permite aos usuários criar e gerenciar recursos personalizados em seus clusters do Kubernetes. Os recursos personalizados são extensões da API do Kubernetes que permitem aos usuários definir seus próprios tipos de objeto e comportamentos associados. Com os CRDs, você pode criar recursos personalizados que se comportam como recursos integrados do Kubernetes, como StatefulSets, Implantações, Pods e Serviços, e gerenciá-los usando as mesmas ferramentas e interfaces. Isso permite que você estenda a funcionalidade do Kubernetes e adapte-a às suas necessidades e requisitos específicos.
O MongoDB Enterprise Operator fornece atualmente os seguintes recursos personalizados para implantar o MongoDB no Kubernetes:
O diagrama a seguir descreve como o Kubernetes Operator se comporta se você fizer alterações em um cluster fragmentado:

Instalando e configurando o Enterprise Kubernetes Operator

Para este tutorial, precisaremos das seguintes ferramentas: 

criação de cluster Kubernetes do GKE 

Para começar, vamos criar um cluster Kubernetes em um novo projeto. Iremos utilizar GKE Kubernetes. Uso este script para criar o cluster. O cluster terá quatro nós de trabalho e atuará como Ops Manager e MongoDB Enterprise Operators Kubernetes Cluster.
1CLUSTER_NAME=master-operator
2ZONE=us-south1-a
3K8S_VERSION=1.23
4MACHINE=n2-standard-2
5gcloud container clusters create "${CLUSTER_NAME}" \
6 --zone "${ZONE}" \
7 --machine-type "${MACHINE}" --cluster-version="${K8S_VERSION}" \
8 --disk-type=pd-standard --num-nodes 4
Agora que o cluster foi criado, precisamos obter as credenciais.
1gcloud container clusters get-credentials "${CLUSTER_NAME}" \
2 --zone "${ZONE}"
Exiba o cluster recém-criado.
1gcloud container clusters list
2
3NAME                LOCATION       MASTER_VERSION    NUM_NODES  STATUS
4master-operator     us-south1-a    1.23.14-gke.1800      4      RUNNING
1kubectx
Você deverá ver seu cluster listado aqui. Certifique-se de que seu contexto esteja definido como cluster mestre.
1kubectx $(kubectx | grep "master-operator" | awk '{print $1}')
Podemos iniciar a instalação do MongoDB Kubernetes Operator em nosso cluster Kubernetes recém-criado! 

Operador de Kubernetes empresarial 

Podemos instalar o MongoDB Enterprise Operator com um comando Helm de linha única. A primeira etapa é adicionar o repositórioMongoDB Helm Charts for Kubernetes ao Helm.
1helm repo add mongodb https://mongodb.github.io/helm-charts
Pretendo criar o operador em um namespace Kubernetes separado e dedicado (o operador usa o namespacedefault por padrão). Isso me permitirá isolar o operador e quaisquer recursos que ele criar de outros recursos em meu cluster. O seguinte comando instalará os CRDs e o Operador Enterprise no namespace domongodb-operator . O operador assistirá apenas ao namespacemongodb-operator . Você pode ler mais sobre como configurar o operador para observar mais namespaces na documentação oficial do MongoDB.
Comece criando o namespacemongodb-operator .
1NAMESPACE=mongodb-operator
2kubectl create ns "${NAMESPACE}"
Instale o MongoDB Kubernetes Operator e configure-o para observar apenas o namespacemongodb-operator.
1HELM_CHART_VERSION=1.16.3
2helm install enterprise-operator mongodb/enterprise-operator \
3 --namespace "${NAMESPACE}" \
4 --version="${HELM_CHART_VERSION}" \
5 --set operator.watchNamespace="${NAMESPACE}"
O namespace foi criado e o operador está em execução! Você pode ver isso listando os pods no namespace recém-criado.
1kubectl get ns
2
3NAME               STATUS   AGE
4default            Active   4m9s
5kube-node-lease    Active   4m11s
6kube-public        Active   4m12s
7kube-system        Active   4m12s
8mongodb-operator   Active   75s
1kubectl get po -n "${NAMESPACE}"
2
3NAME                                    READY   STATUS   RESTARTS   AGE
4mongodb-enterprise-operator-649bbdddf5   1/1    Running   0         7m9s
Você pode ver que o gráfico do leme está sendo executado com esse comando.
1helm list --namespace "${NAMESPACE}"
2
3NAME                NAMESPACE     REVISION       VERSION
4enterprise-operator mongodb-operator 1 deployed enterprise-operator-1.17.2

Verifique a instalação.

Você pode verificar se a instalação foi bem-sucedida e está em execução com o seguinte comando.
1helm get manifest enterprise-operator --namespace "${NAMESPACE}"
Vamos exibir as definições de recursos personalizados instaladas na etapa acima no namespace observado.
1kubectl -n "${NAMESPACE}" get crd | grep -E '^(mongo|ops)'
2
3mongodb.mongodb.com                              2022-12-30T16:17:07Z
4mongodbmulti.mongodb.com                         2022-12-30T16:17:08Z
5mongodbusers.mongodb.com                         2022-12-30T16:17:09Z
6opsmanagers.mongodb.com                          2022-12-30T16:17:09Z
Todas as contas de serviço necessárias foram criadas no namespace monitorado.
1kubectl -n "${NAMESPACE}" get sa | grep -E '^(mongo)'
2
3mongodb-enterprise-appdb           1         36s
4mongodb-enterprise-database-pods   1         36s
5mongodb-enterprise-operator        1         36s
6mongodb-enterprise-ops-manager     1         36s
Valide se o Operador Kubernetes foi instalado corretamente executando o seguinte comando e verifique a saída.
1kubectl describe deployments mongodb-enterprise-operator -n \
2 "${NAMESPACE}"
Finalmente, verifique novamente os namespaces assistidos.
1kubectl describe deploy mongodb-enterprise-operator -n "${NAMESPACE}" | grep WATCH
2
3   WATCH_NAMESPACE:               mongodb-operator
O MongoDB Enterprise Operator agora está em execução no seu cluster GKE.

Kubernetes Operator do MongoDB Atlas

vale a pena mencionar outro operador aqui --- um novo serviço que integra os recursos do Atlas com o seu cluster Kubernetes. O Atlas pode ser implantado em ambientes com várias nuvens, incluindo o GCP. O Atlas Kubernetes Operator permite que você implemente e gerencie aplicativos nativos da nuvem que exigem serviços de dados em um único plano de controle com integração segura de plataformas corporativas.
Esse operador é responsável por gerenciar recursos no Atlas usando recursos personalizados do Kubernetes, garantindo que as configurações de projetos, implementações de banco de dados e usuários de banco de dados no Atlas sejam consistentes entre si. O Atlas Kubernetes Operator utiliza os recursos personalizadosAtlasProject, AtlasDeploymente AtlasDatabaseUser que você cria em seu cluster do Kubernetes para gerenciar recursos no Atlas.
Esses recursos personalizados permitem definir e configurar o estado desejado dos seus projetos, sistemas de banco de dados e usuários de banco de dados no Atlas. Para saber mais, acesse nossa publicação no blog sobre implementação de aplicativos no Kubernetes com o MongoDB Atlas Operator.

Conclusão

Após a instalação bem-sucedida do Kubernetes Operator, podemos usar os recursos do MongoDB Enterprise Kubernetes Operator para executar objetos do MongoDB em nosso cluster Kubernetes. O Operador permite a fácil implementação dos seguintes aplicativos em clusters Kubernetes:
  • MongoDB — conjuntos de réplicas, clusters fragmentados e standalone — com autenticação, TLS e muitas outras opções.
  • MongoDB Ops Manager — plataforma de gerenciamento empresarial, monitoramento e backup para o MongoDB. O Operador pode instalar e gerenciar o MongoDB Ops Manager no Kubernetes para você. O MongoDB Ops Manager pode gerenciar instâncias do MongoDB dentro e fora Kubernetes. A instalação do MongoDB Ops Manager é abordada no segundo artigo da série.
  • MongoMulti — As implantações de vários clusters Kubernetes permitem adicionar instâncias do MongoDB em clusters globais que abrangem várias regiões geográficas para maior disponibilidade e distribuição global de dados. Isso é abordado na parte final desta série.
Quer ver o MongoDB Enterprise Kubernetes Operator em ação e descobrir todos os benefícios que ele pode trazer para sua implementação do Kubernetes? Continue lendo o próximo blog desta série e mostraremos como utilizar melhor o Operator para suas necessidades

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
{Parte de uma série
Implantação do MongoDB em vários clusters do Kubernetes
Próximo
Continuar

Mais nesta série
Relacionado
Podcast

Pesquisa do Podcast do MongoDB com a equipe de conectores e tradutores


Sep 11, 2024 | 16 min
Artigo

Medindo o desempenho do MongoDB Kafka Connector


May 09, 2022 | 6 min read
Tutorial

Ajustando o MongoDB Connector para Apache Kafka


Sep 17, 2024 | 10 min read
Tutorial

Usando a autenticação AWS IAM com o conector MongoDB para Apache Kafka


Jul 01, 2024 | 4 min read
Sumário