Docs 菜单
Docs 主页
/ /
MongoDB Atlas Kubernetes Operator

Atlas Kubernetes Operator试运行

在此页面上

  • 先决条件
  • 试运行事件
  • 步骤

借助Atlas Kubernetes Operator试运行功能,您可以查看Atlas Kubernetes Operator将在Atlas中更改哪些内容,并将这些自定义资源应用于 K8S集群。Atlas Kubernetes Operator为其将在Atlas中创建/更新/删除的每个资源发出事件。在试运行模式下运行的Atlas Kubernetes Operator发出的事件可以按“试运行”原因进行筛选。此功能对于将Atlas Kubernetes Operator资源从 v1.9 升级到 v2.x 特别有用。

要使用Atlas Kubernetes Operator试运行功能,您需要:

  • 可以访问权限新的Kubernetes或 Open Shift集群

  • 将Atlas Kubernetes Operator自定义资源应用到新的Kubernetes集群。应用资源时,请确保提供带有凭证的 密钥。您需要一个新的集群,因为在现有Kubernetes集群上升级 CRD 可能会导致Atlas Kubernetes Operator无法协调现有的自定义资源。此外,应用的 CRD 可能是具有潜在重大更改的新版本。

    注意

    特定Kubernetes集群中只能存在一个版本的 AKO CRD。这意味着,要测试升级到新版本的Atlas Kubernetes Operator,您需要部署一个新的Kubernetes集群(可能是临时集群)来执行试运行。

  • 在您要执行空运行的Atlas Kubernetes Operator版本的集群中安装 CRD。

  • 在Kubernetes集群中创建一个 mongodb-atlas-operator 服务帐户。

  • 为服务帐户创建角色 和角色绑定,并具有与Atlas Kubernetes Operator自定义资源相关的以下权限。您可以手动或使用Atlas CLI创建这些资源。

    • list

    • get

    • create

    • update

    • delete

空运行进程会发出以下消息类型,每种消息类型可以是 NormalWarning 类型:

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

    • 如果将更改应用于Atlas环境,则对给定Atlas Kubernetes Operator资源以及Kubernetes所需的Kubernetes进程进行描述。处于空运行模式时, Atlas Kubernetes Operator仅会为会在Atlas中创建/更新/删除资源的HTTP动作发出空运行事件,例如 POSTPATCHPUTDELETE

  • Done

    • 不会再报告任何空运行事件。

  • Finished

    • 运行试运行进程的Kubernetes作业已完成。

1

将以下示例保存在名为 dry-run-job.yaml 的文件中,并通过运行kubectl apply -f dry-run-job.yaml 将其应用集群。这将使用 --dry-run 参数将Atlas Kubernetes Operator作为Kubernetes作业启动。Atlas Kubernetes Operator中的每次协调仅运行一次,如果Atlas中的资源规范与其状态之间发生变化,则为每个资源发出事件。

您可以多次运行此命令,而无需对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

Kubernetes作业完成后,您可以通过运行以下命令列出发出的事件:

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

此命令将返回类似于以下内容的输出:

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

运行以下Atlas CLI命令以启动试运行进程。您可以多次运行此命令,而无需对Atlas资源进行任何更改。

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

注意

如果未提供 --watch 标志, Atlas CLI将在完成安装后退出。

3

Kubernetes作业完成后,您可以通过运行以下命令列出发出的事件:

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

此命令将返回类似于以下内容的输出:

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

后退

团队