Docs Menu
Docs Home
/ /
/ / /

Inicio rápido

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 a partir de archivos de configuración de Kubernetes con Atlas Kubernetes Operator.

Nota

¿Preferirías empezar con Helm?

Para crear su primer clúster en Atlas desde Helm Charts con Atlas Kubernetes Operator, consulte Inicio rápido de gráficos Helm.

Este tutorial requiere:

  • Un clúster de Kubernetes en ejecución con nodos que ejecutan procesadores con la arquitectura x86-64, AMD64 o ARM64.

  • jq 1.6 o superior

  • Acceso al proyecto Atlas Kubernetes Operator en GitHub: https://github.com/mongodb/mongodb-atlas-kubernetes

Importante

Los recursos personalizados ya no eliminan objetos de forma predeterminada

  • El Operador de Kubernetes de Atlas utiliza archivos de configuración de recursos personalizados para administrar la configuración de Atlas. Sin embargo, a partir del Operador de Kubernetes 2.0 de Atlas, los recursos personalizados que elimine en Kubernetes ya no se eliminan (de forma predeterminada) en Atlas. En su lugar, el Operador de Kubernetes de Atlas simplemente deja de administrar esos recursos en Atlas. Por ejemplo, si elimina un AtlasProject Recurso Personalizado en Kubernetes, el Operador de Kubernetes de Atlas ya no elimina automáticamente el proyecto correspondiente de Atlas. Este cambio de comportamiento tiene como objetivo evitar eliminaciones accidentales o inesperadas. Para obtener más información, incluido cómo revertir este comportamiento al valor predeterminado utilizado antes del Operador de Kubernetes 2 0de Atlas., consulte Nuevo valor predeterminado: Protección contra eliminaciones en el Operador de Kubernetes 2 de0 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 personalizado AtlasDeployment, 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
1

Registre una nueva cuenta Atlas o inicie sesión en su cuenta Atlas.

2

Elija uno de los siguientes métodos para instalar Atlas Kubernetes Operator:

Para instalar Atlas Kubernetes Operator mediante la CLI de Atlas, ejecute el siguiente comando:

Importante

La CLI de Atlas crea una Clave API, pero no se puede detectar la IP de salida de tu clúster. Usa el indicador para incluir en la --ipAccessList lista blanca la IP o el bloque CIDR de tu clúster de Kubernetes para que el operador de Kubernetes de Atlas pueda comunicarse con Atlas.

atlas kubernetes operator install --ipAccessList <IP_OR_CIDR> [options]

Este comando automáticamente:

  • Crea una nueva clave API en tu organización Atlas.

  • Agrega su IP/CIDR proporcionado a la lista de acceso IP de la clave API.

  • Instala Atlas Kubernetes Operator en tu clúster de Kubernetes obteniendo los manifiestos de GitHub.

Para obtener más información sobre la sintaxis del comando y los parámetros, consulta la documentación de Atlas CLI para atlas kubernetes operator install.

Para instalar Atlas Kubernetes Operator usando kubectl, siga estos pasos:

  1. Reemplace <VERSION> con el último número de versión y ejecute uno de los siguientes comandos:

    • Si desea que Atlas Kubernetes Operator supervise todos los espacios de nombres en el clúster de Kubernetes, ejecute:

      kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/refs/heads/main/releases/v<VERSION>/deploy/all-in-one.yaml
    • Si desea que Atlas Kubernetes Operator solo observe su espacio de nombres, instale los archivos de configuración del deploy/namespaced directorio:

      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
  2. Cree una clave API con Organization Project Creator permisos o siguiendo el Project Owner procedimiento descrito en Otorgar acceso programático a una organización.

3

Para crear y etiquetar un secreto, ejecute los siguientes comandos con sus claves API y el ID de la organización:

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

Si usa almacenamiento secreto externo, no necesita guardar información confidencial directamente en los secretos de Kubernetes. Para obtener más información, consulte Configurar almacenamiento secreto.

4

Ejecute el siguiente comando para crear el AtlasProject recurso personalizado:

Nota

El siguiente ejemplo no especifica spec.connectionSecretRef.name. Si no se especifica, Atlas Kubernetes Operator usa el secreto de conexión predeterminado previamente configurado con sus claves de API y el ID de organización.

Implemente el recurso personalizado 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
5

Ejecute uno de los siguientes comandos para crear un AtlasDeployment recurso personalizado y crear un clúster:

Nivel de 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

Nivel 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 crear una instancia sin servidor, consulte el ejemplo de instancia sin servidor.

6

Reemplace P@@ssword% con su contraseña y ejecute los siguientes comandos:

kubectl create secret generic the-user-password --from-literal="password=P@@sword%"
kubectl label secret the-user-password atlas.mongodb.com/type=credentials

Si usa almacenamiento secreto externo, no necesita guardar información confidencial directamente en los secretos de Kubernetes. Para obtener más información, consulte Configurar almacenamiento secreto.

7

Ejecute el siguiente comando para crear el AtlasDatabaseUser recurso personalizado:

Nota

spec.passwordSecretRef debe hacer referencia a la contraseña que creó 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
8

Ejecute el siguiente comando hasta que reciba una respuesta True, que indica que el usuario de la base de datos está listo:

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.

kubectl get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
9
  1. Copie el siguiente comando:

    Importante

    El siguiente comando requiere jq 1.6 o superior.

    kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)';
  2. Reemplace los siguientes marcadores de posición con los detalles de sus recursos personalizados:

    my-project

    Especifique el valor del metadata campo de su AtlasProject recurso personalizado.

    my-atlas-cluster

    Especifique el valor del metadata campo de su AtlasDeployment recurso personalizado.

    my-database-user

    Especifique el valor del metadata campo de su AtlasDatabaseUser recurso personalizado.

  3. Ejecuta el comando.

    Nota

    Las cadenas de conexión serán diferentes a las del siguiente ejemplo.

    {
    "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"
    }

    Puedes usar este secreto en tu aplicación:

    containers:
    - name: test-app
    env:
    - name: "CONNECTION_STRING"
    valueFrom:
    secretKeyRef:
    name: test-atlas-operator-project-test-cluster-theuser
    key: connectionStringStandardSrv

Volver

Empezar