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 .
Pré-requisitos
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]
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 .
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
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
Crie um segredo com suas chaves de API e ID da organização.
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.
Crie o AtlasProject
recurso personalizado .
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
Crie o AtlasDeployment
recurso personalizado .
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.
Crie um segredo com uma senha para entrar no reconhecimento de data center do cluster do Atlas.
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.
Crie o AtlasDatabaseUser
recurso personalizado .
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
Verifique o status do seu usuário do banco de dados.
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}'
Recupere o segredo que o Atlas Kubernetes Operator criou para conectar ao cluster.
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)'; 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
.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