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

Início rápido dos Charts do Helm

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
  • Implemente o Sistema de Banco de Dados Atlas.
  • Verifique o status do seu usuário do banco de dados.
  • Recupere o segredo que o Atlas Kubernetes Operator criou para conectar ao sistema de banco de dados.

Você pode utilizar o Atlas Kubernetes Operator para gerenciar recursos no Atlas sem sair do Kubernetes. Este tutorial mostra como criar seu primeiro cluster no Atlas a partir do Helm Charts com o Atlas Kubernetes Operator.

Observação

Você prefere começar sem o Helm?

Para criar seu primeiro cluster no Atlas a partir de arquivos de configuração do Kubernetes com o Atlas Kubernetes Operator, consulte o Início Rápido.

Este tutorial requer:

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

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

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

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

Execute um dos seguintes conjuntos de comandos:

  • Se você deseja que o Atlas Kubernetes Operator observe todos os namespaces no cluster Kubernetes, execute os seguintes comandos:

    helm repo add mongodb https://mongodb.github.io/helm-charts
    helm install atlas-operator --namespace=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
  • Se você quiser que o Atlas Kubernetes Operator assista apenas seu próprio namespace, defina o --watchNamespaces sinalizador como seu próprio namespace e execute o seguinte comando:

    Observação

    Você pode definir o --watchNamespaces sinalizador somente para seu próprio namespace. Definindo o --watchNamespaces sinalizador para qualquer outro namespace atualmente não é compatível.

    helm install atlas-operator --namespace=atlas-operator --set watchNamespaces=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
4
  1. Personalize o projeto Atlas e seus utilizadores de banco de dados.

    Observação

    Você pode encontrar os seguintes exemplo adicionais de Helm Charts no Github Github:

    • atlas-basic: um exemplo simples de implementação do Atlas Kubernetes Operator que inclui a criação de um projeto Atlas , cluster e um usuário de banco de dados de dados.

    • atlas-advanced: um exemplo de sistema extensível e avançado do Atlas Kubernetes Operator com biolerplate relacionado a multirregional , comportamento de auto-scaling e muito mais.

    Crie um arquivo denominado install-values.yaml e cole o seguinte código de exemplo, que faz o seguinte:

    • Define o nome do projeto para My Project.

    • Permite que todos os endereços IP (0.0.0.0) acessem o projeto.

    • Cria um usuário do banco de dados denominado dbadmin que tem a função dbAdmin .

    • Cria um usuário do banco de dados denominado dbuser que tem a função readWrite .

    project: # Project custom values
    atlasProjectName: "My Project"
    projectIpAccessList:
    - cidrBlock: "0.0.0.0/0"
    users: # Custom database users
    - username: dbadmin
    databaseName: admin
    roles:
    - databaseName: admin-role
    roleName: dbAdmin
    - username: dbuser
    databaseName: admin
    roles:
    - databaseName: user-role
    roleName: readWrite
  2. Execute o seguinte comando.

    Os sinalizadores --set e --values no comando a seguir substituem os valores do arquivo Values.yaml e os valores padrão do Helm Charts pelo ID de sua organização, pelas chaves de API e pela configuração do projeto Atlas.

    Observação

    mongodb/atlas-deployment faz referência ao nome de um gráfico no repositório.

    helm install atlas-deployment \
    mongodb/atlas-deployment \
    --namespace=my-cluster \
    --create-namespace \
    --set atlas.secret.orgId='<orgid>' \
    --set atlas.secret.publicApiKey='<publicKey>' \
    --set atlas.secret.privateApiKey='<privateApiKey>' \
    --values install-values.yaml

    Para saber mais sobre os parâmetros disponíveis, consulte Recurso PersonalizadoAtlasDeployment .

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

5

Execute o seguinte comando para aguardar o usuário do banco de dados do dbadmin se tornar pronto:

kubectl wait --for=condition=ready --timeout=10m -n my-cluster atlasdatabaseusers/atlas-deployment-dbadmin

Observação

O AtlasDatabaseUser Recurso Personalizado aguarda até que o sistema de banco de dados esteja pronto. Criar um novo sistema de banco de dados pode levar até 10 minutos.

6

Importante

O comando a seguir requer jq 1.6 ou superior.

Execute o seguinte comando para recuperar a cadeia de conexão e senha para o usuário do banco de dados do dbadmin. Suas cadeias de conexão serão diferentes da saída do exemplo.

kubectl get secret -n my-cluster my-project-cluster-name-dbadmin -ojson | jq -r '.data | with_entries(.value |= @base64d)';
{
"connectionStringStandard": "mongodb://admin-user:%25SomeLong%25password$foradmin@atlas-cluster-shard-00-00.nlrvs.mongodb.net:27017,atlas-cluster-shard-00-01.nlrvs.mongodb.net:27017,atlas-cluster-shard-00-02.nlrvs.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-11q9bn-shard-0",
"connectionStringStandardSrv": "mongodb+srv://admin-user:%25SomeLong%25password$foradmin@atlas-cluster.nlrvs.mongodb.net",
"password": "%SomeLong%password$foradmin",
"username": "dbadmin"
}

Você pode usar o seguinte segredo em seu aplicativo:

containers:
- name: test-app
env:
- name: "CONNECTION_STRING"
valueFrom:
secretKeyRef:
name: my-project-cluster-name-dbadmin
key: connectionStringStandardSrv

Voltar

Verificar a integridade do pacote