Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu 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 do Atlas.

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

  • Tenha acesso a um novo cluster Kubernetes ou OpenShift.

  • Apply Atlas Kubernetes Operator custom resources to your new Kubernetes cluster. When you apply your resources, make sure you provide a secret with credentials. You need a new cluster, because upgrading CRDs on your existing Kubernetes cluster might leave Atlas Kubernetes Operator unable to reconcile existing custom resources. Moreover, the CRDs that are applied can be a newer version with potential breaking changes.

    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.

  • Crie um role e uma associação de role 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

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