Docs Menu
Docs Home
/ /
Empezar
/ / /

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 arquitectura x86-64, AMD64 o ARM64.

  • jq 1.6 o superior

Puede acceder al proyecto Atlas Kubernetes Operator en GitHub:

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

atlas kubernetes operator install [options]

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.

Tip

Consulte: Enlaces relacionados

Importante

Los recursos personalizados ya no eliminan objetos de forma predeterminada

Atlas Kubernetes Operator utiliza archivos de configuración de recursos personalizados para administrar la configuración de Atlas. Sin embargo, a partir de Atlas Kubernetes Operator 2.0, los recursos personalizados que elimine en Kubernetes ya no se eliminan en Atlas. En su lugar, Atlas Kubernetes Operator simplemente deja de administrarlos. Por ejemplo, si elimina un recurso AtlasProject personalizado en Kubernetes, Atlas Kubernetes Operator ya no elimina automáticamente el proyecto correspondiente de Atlas, lo que evita eliminaciones accidentales o inesperadas. Para obtener más información, incluido cómo revertir este comportamiento al valor predeterminado anterior a Atlas Kubernetes Operator 2.0, consulte Nuevo valor predeterminado: Protección contra eliminación en Atlas Kubernetes Operator 2.0.

1

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

2

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.

3

En uno de los siguientes escenarios, reemplace <version> con el último número de versión:

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

    kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<version>/deploy/all-in-one.yaml
  • Si desea que Atlas Kubernetes Operator solo observe su espacio de nombres, debe instalar los archivos de configuración desde el 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
4

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.

5

Ejecute el siguiente comando para crear el AtlasProject recurso personalizado:

Nota

El siguiente ejemplo no spec.connectionSecretRef.name especifica. 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.

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test Atlas Operator Project
projectIpAccessList:
- cidrBlock: "0.0.0.0/0"
comment: "Allowing access to database from everywhere (only for Demo!)"
EOF

Advertencia

El bloque CIDR 0.0.0.0/0 del ejemplo permite que cualquier cliente se conecte al clúster Atlas. No utilice esta dirección IP en producción.

6

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.

7

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.

8

Ejecute el siguiente comando para crear el AtlasDatabaseUser recurso personalizado:

Nota

spec.passwordSecretRef debe hacer referencia a la contraseña que usted 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
9

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}'
10
  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