Docs Menu
Docs Home
/ /

Atlas Kubernetes Operator Dry ejecutar

Con la función de ejecución en seco del operador de Kubernetes de Atlas, puede ver qué cambios realizará el operador de Kubernetes de Atlas en Atlas, con esos recursos personalizados aplicados al clúster K8S. El operador de Kubernetes de Atlas emite eventos para cada recurso que cree, actualice o elimine en Atlas. Los eventos emitidos por el operador de Kubernetes de Atlas que se ejecuta en modo de ejecución en seco se pueden filtrar por el motivo de la ejecución en seco. Esta función es útil para Actualizando sus recursos de Operador Atlas.

Para utilizar la función Atlas Kubernetes Operator Dry Run, debe:

  • 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 de Kubernetes específico. Esto significa que, para probar la actualización a una nueva versión de Atlas Kubernetes Operator, debe implementar un nuevo clúster de Kubernetes (posiblemente uno temporal) para ejecutar el simulacro.

  • Instale CRD en su clúster para la versión del operador Atlas Kubernetes para el que desea ejecutar el ensayo.

  • Crear una mongodb-atlas-operator cuenta de servicio en su clúster de Kubernetes.

  • Crear un roly vinculación de roles para su cuenta de servicio con los siguientes permisos relacionados con sus recursos personalizados de Operador de Kubernetes de Atlas. Puede crear estos recursos manualmente o con la CLI de Atlas.

    • list

    • get

    • create

    • update

    • delete

El proceso Dry Run emite los siguientes tipos de mensajes, cada uno de los cuales puede ser del 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 en seco.

  • 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á Atlas Kubernetes Operator como un trabajo de Kubernetes con el parámetro --dry-run. Cada conciliación en Atlas Kubernetes Operator se ejecutará solo una vez y emitirá eventos para cada recurso si hay cambios entre la especificación del recurso y su estado en Atlas.

Puede ejecutar este comando varias veces sin realizar ningún cambio en sus recursos 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 finaliza el trabajo de Kubernetes, puedes enumerar 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 CLI de Atlas para iniciar el proceso de simulacro. Puede ejecutar este comando varias veces sin realizar cambios en sus recursos de Atlas.

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

Nota

Si no se proporciona el indicador --watch, la CLI de Atlas sale después de completar la instalación.

3

Cuando finaliza el trabajo de Kubernetes, puedes enumerar 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 establece en debug, el Operador de Kubernetes de Atlas proporciona una diferencia detallada de los cambios que realiza en los recursos de Atlas administrados por él. Esta diferencia es especialmente útil cuando se usa junto con la función de simulacro, ya que permite ver las diferencias entre el estado actual de sus recursos personalizados del Operador de Kubernetes de Atlas y el estado que el Operador de Kubernetes de Atlas aplicaría a su entorno de Atlas.

Esta función de diferenciación se basa en 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 su entorno Atlas.

Nota

Para facilitar esta comparación, el operador de Kubernetes de Atlas realiza una solicitud GET a Atlas para conocer el estado actual de sus recursos. Por lo tanto, recomendamos configurar el nivel de registro en depuración solo en entornos que no sean de producción, ya que esta función 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://...

Volver

Equipos

En esta página