对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

迁移到Kubernetes Operator 的MongoDB控制器

按照适用于您的部署类型的步骤,开始使用MongoDB Controllers for Kubernetes Operator(而不是MongoDB Enterprise Kubernetes Operator)管理MongoDB Enterprise和MongoDB Ops Manager部署。

在大多数部署场景中,请按照以下步骤进行迁移。如果您使用 Operator Lifecycle 经理 (OLM)管理操作符部署(通常在OpenShift集群上),请参阅这些步骤。

1

在迁移之前,将您的 MongoDB Enterprise Kubernetes Operator 部署升级到 v1.33。升级过程要求您通过每个小版本逐步升级。示例,如果您要从版本 1.31.x 升级,您必须首先升级到 1.32.x在继续到 1.33.x 之前。

2

这会阻止MongoDB Enterprise Kubernetes Operator 和MongoDB Controllers for Kubernetes Operator运行。

3
  1. 备份 kubectl 插件二进制文件。这样,在遇到问题时,您可以更轻松地反向迁移到Kubernetes Operator 的MongoDB控制器。

  2. 配置节点集群,可通过遵循多集群设置文档(确保使用 MongoDB Controllers for Kubernetes 操作符版本中的 kubectl 插件)或手动使用 Helm 模板。

    重要

    在执行步骤 5 部署 MongoDB Controllers for Kubernetes 操作符之前,必须先将 MongoDB Controllers for Kubernetes 操作符的 RBAC 部署到节点集群中。新的 RBAC 资源以 mongodb-kubernetes-operator- 开头。在运行最新版本的 kubectl 插件二进制文件后,您还必须确保 mongodb-kubernetes-operator-member-list 存在于您的 中央集群 上。

4
kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.0.1/public/crds.yaml

将部署迁移到 1.0.1 后,我们建议您直接将MongoDB Controllers for Kubernetes 操作符升级到最新可用版本,跳过任何中间版本。您可以使用常规升级程序进行本次升级和未来的所有升级。

要验证Kubernetes集群上是否安装了 CRD,搜索mongodbcommunity CRD:

提示

MongoDB Ops Manager和MongoDB Enterprise的自定义资源名称在MongoDB Controllers for Kubernetes Operator 中没有更改。 尽管您可能没有部署MongoDB Community资源,但搜索 mongodbcommunity 自定义资源是验证MongoDB Controllers for Kubernetes Operator 安装的最简单方法。

kubectl get crds | grep mongodbcommunity
5

选择以下安装方法之一:

警告

如果您已覆盖Enterprise Kubernetes Operator部署的默认Helm 图表值,则不应为Kubernetes Operator部署的MongoDB控制器使用相同的值,因为资源名称可能会发生冲突并阻止迁移成功。

helm repo add mongodb https://mongodb.github.io/helm-charts && \
helm repo update && \
helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes --namespace <your-namespace>
6

MongoDB Controllers for Kubernetes Operator 应用更新的映像、ServiceAccounts 和其他资源。

如果您有初始化容器映像的自定义安全配置,更新YAML 文件以使用新的 mongodb-kubernetes- 前缀,而不是 mongodb-enterprise-。

重要

此步骤会触发已部署 Pod 的滚动重启,因为 RBAC 名称已从MongoDB Enterprise Kubernetes Operator 更改为MongoDB Controllers for Kubernetes Operator。

7

默认情况下,MongoDB Controllers for Kubernetes 操作符 不会并行协调多个资源。要更改默认行为,请参阅 https://github.com/mongodb/mongodb-kubernetes/blob/1.10.0/public/mongodb-kubernetes.yaml#L425 并增加 MDB_MAX_CONCURRENT_RECONCILES 环境变量。

8

现在,您可以删除MongoDB Enterprise Kubernetes Operator 的 Helm 图表 ,以及所有Kubernetes集群上的 RBAC 和任何备份的 kubectl 插件二进制文件。

如果您已跨多个Kubernetes集群部署资源,则现在可以安全地从成员集群中删除mongodb-enterprise,并删除备份的 kubectl 插件二进制文件。

要使用 OLM 从 MongoDB Enterprise Kubernetes Operator 迁移到 MongoDB Controllers for Kubernetes Operator(这是 OpenShift 集群上的典型部署方法,但在其他 Kubernetes 平台上也是可行的),请卸载旧操作符,然后安装新操作符:

重要

删除Enterprise Kubernetes Operator不会影响您部署到Kubernetes 的数据库和MongoDB Ops Manager资源。迁移进程不会影响您的工作负载。

1

在迁移之前,将您的 MongoDB Enterprise Kubernetes Operator 部署升级到 v1.33。升级过程要求您通过每个小版本逐步升级。示例,如果您要从版本 1.31.x 升级,您必须首先升级到 1.32.x在继续到 1.33.x 之前。

2

这会阻止MongoDB Enterprise Kubernetes Operator 和MongoDB Controllers for Kubernetes Operator运行。

3

将 <subscription-namespace> 和 <subscription-name> 替换为与您的资源相对应的值。

kubectl -n <subscription-namespace> delete subscription <subscription-name>
4

通常可以通过在操作符的命名空间中列出 CSV 来找到逗号分隔值(CSV)名称。将 <operator-namespace> 和 <csv-name> 替换为适当的值。

kubectl -n <operator-namespace> delete csv <csv-name>
5

适用于Kubernetes Operator 的MongoDB控制器可在 Red Hat 的认证 Operator 目录和Operatorhub.io目录中找到。

kubectl create -f <path-to-bundle>

请参阅以下资源,学习;了解如何迁移到Kubernetes Operator 的MongoDB控制器: