Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Atlas Kubernetes Operator Dry ejecutar

Con la funcionalidad del Atlas Kubernetes Operator Dry Run, puedes ver qué va a cambiar Atlas Kubernetes Operator en Atlas cuando se apliquen esos recursos personalizados al clúster de K8S. Atlas Kubernetes Operator emite eventos para cada recurso que se va a crear/actualizar/borrar en Atlas. Los eventos emitidos por el Atlas Kubernetes Operator ejecutándose en modo de Dry Run pueden filtrarse por la razón "Dry Run". Esta funcionalidad es útil para actualizar tus recursos de Atlas Operator.

Para usar la función Dry Run de Atlas Kubernetes Operator, necesitas:

  • Tener acceso a un nuevo clúster de Kubernetes u OpenShift.

  • Aplique los recursos personalizados de Atlas Kubernetes Operator a su nuevo clúster de Kubernetes. Al aplicar los recursos, asegúrese de proporcionar una Secreto con credenciales. Necesita un nuevo clúster, ya que actualizar los CRD en su clúster de Kubernetes existente podría impedir que Atlas Kubernetes Operator pueda conciliar los recursos personalizados existentes. Además, los CRD aplicados pueden ser una versión más reciente con posibles cambios importantes.

    Nota

    Solo puede existir una versión de los CRD de AKO en un clúster específico de Kubernetes. Esto significa que para probar la actualización a una nueva versión del Atlas Kubernetes Operator, se debe implementar un nuevo clúster de Kubernetes (posiblemente un clúster temporal) para ejecutar la prueba seca.

  • Instale CRD en su clúster para la versión de Atlas Kubernetes Operator con la que desee ejecutar dry-run.

  • Crear un(a) mongodb-atlas-operator cuenta de servicio en tu clúster de Kubernetes.

  • Crear un rol y rolebinding para tu cuenta de servicio con los siguientes permisos relacionados con tus recursos personalizados de Atlas Kubernetes Operator. Puedes crear estos recursos manualmente o con el CLI de Atlas.

    • list

    • get

    • create

    • update

    • delete

El proceso de ejecución en seco emite cualquiera de los siguientes tipos de mensajes, cada uno de los cuales puede ser de tipo Normal o Warning:

  • Would [verb] ([HTTP-Method]) [Atlas resource URL]

    • Descripción de un recurso de Operador de Kubernetes de Atlas y el proceso de Kubernetes requerido si el cambio se aplica a su entorno de Atlas. En modo de ejecución en seco, Operador de Kubernetes de Atlas solo emite eventos de ejecución en seco para verbos HTTP que crean, actualizan o eliminan recursos en Atlas, como POST, PATCH, PUT y DELETE.

  • Done

    • No se reportarán más eventos de ejecución de prueba.

  • Finished

    • Se completó el trabajo de Kubernetes que ejecuta el proceso de ejecución en seco.

1

Guarde el siguiente ejemplo en un archivo llamado dry-run-job.yaml y aplíquelo a su clúster ejecutando kubectl apply -f dry-run-job.yaml. Esto iniciará el Atlas Kubernetes Operator como una tarea de Kubernetes con el parámetro --dry-run. Cada reconciliación en Atlas Kubernetes Operator se ejecutará solo una vez, emitiendo eventos para cada recurso si hay cambios entre las especificaciones del recurso y su estado en Atlas.

Puede ejecutar este comando varias veces sin realizar ningún cambio en sus recursos de Atlas.

1apiVersion: batch/v1
2kind: Job
3metadata:
4 name: ako-dry-run
5 namespace: mongodb-atlas-system
6spec:
7 backoffLimit: 1
8 template:
9 spec:
10 containers:
11 - args:
12 - --atlas-domain=https://cloud.mongodb.com/
13 - --log-level=info
14 - --log-encoder=json
15 - --dry-run
16 command:
17 - /manager
18 env:
19 - name: OPERATOR_POD_NAME
20 value: ako-dry-run
21 - name: OPERATOR_NAMESPACE
22 value: mongodb-atlas-system
23 - name: WATCH_NAMESPACE
24 value: mongodb-atlas-system
25 - name: JOB_NAME
26 value: ako-dry-run
27 image: quay.io/mongodb/mongodb-atlas-kubernetes-operator:2.8.0
28 imagePullPolicy: Always
29 livenessProbe:
30 failureThreshold: 3
31 httpGet:
32 path: /healthz
33 port: 8081
34 scheme: HTTP
35 initialDelaySeconds: 15
36 periodSeconds: 20
37 successThreshold: 1
38 timeoutSeconds: 1
39 name: ako-dry-run
40 restartPolicy: Never
41 serviceAccountName: mongodb-atlas-operator
2

Cuando se termine la tarea de Kubernetes, puedes listar los eventos emitidos ejecutando el siguiente comando:

kubectl -n mongodb-atlas-system get events --field-selector reason=DryRun

Este comando devolverá un resultado similar al siguiente:

LAST SEEN TYPE REASON OBJECT MESSAGE
103s Normal DryRun atlasproject/my-project Would delete (DELETE) /api/atlas/v1.0/groups/6558f184beba40022cbb2043/integrations/SLACK
101s Warning DryRun atlasproject/my-project finished dry run
1
atlas kubernetes operator install --targetNamespace=mongodb-atlas-system --config-only
2

Ejecute el siguiente comando de Atlas CLI para iniciar el proceso de ejecución en seco. Puedes ejecutar este comando varias veces sin realizar cambios en tus recursos de Atlas.

atlas kubernetes dry-run --targetNamespace=mongodb-atlas-system --watch

Nota

Si la bandera --watch no se proporciona, la Atlas CLI termina después de completar la instalación.

3

Cuando se termine la tarea de Kubernetes, puedes listar los eventos emitidos ejecutando el siguiente comando:

kubectl -n mongodb-atlas-system get events --field-selector reason=DryRun

Este comando devolverá un resultado similar al siguiente:

LAST SEEN TYPE REASON OBJECT MESSAGE
103s Normal DryRun atlasproject/my-project Would delete (DELETE) /api/atlas/v1.0/groups/6558f184beba40022cbb2043/integrations/SLACK
101s Warning DryRun atlasproject/my-project finished dry run

Cuando --log-level se configura en debug, el Atlas Kubernetes Operator proporciona una diferencia detallada de los cambios que realices en los recursos de Atlas gestionados por el Atlas Kubernetes Operator. Este diff es especialmente útil cuando se utiliza junto con la funcionalidad Ejecución en seco, ya que permite ver las diferencias entre el estado actual de los recursos personalizados de su Atlas Kubernetes Operator y el estado que el Atlas Kubernetes Operator aplicaría a su entorno Atlas.

Esta funcionalidad de diferencia está informada por la comparación del resultado de cualquier solicitud PUT o PATCH enviada a Atlas con el estado actual de los recursos personalizados de Atlas Kubernetes Operator en tu entorno de Atlas.

Nota

Para facilitar esta comparación, el Atlas Kubernetes Operator realiza una solicitud GET a Atlas para aprender el estado actual de los recursos en Atlas. Por lo tanto, recomendamos que solo se establezca el nivel de registro en depuración en entornos que no sean de producción, ya que esta funcionalidad puede aumentar la carga en Atlas.

Para ver las diferencias, debe establecer el indicador --log-level=debug al ejecutar el comando Operador de Atlas Kubernetes. Dado que el Operador de Atlas Kubernetes utiliza registro estructurado, recomendamos analizar la diferencia JSON en un visor de registro estructurado para una mejor legibilidad. El siguiente ejemplo muestra una línea de registro del Operador DEBUG de Atlas Kubernetes en formato YAML, tal como se muestra en un visor de registro estructurado:

apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: test
namespace: flex
spec:
flexSpec:
name: test
providerSettings:
backingProviderName: AWS
regionName: US_EAST_1
terminationProtectionEnabled: true -> false
projectRef:
name: test
1 | diff: |
2 | {
3 | - "backupSettings": {
4 | - "enabled": true
5 | - },
6 | - "clusterType": "REPLICASET",
7 | - "connectionStrings": {
8 | - "standard": "...",
9 | - "standardSrv": "..."
10 | - },
11 | - "createDate": "2025-07-21T09:52:06Z",
12 | - "groupId": "687e0db8823af91...",
13 | - "id": "687e0dc6426db7026...",
14 | - "mongoDBVersion": "8.0.11",
15 | - "name": "test",
16 | - "providerSettings": {
17 | - "backingProviderName": "AWS",
18 | - "diskSizeGB": 5,
19 | - "providerName": "FLEX",
20 | - "regionName": "US_EAST_1"
21 | - },
22 | - "stateName": "IDLE",
23 | "tags": [
24 | ],
25 | - "terminationProtectionEnabled": false,
26 | + "terminationProtectionEnabled": true,
27 | - "versionReleaseSystem": "LTS"
28 | }
29 | level: DEBUG
30 | msg: JSON diff
31 | time: 2025-07-22T18:07:01.163+0200
32 | url: https://...

Next

Overview

En esta página