Menu Docs
Página inicial do Docs
/ /

Execução seca do Atlas Kubernetes Operator

Com o recurso de Execução Seca do Atlas Kubernetes Operator , você pode ver o que o Atlas Kubernetes Operator vai mudar no Atlas, com esses recursos personalizados aplicados ao cluster K8S. O Atlas Kubernetes Operator emite eventos para cada recurso que vai criar/atualizar/excluir no Atlas. Os eventos emitidos pelo Atlas Kubernetes Operator executando no modo de execução seca podem ser filtrados pelo motivo de "execução seca". Este recurso é útil para atualizar seus recursos do Operador Atlas.

Para utilizar a funcionalidade Executar Seca do Atlas Kubernetes Operator , você precisa:

  • Tenha acesso a um novo cluster Kubernetes ou OpenShift.

  • Aplique os recursos personalizados do Atlas Kubernetes Operator ao seu novo cluster Kubernetes. Ao aplicar seus recursos, certifique-se de fornecer um segredo com credenciais. Você precisa de um novo cluster, pois a atualização de CRDs em seu cluster Kubernetes existente pode deixar o Atlas Kubernetes Operator incapaz de reconciliar os recursos personalizados existentes. Além disso, os CRDs aplicados podem ser uma versão mais recente com possíveis alterações significativas.

    Observação

    Apenas uma versão dos CRDs Ako pode existir em um cluster Kubernetes específico. Isto significa que para testar a atualização para uma nova versão do Atlas Kubernetes Operator, você precisa implantar um novo cluster Kubernetes (possivelmente um cluster temporário) para executar a execução seca.

  • Instale CRDs em seu cluster para a versão do Atlas Kubernetes Operator para a qual você deseja executar o teste.

  • Crie uma conta de serviço do mongodb-atlas-operator no seu cluster do Kubernetes.

  • Create a papel e rolebinding para sua conta de serviço com as seguintes permissões relacionadas aos seus recursos personalizados do Atlas Kubernetes Operator. Você pode criar estes recursos manualmente ou com o Atlas CLI.

    • list

    • get

    • create

    • update

    • delete

O processo de Secagem emite os seguintes tipos de mensagem, cada um dos quais pode ser do tipo Normal ou Warning:

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

    • Uma descrição de um determinado recurso do Atlas Kubernetes Operator e o processo do Kubernetes necessário do Kubernetes caso a alteração seja aplicada ao seu ambiente do Atlas . Quando estiver no modo Executar Seca , o Atlas Kubernetes Operator somente emite eventos de execução seca para verbos HTTP que criariam/atualizarão/excluiriam recursos no Atlas, como POST, PATCH, PUT, DELETE.

  • Done

    • Nenhum outro evento de teste será relatado.

  • Finished

    • O trabalho do Kubernetes que executa o processo de execução seca foi concluído.

1

Salve o exemplo a seguir em um arquivo chamado dry-run-job.yaml e aplique-o ao seu cluster executando kubectl apply -f dry-run-job.yaml. Isto iniciará o Atlas Kubernetes Operator como um Trabalho do Kubernetes com o parâmetro --dry-run. Cada reconciliação no Atlas Kubernetes Operator será executada apenas uma vez, emitindo eventos para cada recurso se houver alterações entre a especificação do recurso e seu estado no Atlas.

Você pode executar este comando várias vezes sem fazer alterações em seus recursos do 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

Quando o Kubernetes Job estiver concluído, você poderá listar os eventos emitidos executando o seguinte comando:

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

Este comando retornará uma saída semelhante ao seguinte:

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

Execute o seguinte comando do Atlas CLI para iniciar o processo de execução seca. Você pode executar este comando várias vezes sem fazer alterações em seus recursos do Atlas .

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

Observação

Se o sinalizador --watch não for fornecido, o Atlas CLI será encerrado após concluir a instalação.

3

Quando o Kubernetes Job estiver concluído, você poderá listar os eventos emitidos executando o seguinte comando:

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

Este comando retornará uma saída semelhante ao seguinte:

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

Quando o --log-level está configurado para debug, o Atlas Kubernetes Operator fornece um desvio detalhado das alterações que você faz nos recursos do Atlas que são gerenciados pelo Atlas Kubernetes Operator. Esta comparação é particularmente útil quando utilizada em conjunto com a funcionalidade Execução Seca, pois permite que você veja as diferenças entre o estado atual dos seus recursos personalizados do Atlas Kubernetes Operator e o estado que o Atlas Kubernetes Operator aplicaria ao seu ambiente Atlas .

Esse recurso de comparação é informado comparando o resultado de quaisquer solicitações PUT ou PATCH enviadas ao Atlas com o estado atual dos recursos personalizados do Atlas Kubernetes Operator em seu ambiente Atlas .

Observação

Para facilitar essa comparação, o Atlas Kubernetes Operator faz uma solicitação GET ao Atlas para saber o estado atual dos recursos no Atlas. Como tal, recomendamos que você defina o nível de registro para depurar somente em ambientes que não sejam de produção, pois esse recurso pode aumentar a carga no Atlas.

Para ver as diferenças, é necessário definir o sinalizador --log-level=debug ao executar o comando Atlas Kubernetes Operator . Como o Atlas Kubernetes Operator utiliza registro estruturado, recomendamos analisar o desvio JSON em um visualizador de registro estruturado para melhor legibilidade humana. O exemplo seguinte mostra uma linha de registro do Atlas Kubernetes Operator DEBUG renderizada no formato YAML, conforme exibido em um visualizador de registro estruturado:

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://...

Voltar

Equipes

Nesta página