按照适用于您的部署类型的步骤,开始使用MongoDB Controllers for Kubernetes Operator(而不是MongoDB Enterprise Kubernetes Operator)管理MongoDB Enterprise和 MongoDB Ops Manager 部署。
对于大多数部署,从MongoDB Enterprise Operator 迁移到MongoDB Controllers for Kubernetes Operator
在大多数部署场景中,请按照以下步骤进行迁移。如果您使用 Operator Lifecycle 经理 (OLM)管理操作符部署(通常在OpenShift集群上),请参阅这些步骤。
升级到 v1.33 的MongoDB Enterprise Kubernetes Operator。
有关从早期版本的 Kubernetes 操作符 升级到 v1.33 的说明,请参阅 升级指南。
如果跨多个Kubernetes集群部署资源,请执行以下两个任务:
备份
kubectl插件二进制文件。这样,在遇到问题时,您可以更轻松地反向迁移到Kubernetes Operator 的MongoDB控制器。按照多集群设置文档配置(确保使用Kubernetes Operator发布的MongoDB控制器中的
kubectl插件)或手动使用 Helm 模板来配置成员集群。重要
在步骤 5 中部署适用于Kubernetes Operator 的MongoDB控制器之前,必须将适用于Kubernetes Operator 的 RBAC 的MongoDB控制器部署到成员集群。新的 RBAC 资源以
mongodb-kubernetes-operator-开头。您还必须确保在运行最新版本的kubectl插件二进制文件后,您的操作符集群上存在mongodb-kubernetes-operator-member-list。
手动安装适用于Kubernetes Operator CRD 的MongoDB控制器。
kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.0.1/public/crds.yaml
将部署迁移到1.0.1 后,我们建议您将MongoDB Controllers for Kubernetes Operator 直接升级到最新可用版本,跳过任何中间版本。您可以使用常规升级程序进行本次升级和未来的所有升级。
要验证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
为Kubernetes Operator 安装新的MongoDB控制器。
选择以下安装方法之一:
警告
如果您已覆盖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>
警告
如果您为 Enterprise Kubernetes Operator 部署自定义了 YAML 配置,请确保您的自定义设置与 MongoDB Controllers for Kubernetes 操作符部署兼容,以避免出现可能阻止迁移成功的资源命名冲突。
运行以下 kubectl 命令,将所选版本的 Kubernetes 操作符 部署到 Kubernetes 集群:
kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.6.0/public/mongodb-kubernetes.yaml
MongoDB Controllers for Kubernetes Operator 调节器运行并处理现有的自定义资源。
MongoDB Controllers for Kubernetes Operator 应用更新的映像、ServiceAccounts 和其他资源。
如果您有初始化容器映像的自定义安全配置,更新YAML 文件以使用新的 mongodb-kubernetes- 前缀,而不是 mongodb-enterprise-。
重要
此步骤会触发已部署 Pod 的滚动重启,因为 RBAC 名称已从MongoDB Enterprise Kubernetes Operator 更改为MongoDB Controllers for Kubernetes Operator。
等待资源协调(达到 Running 阶段)并恢复正常。
默认下, Kubernetes Operator 的MongoDB控制器不会并行协调多个资源。要更改默认行为,请参阅 https://github.com/mongodb/mongodb-kubernetes/blob/master/public/mongodb-kubernetes.yaml#L358 并增加 MDB_MAX_CONCURRENT_RECONCILES 环境变量。
使用OpenShift或其他平台上的 Operator Lifecycle 经理从MongoDB Enterprise Kubernetes Operator 迁移到MongoDB Controllers for Kubernetes Operator
要使用 OLM 从MongoDB Enterprise Kubernetes Operator迁移到MongoDB Controllers for Kubernetes Operator(这是OpenShift集群上的典型部署方法,但在其他Kubernetes平台上也是可行的),请卸载旧操作符 ,然后安装新 Operator:
重要
删除Enterprise Kubernetes Operator不会影响您部署到Kubernetes 的数据库和MongoDB Ops Manager资源。迁移进程不会影响您的工作负载。
升级到 v1.33 的MongoDB Enterprise Kubernetes Operator。
有关从早期版本的 Kubernetes 操作符 升级到 v1.33 的说明,请参阅 升级指南。
从集群上的可用目录安装MongoDB Controllers for Kubernetes Operator。
适用于Kubernetes Operator 的MongoDB控制器可在 Red Hat 的认证 Operator 目录和Operatorhub.io目录中找到。
kubectl create -f <path-to-bundle>
从Community Kubernetes Operator迁移到MongoDB Controllers for Kubernetes Operator
请参阅以下资源,学习;了解如何迁移到Kubernetes Operator 的MongoDB控制器: