A Voyage AI se une ao MongoDB para impulsionar aplicativos de AI mais precisos e confiáveis no Atlas.

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 .

Implementando o MongoDB Enterprise Kubernetes Operator no Google Cloud

Arek Borucki6 min read • Published Jan 13, 2023 • Updated Jan 13, 2023
Facebook Icontwitter iconlinkedin icon
Avaliar este 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:
  • Operador de Kubernetes do MongoDB Community é um operador de código aberto que está disponível gratuitamente e pode ser usado para implantar e gerenciar o conjunto de réplicas do MongoDB 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 implementação do MongoDB (autônomo, conjunto de réplicas, cluster fragmentado) no Kubernetes, fornecendo recursos e funcionalidades avançadas para implementar e gerenciar o MongoDB em ambientes nativos da nuvem.
  • Operador do MongoDB Atlas Kubernetes é 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 nossa publicação no blog em sistema de aplicação no Kubernetes.
Este artigo se concentrará no Operador Empresarial. O MongoDB Enterprise Kubernetes Operator integra-se perfeitamente com outras funcionalidades 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.
The Kubernetes Operator manages the typical lifecycle events for a MongoDB cluster: provisioning storage and computing power, configuring network connections, setting up users, and changing these settings as needed

Definições de recursos personalizados do Kubernetes

Kubernetes CRDs (Definições de recursos personalizados) é um recurso do Kubernetes que permite aos usuários criar e gerenciar recursos personalizados em seus clusters do Kubernetes. 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:
The following diagram describes how the Kubernetes Operator behaves if you make changes to a sharded cluster's

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, projeto. Estaremos usando 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
Também podemos exibir o nome completo do cluster Kubernetes usando kubectx.
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. O primeiro passo é adicionar o Charts do MongoDB Helm para Kubernetes repositório para o 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 default namespace por padrão). Isso me permitirá isolar o operador e quaisquer recursos que ele criar de outros recursos em meu cluster. O comando a seguir instalará os CRDs e o Operador Empresarial no mongodb-operatornamespace. O operador assistirá apenas ao mongodb-operator namespace. Você pode ler mais sobre configurando o operador para observar mais namespaces na documentação oficial do MongoDB .
Comece criando o mongodb-operatornamespace.
1NAMESPACE=mongodb-operator
2kubectl create ns "${NAMESPACE}"
Instale o MongoDB Kubernetes Operator e configure-o para observar apenas o mongodb-operator namespace.
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 o AtlasProject, AtlasDeployment, e AtlasDatabaseUser Recursos Personalizados que você cria no seu agrupamento do Kubernetes para gerenciar recursos no Atlas.
Esses recursos personalizados permitem definir e configurar o estado desejado de seus projetos, sistemas de banco de dados e usuários de banco de dados no Atlas. Para saber mais, acesse nosso blog post em sistema de aplicação 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.
  • Ops Manager — plataforma de gerenciamento empresarial, monitoramento e backup para o MongoDB. O Operador pode instalar e gerenciar o Ops Manager no Kubernetes para você. O Ops Manager pode gerenciar instâncias do MongoDB dentro e fora do Kubernetes. A instalação do 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 usar melhor o Operator para suas necessidades

Facebook Icontwitter iconlinkedin icon
Avaliar este tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

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


Jul 01, 2024 | 4 min read
Tutorial

Ajustando o MongoDB Connector para Apache Kafka


Sep 17, 2024 | 10 min read
Podcast

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


Sep 11, 2024 | 16 min
Tutorial

Ative seu MongoDB e BigQuery usando procedimentos armazenados do BigQuery Spark


Aug 12, 2024 | 5 min read