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 Início Rápido.
Pré-requisitos
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:
Procedimento
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
AtlasProjectRecurso 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 personalizadoAtlasDeployment, 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
Registre-se para uma conta Atlas ou faça login.
Register and Log in to Atlas or Register and Log in to Atlas.
Crie chaves API para a sua organização.
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 .
Implemente o Atlas Kubernetes Operator
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 observe um conjunto específico de namespaces, defina o sinalizador
--watchNamespacescomo uma lista separada por vírgulas de namespaces a serem observados. Por exemplo, execute o seguinte comando para observar somente o namespaceatlas-operator:helm install atlas-operator --namespace=atlas-operator --set watchNamespaces=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
Implemente o Sistema de Banco de Dados Atlas.
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.
atlas-advanced: um exemplo de implantação extensível e avançada do Atlas Kubernetes Operator com boilerplate relacionado a implantações multirregionais, comportamento de autoscaling e muito mais.
Crie um arquivo denominado
install-values.yamle 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.
Creates a database user named
dbadminthat has thedbAdminrole.Creates a database user named
dbuserthat has thereadWriterole.
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 Execute o seguinte comando.
Os sinalizadores
--sete--valuesno comando a seguir substituem os valores do arquivoValues.yamle 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-deploymentfaz 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 Personalizado
AtlasDeployment.Para criar uma instância sem servidor, consulte o exemplo de instância sem servidor.
Verifique o status do seu usuário do banco de dados.
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 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.
Recupere o segredo que o Atlas Kubernetes Operator criou para conectar ao sistema de banco de dados.
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 de 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 -o json | 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