目前社区中看到有很多同学有替换 OCP 管控平台的需求,例如之前 OCP 平台是单节点,随着后续上线的 OceanBase 集群越来越多,担心单节点OCP出现故障,失去对OceanBase 集群的管控能力,另外当前 OCP 版本(OCP 4.2.2)单节点也无法扩容成多节点高可用集群。因此希望重新部署一个多节点的 OCP 管控平台,然后把之前的集群接管到新的 OCP 上,当然也有其他原因需要替换 OCP 的。本文就整理了下如何进行 OCP 的替换,希望可以帮助到社区的小伙伴们。
集群情况
下图是旧 OCP 平台,首先在集群页中可以看到有两个 OBServer 集群,这次测试是将 ob430 这个集群从这个 OCP 中迁移到一个新的 OCP 平台上。
下图是 OBProxy 的情况,我们迁移 OBServer 集群的时候,也别忘了把 OBProxy 一起迁过去
从旧 OCP 迁出
迁出 OBServer
首先进入到要迁移的集群页面,在右上角有三个点(...),点击这三个点,可以看到有个迁出集群的操作,我们点击这个迁出集群
然后会弹出一个对话框,需要我们确认信息:
删除主机:首先是否需要删除主机,这块如果主机上还部署有 OBProxy,就不要勾选,否则主机上的agent会被删掉,后续 OBProxy 是无法迁出的;
凭据导出:这里会导出 OBServer 的一些账号信息到文件中,需要填写一个密钥来对文件进行加密,后续在新 OCP 平台导入的时候会用到;
然后输入 move out 来确认迁出
确认之后,会在任务中心生成一个任务,直到任务执行结束,这个集群就已经顺利迁出
注:在 OCP 4.2.2 版本之前,集群迁出在页面上没有选项,需要通过命令行,这块具体通过命令行如何迁出,可以在社区群咨询官方技术人员。
迁出 OBProxy
接着迁出 OBProxy,也是同样方式,进入到要迁出的 OBProxy 集群中,在右上角有三个点,点击这三个点,选择迁出 OBProxy
这里勾选要删除的主机,因为迁出 OBProxy 之后,这台机器上再没有其他 OceanBase 相关组件,因此直接勾选删除就可以了,然后输入 move out 确认
同样会在任务中心生成一个新的迁出任务,任务执行完成之后,OBProxy 集群也就迁出完成
注:同样,在 OCP 4.2.2 版本之前,OBProxy 的迁出在页面上没有选项,需要通过命令行,这块具体通过命令行如何迁出,可以在社区群咨询官方技术人员。
新 OCP 接管集群
接管 OBServer
打开新的 OCP 平台,进入到集群页面,在右上角有一个接管集群,点击接管集群
输入对应的访问地址、端口、sys租户的密码,直接下一步
然后进入到预检查,首先有个切换当前 ConfigUrl 到本 OCP,这个默认是勾选的(但是需要注意是否有其他依赖,如OBLogProxy,修改之后可能导致不可用),另外接管主机这里,需要填写主机信息,为主机选择一个机型,然后凭据这里需要选择一个能通过 ssh 连接到主机的凭据,如果没有的话,需要先手动添加一个凭据,完成之后点击提交
此时就会在任务中心里生成一个接管集群的任务,任务执行结束之后,OBServer 集群就接管完成
可以在集群页面看到新接管的集群信息
导入凭据
接着就是凭据的导入,在迁出 OBServer 集群的时候,我们导出了该集群的凭据信息,这里进入到系统管理,凭据管理,然后点击右上角的导入凭据
选择之前导出的凭据文件,然后填写当时导出时填的加密密码,点击下一步执行导入
导入完成之后,可以看到凭据信息里多了 ob430 这个集群的凭据信息
接管 OBProxy
接着接管 OBProxy,在接管 OBProxy 这里,我们需要先为接管进来的 OBServer 集群单独创建一个 OBProxy,然后再执行接管(这个设计有些不是很友好,不过据说后续的版本会优化,不用单独再创建一个OBProxy)。这里创建的 OBProxy,在后续接管完成之后可以再删除掉,只是临时用一下
接着找一台空闲机器(OCP 已接管),给这台机器上新建一个 OBProxy,填写对应的信息,这里 root@proxysys 保持和待接管的 OBProxy 相同,选择版本、填写访问地址、关联 OceanBase 集群 ob430。另外需要注意下,启动方式这里需要保持和待接管的 OBProxy 一致,填写完毕之后,执行部署
可以在任务中心中看到这个部署任务执行情况
部署完成之后,在 OBProxy 管理页面,可以看到已经部署完成的 OBProxy
然后进入到该 OBProxy,右上角就可以选择接管 OBProxy
进入到接管页面,同样填写 root@proxysys 密码,选择对应的主机(如果 OBProxy 所在主机还未接管到集群里,需要先在主机页面进行接管),然后点击下一步
预检查成功之后,点击提交
这里需要确认下,会修改 OBProxy 的 obproxy_config_server 的参数,这个因为 OBProxy 会被新的OCP接管,所以会修改成新的 OCP 信息,确认没问题的话,直接下一步
注意,这里会重启 OBProxy,会对业务产生影响,因此建议在业务低峰执行,如果有多个 OBProxy 节点的话,最好分开一个一个接管,不要一次性接管,确认无误之后输入 confirm,执行接管
任务中心会展示整个接管过程,执行完成之后,OBProxy 就接管进来了
可以看到新接管进来的 OBProxy
接管完成之后,可以再将刚才创建的临时的 OBProxy 删除掉就行
以上就是整个 OBServer 和 OBProxy 从旧 OCP 迁出到新 OCP 接管的全部过程,如果要进行生产环境的迁移,建议各位同学现在测试环境做个演练,防止出现意外情况。