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 .

Junte-se a nós no Amazon Web Services re:Invent 2024! Saiba como usar o MongoDB para casos de uso de AI .
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Como implementar o MongoDB Atlas com o Atlas Kubernetes Operator

Rutuja Rajwade6 min read • Published Jul 30, 2024 • Updated Jul 30, 2024
KubernetesBashAtlas
APLICATIVO COMPLETO
Ícone do FacebookÍcone do Twitterícone do linkedin
Gráfico de Kubernetes e MongoDB
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Kubernetes, uma ferramenta de orquestração de contêineres, permite que os desenvolvedores automatizem a implantação, o escalonamento e o gerenciamento de seus aplicativos em contêineres. O Kubernetes é popular entre os desenvolvedores por seus benefícios de segurança e pelo fato de vir em muitos sabores diferentes, incluindo EKS da AWS, AKS do Microsoft Azure e GKE do Google Cloud. O MongoDB Atlas permite que os desenvolvedores integrem perfeitamente o Atlas em seu pipeline de implantação atual do Kubernetes por meio de nosso MongoDB Atlas Kubernetes Operator.
O Atlas Kubernetes Operator permite que os clientes que usam o Kubernetes criem e gerenciem recursos do Atlas em uma das nuvens públicas compatíveis com exatamente as mesmas ferramentas e processos que usam para seus serviços existentes no Kubernetes. O operador trabalha estendendo a API do Kubernetes para oferecer suporte a recursos personalizados, permitindo aos desenvolvedores gerenciar recursos do MongoDB como objetos nativos do Kubernetes, mesmo que o Atlas esteja sendo executado fora do cluster. Os desenvolvedores podem criar e aplicar recursos personalizados no Kubernetes para definir a configuração do Atlas, e o Atlas Kubernetes Operator automatiza a aplicação dessa configuração por meio da API de administração do Atlas.
Há muitas maneiras de começar a usar o Atlas Kubernetes Operator, como por meio do MongoDB Atlas CLI ou por meio de um Helm Chart. Este tutorial orientará você sobre como começar a usar o início rápidodo Atlas Kubernetes Operator. Vamos começar!

Pré-requisitos

  • Uma conta do MongoDB Atlas
  • Um cluster Kubernetes em execução com nós que executam processadores com a arquitetura x86-64, AMD64 ou ARM64 - você pode usar alguns como o Minikube para testar com
  • Kubectl e jq (versão 1.6 ou superior) instalados

1. Configurar o ID da organização e as chaves de API

Primeiro, você precisará instalar o operador em um cluster Kubernetes em execução. Certifique-se de que ele esteja executando processadores com a arquitetura x86-64, AMD64 ou ARM64 . Neste exemplo, estamos executando um cluster Kubernetes usando Minikube e Docker, e usando o Kubectl para aplicar comandos.
Se você ainda não tiver uma conta do Atlas, pode cadastre-se para uma.
Depois de fazer login na sua conta Atlas, você primeiro criará chaves de API para uso pelo operador.
No canto superior esquerdo, clique no menu suspenso “Access Manager” e na guia Chaves de API. Clique em “Create API Key.”
Página do gerente de acesso da organização do Atlas
Observação: se quiser que o Atlas Kubernetes Operator crie um novo projeto do Atlas para trabalhar, você precisará criar e usar as chaves de API de uma organização. Para um projeto existente, você precisará criá-los para um projeto. Para este exemplo, criaremos um novo projeto Atlas. Para qualquer tipo de projeto, é prática recomendada configurar uma lista de acesso de API.
Aqui, você inserirá um nome para suas chaves de API (por exemplo, AKO/Chaves de pesquisa vetorial) e selecionará a função da organização. Você deve atribuir à chave de API a função de organização Criador de projeto da organização ou superior.
Página da UI do Atlas “Create API Keys”
A partir daí, você encontrará um conjunto de chaves de API exclusivas geradas para você. Certifique-se de salvá-los em algum lugar seguro. Depois de sair desta página, você não poderá recuperá-la!

2. Instale o MongoDB Atlas Kubernetes Operator

Em seguida, instalaremos o operador no cluster Kubernetes que você está executando. Uma vez implementado, o Atlas Kubernetes Operator pode monitorar recursos e eventos em um único ou múltiplos namespaces Kubernetes. Essa capacidade permite que o operador gerencie os recursos personalizados do MongoDB Atlas de forma abrangente em todo o cluster Kubernetes ou em namespaces designados específicos.
Para este exemplo, configuraremos o operador para observar todos os namespaces em nosso cluster, mas você pode aprender como configurar o operador para monitorar um único namespace em nossa documentação.
Use o seguinte comando em seu terminal:
1kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v2.3.1/deploy/all-in-one.yaml
Certifique-se de substituir o <version> pela atualização mais recente no seguinte formato: "v2.x.x".

3. Crie um segredo com suas chaves de API e ID da organização

Em seguida, criaremos um segredo no Kubernetes. Um segredo do Kubernetes é um objeto usado para armazenar e gerenciar informações confidenciais, como senhas, tokens OAuth e chaves SSH, com segurança em um cluster Kubernetes. Nesse caso, serão as chaves de API que você criou anteriormente.
Se você usar o armazenamento externo de segredos, não precisará colocar informações confidenciais diretamente nos segredosdoKubernetes. Para saber mais, consulte Configurar armazenamento secreto.
Digite o comando a seguir e substitua <atlas_organization_id> pelo ID da organização, <atlas_api_public_key> pela chave pública da API e <atlas_api_private_key> pela chave privada.
Solução de problemas: Se o comando a seguir produzir um erro, tente executá-lo sem aspas (por exemplo. --from-literal=orgId=<atlas_organization_id> \)
1kubectl create secret generic mongodb-atlas-operator-api-key \
2 --from-literal="orgId=<atlas_organization_id>" \
3 --from-literal="publicApiKey=<atlas_api_public_key>" \
4 --from-literal="privateApiKey=<atlas_api_private_key>" \
5 -n mongodb-atlas-system
Em seguida, use o seguinte comando para rotular seu segredo:
1kubectl label secret mongodb-atlas-operator-api-key atlas.mongodb.com/type=credentials -n mongodb-atlas-system

4. Criar um recurso personalizado do projeto Atlas

Os projetos permitem que você isole diferentes ambientes de banco de dados (por exemplo, ambientes de desenvolvimento/qa/produção) uns dos outros, bem como usuários/equipes. Aqui, usaremos o operador para criar um projeto na UI do Atlas por meio de um recurso personalizado do projeto Atlas.
Digite o seguinte comando em seu terminal.
1cat <<EOF | kubectl apply -f -
2apiVersion: atlas.mongodb.com/v1
3kind: AtlasProject
4metadata:
5 name: my-project
6spec:
7 name: Test Atlas Operator Project
8 projectIpAccessList:
9 - cidrBlock: "0.0.0.0/0"
10 comment: "Allowing access to database from everywhere (only for Demo!)"
11EOF
Observação: os comandos acima adicionarão o CIDR 0.0.0.0/0 à sua lista de acesso IP, se inserido como está. Este CIDR permite que qualquer cliente se conecte ao cluster do Atlas. Não use este endereço IP em produção.
Se você estiver trabalhando em um projeto existente no Atlas, certifique-se de alterar name: my-project para o nome do seu projeto no Atlas e atualizar o cidrBlock para seu endereço IP atual.
Após inserir este comando, verifique sua IU do Atlas. Você deve ver um projeto criado na UI do Atlas chamado "Test Atlas Operator Project. "
Página da UI do Atlas “Projects

5. Criar uma implantação do Atlas

Os sistemas são instâncias do MongoDB em execução em um fornecedor de nuvem. Esse recurso personalizado criará um cluster de0 de camada M gratuita, mas você sempre poderá ajustar o tamanho do cluster dependendo das necessidades de carga de trabalho no recurso personalizado. No seu terminal, digite este comando:
1cat <<EOF | kubectl apply -f -
2apiVersion: atlas.mongodb.com/v1
3kind: AtlasDeployment
4metadata:
5 name: my-test-cluster
6spec:
7 projectRef:
8 name: my-project
9 deploymentSpec:
10 clusterType: REPLICASET
11 name: test-atlas-operator-project
12 replicationSpecs:
13 - regionConfigs:
14 - regionName: US_EAST_1
15 providerName: TENANT
16 backingProviderName: AWS
17 electableSpecs:
18 instanceSize: M0
19 nodeCount: 3
20EOF
Agora, em Projetos na interface do usuário do Atlas, você deve ver "1 Cluster " criado na coluna Clusters.
Página da UI do Atlas “Projects
Em seguida, você vai querer criar um segredo para sua senha.
Digite o seguinte comando. Certifique-se de substituir P@@ssword% por uma senha de sua escolha.
1kubectl create secret generic the-user-password --from-literal="password=P@@sword%"
Em seguida, use o comando a seguir para rotular sua senha.
1kubectl label secret the-user-password atlas.mongodb.com/type=credentials
Com o cluster configurado, criaremos um recurso personalizado AtlasDatabaseUser usando o seguinte comando. Certifique-se de substituir a senha que você definiu anteriormente na linha de código que diz the-user-password.
1cat <<EOF | kubectl apply -f -
2apiVersion: atlas.mongodb.com/v1
3kind: AtlasDatabaseUser
4metadata:
5 name: my-database-user
6spec:
7 roles:
8 - roleName: "readWriteAnyDatabase"
9 databaseName: "admin"
10 projectRef:
11 name: my-project
12 username: theuser
13 passwordSecretRef:
14 name: the-user-password
15EOF
Você precisará continuar executando o comando a seguir até obter uma respostaTrue. Isso pode levar algum tempo e talvez você precise executá-lo várias vezes até obter a resposta correta.
1kubectl get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'

6. Recuperar segredo e criar connection string

Por fim, você precisará recuperar o segredo que o operador criou. A obtenção de sua connection string no banco de dados recém-criado também pode ser feita por meio do Kubernetes. Para esta etapa, você precisará ter o jq (versão 1.6 ou superior) instalado.
Insira o seguinte comando depois de substituir as seguintes partes do código pelo que está nos metadados dos recursos personalizados que você aplicou anteriormente:
  • my-project: Especifique o valor do campo de metadados do seu Recurso Personalizado AtlasProject (neste exemplo, my-project).
  • my-atlas-cluster: Especifique o valor do campo de metadados do seu Recurso Personalizado AtlasDeployment (neste exemplo, my-test-cluster).
  • my-database-user: especifique o valor do campo de metadados do seu Recurso Personalizado AtlasDatabaseUser (neste exemplo, my-database-user)
1kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)';
Em seguida, execute este comando para obter uma connection string. Certifique-se de inserir a senha e o nome de usuário que você tinha antes ao lado dos campos onde você vê “password” e “username”.
1{
2 "connectionStringStandard": "mongodb://theuser:P%40%40sword%25@test-cluster-shard-00-00.peqtm.mongodb.net:27017,test-cluster-shard-00-01.peqtm.mongodb.net:27017,test-cluster-shard-00-02.peqtm.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-pk82fl-shard-0",
3 "connectionStringStandardSrv": "mongodb+srv://theuser:P%40%40sword%25@test-cluster.peqtm.mongodb.net",
4 "password": "P@@sword%",
5 "username": "theuser"
6 }
Suas strings de conexão serão diferentes da string de conexão neste exemplo.
Por fim, você pode consumir o segredo como uma variável de ambiente com seu aplicativo:.
1containers:
2 - name: test-app
3 env:
4 - name: "CONNECTION_STRING"
5 valueFrom:
6 secretKeyRef:
7 name: test-atlas-operator-project-test-cluster-theuser
8 key: connectionStringStandardSrv
Com isso, você acionou com sucesso o Operador Atlas para criar e conectar a um novo Atlas cluster, via Kubernetes!
Para saber mais sobre o Atlas Kubernetes Operator, você pode Go para a documentação do Atlas Operator. Se você estiver usando o MongoDB Enterprise Advanced em vez do Atlas, temos o Enterprise Kubernetes Operator disponível para executar o MongoDB em seu próprio ambiente Kubernetes.
Se você tiver dúvidas ou quiser compartilhar seu trabalho,acesse aComunidade de desenvolvedores do MongoDB!
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.
Iniciar a conversa

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Artigo

Colocando o RAG em produção com o chatbot de IA da documentação do MongoDB


Aug 29, 2024 | 11 min read
Tutorial

Criando aplicações de IA com o Microsoft Semantic Kernel e o MongoDB Atlas Vector Search


Nov 27, 2023 | 8 min read
Tutorial

Hospedando com segurança um aplicativo Lambda com uma arquitetura de microsserviço e MongoDB Atlas


Sep 19, 2024 | 4 min read
Tutorial

Além do básico: aprimorando a API Kotlin Ktor com pesquisa vetorial


Sep 18, 2024 | 9 min read
Sumário