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
Las definiciones de recursos personalizados tienen prioridad
Atlas Kubernetes Operator utiliza archivos de configuración de recursos personalizados para administrar la configuración de Atlas. Cada definición de recurso personalizado anula la configuración especificada de otras maneras, como en la interfaz de usuario de Atlas. Si elimina un recurso personalizado, Atlas Kubernetes Operator elimina el objeto de Atlas a menos que utilice anotaciones para omitir la eliminación. Para obtener más información, consulte los procesos de creación y actualización y de eliminación.
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.
Nota
Necesita la siguiente clave API pública, clave API privada y la información de ID de la organización para configurar el acceso del operador de Kubernetes de Atlas a Atlas.
Otorgar acceso programático a una organización y configurar la API Access List.
Necesita la siguiente clave API pública, clave API privada y la información de ID de la organización para configurar el acceso del operador de Kubernetes de Atlas a Atlas.
Si desea que el operador de Kubernetes de Atlascree un nuevo proyecto de Atlas, otorgue acceso programático a unaorganización. Si su organización requiere una lista de acceso de IP para la API de administración de Atlas, también debe configurarla.
Importante
Debe asignar a la clave API el rol de organización Organization Project Creator o superior.
Si desea trabajar con un proyecto de Atlas existente, agregue el acceso al proyecto desdeun proyecto. Si su organización requiere una lista de acceso IP para la API de administración de Atlas, también debe configurarla.
Importante
Debe asignar al clave API el rol de proyecto Project Owner.
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 solo observe su propio espacio de nombres, configure
--watchNamespacesbandera a su propio espacio de nombres y ejecute el siguiente comando:Nota
Solo se puede establecer el
--watchNamespacesindicador en su propio espacio de nombres.--watchNamespacesActualmente no se admite establecer el indicador en ningún otro espacio 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.
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: user 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.orgId='<orgid>' \ --set atlas.publicApiKey='<publicKey>' \ --set atlas.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 -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" }
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