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.
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 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 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.
Registre uma nova conta do Atlas ou faça login na sua conta do 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.
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 .
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 assista apenas seu próprio namespace, defina o
--watchNamespaces
sinalizador como seu próprio namespace e execute o seguinte comando:Observação
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 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çãodbAdmin
.Cria um usuário do banco de dados denominado
dbuser
que tem a funçãoreadWrite
.
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
--set
e--values
no comando a seguir substituem os valores do arquivoValues.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 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 aguarda até que o sistema de banco de dados esteja pronto. Criar um novo sistema de banco de dados 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 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