按照适用于您的部署类型的步骤,开始使用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集群上),请参阅这些步骤。
如果跨多个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 操作符升级到最新可用版本,跳过任何中间版本。您可以使用常规升级程序进行本次升级和未来的所有升级。
要验证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.12.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#L }358 并增加MDB_MAX_CONCURRENT_RECONCILES 环境变量。
使用OpenShift或其他平台上的 操作符 Lifecycle 经理从MongoDB Enterprise Kubernetes Operator 迁移到MongoDB Controllers for Kubernetes Operator
要使用 OLM 从 MongoDB Enterprise Kubernetes Operator 迁移到 MongoDB Controllers for Kubernetes Operator(这是 OpenShift 集群上的典型部署方法,但在其他 Kubernetes 平台上也是可行的),请卸载旧操作符,然后安装新操作符:
重要
删除Enterprise Kubernetes Operator不会影响您部署到Kubernetes 的数据库和MongoDB Ops Manager资源。迁移进程不会影响您的工作负载。
从集群上的可用目录安装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控制器: