Menu Docs
Página inicial do Docs
/ /
Kubernetes Operator do MongoDB Atlas
/

Início rápido

Nesta página

  • Pré-requisitos
  • Procedimento
  • Registre-se para uma conta Atlas ou faça login.
  • Crie chaves API para a sua organização.
  • Implemente o Atlas Kubernetes Operator
  • Crie um segredo com suas chaves de API e ID da organização.
  • Crie o recurso personalizado do AtlasProject .
  • Crie o recurso personalizado do AtlasDeployment .
  • Crie um segredo com uma senha para entrar no reconhecimento de data center do cluster do Atlas.
  • Crie o recurso personalizado do AtlasDatabaseUser .
  • Verifique o status do seu usuário do banco de dados.
  • Recupere o segredo que o Atlas Kubernetes Operator criou para conectar ao cluster.

Você pode usar o Atlas Kubernetes Operator para managed recursos no Atlas sem sair do Kubernetes. Este tutorial demonstra como criar seu primeiro cluster no Atlas a partir de arquivos de configuração do Kubernetes com o Atlas Kubernetes Operator.

Observação

Você prefere começar com Helm?

Para criar seu primeiro cluster no Atlas a partir do Helm Charts com o Atlas Kubernetes Operator, consulte Início Rápido do Helm Charts .

Este tutorial requer:

  • Um cluster Kubernetes em execução com nós executando processadores com a arquitetura x86-64, AMD64 ou ARM64.

  • jq 1.6 ou superior

Você pode acessar o projeto Atlas Kubernetes Operator no GitHub:

  • https://github.com/mongodb/mongodb-atlas-kubernetes

Para instalar o Atlas Kubernetes Operator utilizando o Atlas CLI, execute o seguinte comando:

atlas kubernetes operator install [options]

Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação da Atlas CLI do Atlas para a instalação do Atlas Kubernetes Operator .

Dica

Veja: links relacionados

Importante

Os Recursos Personalizados Não Excluem Mais Objetos por Padrão

  • O Atlas Kubernetes Operator usa arquivos de configuração de recurso personalizado para gerenciar sua configuração do Atlas , mas a partir do Atlas Kubernetes Operator 2.0, os recursos personalizados que você exclui no Kubernetes não são mais (por padrão) excluídos no Atlas. Em vez disso, o Atlas Kubernetes Operator simplesmente para de gerenciar estes recursos no Atlas. Por exemplo, se você excluir um AtlasProject Recurso Personalizado no Kubernetes, por padrão, o Atlas Kubernetes Operator não excluirá mais automaticamente o projeto correspondente do Atlas. Essa mudança no comportamento destina-se a ajudar a evitar exclusões acidentais ou inesperadas. Para saber mais, incluindo como reverter este comportamento para o padrão utilizado antes do Atlas Kubernetes Operator 2.,0 consulte Novo padrão: proteção de exclusão no Atlas Kubernetes 2 Operator.0.

    Da mesma forma, o Atlas Kubernetes Operator não exclui equipes do Atlas se você as remover de um projeto do Atlas no Kubernetes com o Atlas Kubernetes Operator.

  • Defina explicitamente os detalhes de configuração desejados para evitar o uso implícito de valores de configuração padrão do Atlas . Em alguns casos, herdar os padrões do Atlas pode resultar em um loop de reconciliação que pode impedir que seu recurso personalizado atinja um estado READY. Por exemplo, definir explicitamente o comportamento de autoscaling desejado em seu recurso personalizado AtlasDeployment, conforme mostrado no exemplo incluído, garante que um tamanho de instância estática em seu recurso personalizado não esteja sendo aplicado repetidamente a um sistema do Atlas que tenha o autoscaling ativado.

    autoScaling:
    diskGB:
    enabled: true
    compute:
    enabled: true
    scaleDownEnabled: true
    minInstanceSize: M30
    maxInstanceSize: M40
1

Registre uma nova conta do Atlas ou faça login na sua conta do Atlas.

2

Observação

Você precisa das seguintes informações da chave de API pública, chave de API privada e ID da organização para configurar o acesso do Atlas Kubernetes Operator ao Atlas.

Conceda Acesso Programático a uma Organização e configure o API Access List.

Você precisa das seguintes informações da chave de API pública, chave de API privada e ID da organização para configurar o acesso do Atlas Kubernetes Operator ao Atlas.

  • Se você quiser que o Atlas Kubernetes Operator crie um novo projeto do Atlas , concedaacesso programático a uma organização. Se sua organização exigir uma lista de acesso IP para a API Atlas Administration, você também deverá configurar a lista de acesso da API.

    Importante

    Você deve atribuir a chave API ao role da organização Organization Project Creator ou superior.

  • Se você quiser trabalhar com um projeto Atlas existente, adicione acesso a um projeto. Se sua organização exigir uma lista de acesso IP para a API Atlas Administration, você também deverá configurar a lista de acesso da API.

    Importante

    Você deve atribuir à chave de API ao role de projeto Project Owner .

3

Em um dos seguintes cenários, substitua <version> pelo número da versão mais recente:

  • Se você quiser que o Atlas Kubernetes Operator observe todos os namespaces no cluster do Kubernetes, execute o seguinte comando:

    kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<version>/deploy/all-in-one.yaml
  • Se você quiser que o Atlas Kubernetes Operator observe apenas seu namespace, você deve instalar os arquivos de configuração a partir do deploy/namespaced diretório :

    kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<version>/deploy/namespaced/crds.yaml
    kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<version>/deploy/namespaced/namespaced-config.yaml
4

Para criar e rotular um segredo, execute os seguintes comandos com suas chaves de API e ID da organização:

kubectl create secret generic mongodb-atlas-operator-api-key \
--from-literal="orgId=<atlas_organization_id>" \
--from-literal="publicApiKey=<atlas_api_public_key>" \
--from-literal="privateApiKey=<atlas_api_private_key>" \
-n mongodb-atlas-system
kubectl label secret mongodb-atlas-operator-api-key atlas.mongodb.com/type=credentials -n mongodb-atlas-system

Se você usar o armazenamento externo de segredos, não precisará colocar informações confidenciais diretamente nos segredosdo Kubernetes.. Para saber mais, consulte Configurar Armazenamento Secreto.

5

Execute o seguinte comando para criar o Recurso Personalizado doAtlasProject :

Observação

O exemplo a seguir não especifica spec.connectionSecretRef.name. Se não for especificado, o Atlas Kubernetes Operator utilizará o segredo de conexão padrão definido anteriormente com suas chaves de API e ID da organização.

Implemente o recurso personalizado do Atlas Kubernetes Operator .

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test Atlas Operator Project
projectIpAccessList:
- ipAddress: <your-ip-address-range>
comment: "Adding your IP to Atlas access list"
EOF
6

Execute um dos seguintes comandos para criar um AtlasDeployment Recurso Personalizado e criar um cluster:

Nível pago:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-atlas-cluster
spec:
projectRef:
name: my-project
deploymentSpec:
clusterType: REPLICASET
name: "Test-cluster"
tags:
- key: "environment"
value: "production"
replicationSpecs:
- zoneName: US-Zone
regionConfigs:
- electableSpecs:
instanceSize: M10
nodeCount: 3
providerName: AWS
regionName: US_EAST_1
priority: 7
EOF

Nível gratuito:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-atlas-cluster
spec:
projectRef:
name: my-project
deploymentSpec:
clusterType: REPLICASET
name: "Test-cluster"
replicationSpecs:
- regionConfigs:
- regionName: US_EAST_1
providerName: TENANT
backingProviderName: AWS
electableSpecs:
instanceSize: M0
nodeCount: 3
EOF

Para criar uma instância sem servidor, consulte o exemplo de instância sem servidor.

7

Substitua P@@ssword% pela sua senha e execute os seguintes comandos:

kubectl create secret generic the-user-password --from-literal="password=P@@sword%"
kubectl label secret the-user-password atlas.mongodb.com/type=credentials

Se você usar o armazenamento externo de segredos, não precisará colocar informações confidenciais diretamente nos segredosdo Kubernetes.. Para saber mais, consulte Configurar Armazenamento Secreto.

8

Execute o seguinte comando para criar o Recurso Personalizado doAtlasDatabaseUser :

Observação

spec.passwordSecretRef deve fazer referência à senha que que você criou anteriormente.

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
username: theuser
passwordSecretRef:
name: the-user-password
EOF
9

Execute o seguinte comando até receber uma resposta do True , que indica que o trigger de reconhecimento de data center está pronto:

Observação

O Recurso PersonalizadoAtlasDatabaseUser aguarda até que o cluster esteja pronto. A criação de um novo cluster pode levar até 10 minutos.

kubectl get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
10
  1. Copie o seguinte comando:

    Importante

    O comando a seguir requer jq 1.6 ou superior.

    kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)';
  2. Substitua os seguintes espaços reservados pelos detalhes dos seus recursos personalizados:

    my-project

    Especifique o valor do campo metadata do seu Recurso PersonalizadoAtlasProject .

    my-atlas-cluster

    Especifique o valor do campo metadata do seu Recurso PersonalizadoAtlasDeployment .

    my-database-user

    Especifique o valor do campo metadata do seu Recurso PersonalizadoAtlasDatabaseUser .

  3. Execute o comando.

    Observação

    Sua string de conexão será diferente do exemplo a seguir.

    {
    "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",
    "connectionStringStandardSrv": "mongodb+srv://theuser:P%40%40sword%25@test-cluster.peqtm.mongodb.net",
    "password": "P@@sword%",
    "username": "theuser"
    }

    Você pode usar este segredo em seu aplicativo:

    containers:
    - name: test-app
    env:
    - name: "CONNECTION_STRING"
    valueFrom:
    secretKeyRef:
    name: test-atlas-operator-project-test-cluster-theuser
    key: connectionStringStandardSrv

Voltar

Começar