Puede usar Atlas Kubernetes Operator para administrar recursos en Atlas sin salir de Kubernetes. Este tutorial muestra cómo crear su primer clúster en Atlas desde Helm Charts con Atlas Kubernetes Operator.
Nota
¿Prefieres comenzar sin Helm?
Para crear su primer clúster en Atlas a partir de archivos de configuración de Kubernetes con Atlas Kubernetes Operator, consulte Inicio rápido.
Requisitos previos
Este tutorial requiere:
Un clúster de Kubernetes en ejecución con nodos que ejecutan procesadores con la arquitectura x86-64, AMD64 o ARM64.
Puede acceder al proyecto Atlas Kubernetes Operator en GitHub:
Procedimiento
Importante
Los recursos personalizados ya no eliminan objetos de forma predeterminada
Atlas Kubernetes Operator utiliza archivos de configuración de recursos personalizados para administrar su configuración de Atlas. Sin embargo, a partir de la versión de Atlas Kubernetes 2.0 Operator, los recursos personalizados que elimine en Kubernetes ya no se eliminan (de forma predeterminada) en Atlas. En su lugar, Atlas Kubernetes Operator simplemente deja de administrarlos en Atlas. Por ejemplo, si elimina un
AtlasProjectRecurso personalizado en Kubernetes. De forma predeterminada, el operador de Kubernetes de Atlas ya no elimina automáticamente el proyecto correspondiente de Atlas. Este cambio de comportamiento ayuda a evitar eliminaciones accidentales o inesperadas. Para obtener más información, incluido cómo revertir este comportamiento al predeterminado anterior al operador de Kubernetes de 2.0 Atlas, consulte Nuevo valor predeterminado: Protección contra eliminaciones en el operador de Kubernetes de 2.0 Atlas.De manera similar, Atlas Kubernetes Operator no elimina equipos de Atlas si los elimina de un proyecto Atlas en Kubernetes con Atlas Kubernetes Operator.
Defina explícitamente los detalles de configuración deseados para evitar el uso implícito de los valores predeterminados de Atlas. En algunos casos, heredar los valores predeterminados de Atlas puede generar un bucle de conciliación que impide que su recurso personalizado alcance el estado
READY. Por ejemplo, definir explícitamente el comportamiento de escalado automático deseado en su recurso personalizadoAtlasDeployment, como se muestra en el ejemplo incluido, garantiza que un tamaño de instancia estático en su recurso personalizado no se aplique repetidamente a una implementación de Atlas con el escalado automático habilitado.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
Regístrese para obtener una cuenta Atlas o inicie sesión.
Registre una nueva cuenta Atlas o inicie sesión en su cuenta Atlas.
Cree claves API para su organización.
Crear un Clave API con Organization Project Creator permisos o siguiendo Project Owner el procedimiento en Otorgar acceso programático a una organización.
Implementar el operador Atlas Kubernetes.
Ejecute uno de los siguientes conjuntos de comandos:
Si desea que Atlas Kubernetes Operator supervise todos los espacios de nombres en el clúster de Kubernetes, ejecute los siguientes comandos:
helm repo add mongodb https://mongodb.github.io/helm-charts helm install atlas-operator --namespace=atlas-operator --create-namespace mongodb/mongodb-atlas-operator Si desea que Atlas Kubernetes Operator supervise un conjunto específico de espacios de nombres, configure el
--watchNamespacesindicador como una lista separada por comas de los espacios de nombres que se supervisarán. Por ejemplo, ejecute el siguiente comando para supervisar solo elatlas-operatorespacio de nombres:helm install atlas-operator --namespace=atlas-operator --set watchNamespaces=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
Implementar la implementación de la base de datos Atlas.
Personalice el proyecto Atlas y los usuarios de su base de datos.
Nota
Puede encontrar los siguientes ejemplos adicionales de gráficos de Helm en GitHub:
atlas-basic: un ejemplo simple de implementación de Atlas Kubernetes Operator que incluye la creación de un proyecto Atlas, un clúster y un usuario de base de datos.
atlas-advanced: un ejemplo de implementación de operador de Kubernetes de Atlas avanzado y extensible con biolerplate relacionado con implementaciones de múltiples regiones, comportamiento de escalamiento automático y más.
Cree un archivo llamado
install-values.yamly pegue el siguiente código de ejemplo, que hace lo siguiente:Establece el nombre del proyecto a
My Project.Permite que todas las direcciones IP (0.0.0.0) accedan al proyecto.
Crea un usuario de base de datos llamado
dbadminque tiene eldbAdminrol.Crea un usuario de base de datos llamado
dbuserque tiene elreadWriterol.
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 Ejecute el siguiente comando.
Los indicadores
--sety--valuesen el siguiente comando anulan los valores del archivoValues.yamly los valores predeterminados de Helm Charts con su ID de organización, claves API y configuración del proyecto Atlas.Nota
mongodb/atlas-deploymenthace referencia al nombre de un gráfico en el repositorio.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 obtener más información sobre los parámetros disponibles, consulte
AtlasDeploymentRecurso personalizado.Para crear una instancia sin servidor, consulte el ejemplo de instancia sin servidor.
Verifique el estado de su usuario de base de datos.
Ejecute el siguiente comando para esperar a que el usuario de la base de datos dbadmin esté listo:
kubectl wait --for=condition=ready --timeout=10m -n my-cluster atlasdatabaseusers/atlas-deployment-dbadmin
Nota
El AtlasDatabaseUser recurso personalizado espera hasta que el clúster esté listo. Crear un nuevo clúster Atlas de nivel gratuito tarda menos de 15 segundos. Crear un nuevo clúster Flex o Dedicado puede tardar hasta 10 minutos.
Recupere el secreto que Atlas Kubernetes Operator creó para conectarse a la implementación de la base de datos.
Importante
El siguiente comando requiere jq 1.6 o superior.
Ejecute el siguiente comando para recuperar la cadena de conexión y la contraseña del usuario de la base de datos dbadmin. Las cadenas de conexión serán diferentes a las del ejemplo.
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" }
Puede utilizar el siguiente secreto en su aplicación:
containers: - name: test-app env: - name: "CONNECTION_STRING" valueFrom: secretKeyRef: name: my-project-cluster-name-dbadmin key: connectionStringStandardSrv