Bootstrap

JumServer 平滑迁移【生产环境案例】

JumpServer 平滑迁移

大家好,我是秋意零。今天,分享一个生产JumpServer平滑迁移案例。

背景:生产环境中有一套通过Helm部署的JumpServer。因机房物理服务器规划调整,需某些物理服务器需回收,更换新的物理服务器。在物理服务器回收前,需将上面运行的服务进行迁移。

操作步骤

本文中旧新环境关系:旧环境中的JumpServer迁移到新环境。同时下列所说生产环境也指旧环境。

在执行迁移任务前,先捋清楚操作步骤。

在新K8s集群中,部署好与旧K8s集群中,相同的JumpServer版本。部署时数据层使用备份的MySQL、Redis中的数据。不与旧版本冲突。待测试完功能和数据正常之后,将所属域名解析切换即可。具体步骤如下:

  1. 准备备份的数据库地址(MySQL、Redis)
  2. 准备一个访问域名(可忽略,IP访问也行)
  3. 在新K8s集群中部署相同版本的JumpServer
  4. 测试功能是否正常
  5. 功能正常后切回数据库(MySQL、Redis)为生产数据库,同时切回为生产环境的域名
  6. 修改域名解析

平滑迁移步骤

说明:这里的JumpServer采用Helm方式部署的

1)拷贝旧环境中的JumpServer版本

首先需要在旧环境中将JumpServer部署的版本,拷贝到新环境中

scp -r /opt/jumpserver-3.10.9.tgz/ 192.168.200.10:/opt

在新环境中解压jumpserver-3.10.9.tgz

tar -xf jumpserver-3.10.9.tgz

Helm部署的JumpServer,只修改values.yaml文件进行配置即可。为了新环境与旧环境的JumpServer配置保持一致,可以直接拷贝旧环境的values.yaml文件

scp -r /opt/jumpserver/ 192.168.200.10:/opt

2)修改values.yaml文件

这个时候由于我们不能马上使用旧环境的values.yaml文件,因为需要先修改数据库与域名信息(先使用备份数据库与其他域名)

如果不知道旧环境与新环境的values.yaml改动在哪里的时候,可以通过进行文本文件对比工具区分查看。如图:

在线文本文件对比:https://www.qianbo.com.cn/Tool/File-Difference/

左边是默认未修改的values.yaml文件,右边是旧环境配置后的values.yaml文件

注意:values.yaml文件中Redis配置信息,不能配置Redis集群,否则会报错。如图:

新环境secretKey与bootstrapToken字段的值需与旧环境的保持一致,否则会导致数据库加密数据无法解密。

具体表现形式就是,之前配置的资产密码都解析不了,就需要每台机器手动输入密码了。

3)启动/验证

配置后就可以正常启动了

# 安装启动JumpServer
helm install jms-k8s jumpserver -n jumpserver

# 更新(配置有变动执行)
helm upgrade jms-k8s jumpserver -n jumpserver

# 查看安装的Chat
helm list -n jumpserver

# 删除JumpServer
helm uninstall jms-k8s -n jumpserver

4)切换数据库与域名

验证没有问题之后。修改values.yaml文件中的数据库与域名信息,使其新环境与旧环境保持一致即可。

修改后,再次启动JumpServer。

# 更新(配置有变动执行)
helm upgrade jms-k8s jumpserver -n jumpserver

5)开放SVC远程连接端口。紧接着就可以修改旧环境中JumpServer使用的域名的解析为新环境解析,从而达到平滑迁移的目标。

30222该端口服务是JumpServer的SSH终端连接端口

 kubectl edit svc -n jumpserver jms-k8s-jumpserver-jms-koko

添加这部分内容

参考

在线安装 - JumpServer 文档:https://docs.jumpserver.org/zh/v4/installation/setup_kubernetes/helm_online_install/

迁移文档 - JumpServer 文档:https://docs.jumpserver.org/zh/v4/installation/migration/?h=迁移

End

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;