Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Início rápido

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.

Aviso

Orientação de segurança de vários locatários

Não compartilhe uma única instalação do Atlas Kubernetes Operator entre vários locatários, mesmo que eles usem namespace diferentes. Os locatários que compartilham um operador podem usar referências entre namespace para acessar recursos em outros namespace, incluindo segredos que fornecem acesso às configurações do Atlas de outros locatários ou a outros recursos da nuvem. Para isolar locatários, implante uma instância separada do Atlas Kubernetes Operator para cada locatário.

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 o 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:

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

atlas kubernetes operator install [options]

To learn more about the command syntax and parameters, see the Atlas CLI documentation for atlas kubernetes operator install.

Dica

Veja: links relacionados

Importante

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

  • O Atlas Kubernetes Operator utiliza 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 0consulte Novo padrão: Proteção de exclusão no Atlas Kubernetes 2 0Operator..

    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

Register and Log in to Atlas or Register and Log in to 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.

Grant Programmatic Access to an Organization and configure the 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 Atlas Administration API, 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 Atlas Administration API, 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ê deseja que o Atlas Kubernetes Operator observe todos os espaços de nomes no cluster Kubernetes, execute o seguinte comando:

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

    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 segredos do 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

Cluster 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 segredos do 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 AtlasDatabaseUser Recurso Personalizado espera até que o cluster esteja pronto. Criar um novo cluster gratuito leva menos de 15 segundos. A criação de um novo cluster Flex ou dedicado 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 aplicação:

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