AnyShare-AnyShare 7.0 替换微服务镜像包
关键字
替换镜像包 、 升级
适用产品
- AnyShare Enterprise 7.0.x
- AnyShare Express 7.0.x
- AnyShare Cloud 7.0.x
目的
由于产品包进行问题修复或镜像更新升级,需要替换服务镜像,可参考本最佳实践,更新 pod 镜像配置。
解决方案
警告:执行以下步骤将短暂中断 AnyShare 业务,请提前准备停机时间,如有多个节点操作,务必逐台操作。
1.通过 SSH 工具登录 Anyshare 节点,执行以下命令,查看需要更新升级镜像信息,以单节点替换 webportal 镜像包为例,多节点每个节点都要查询操作。
docker images |awk 'NR==1 || /webportal/'

2.备份要替换的镜像到 /tmp 目录,如 IMAGE ID 有不一致,需要全部备份。
docker save -o /tmp/webportal.tar <REPOSITORY>:<TAG>

3.执行以下命令,删除 webportal 镜像。
注意:如为多节点,每个节点均需要操作删除镜像,镜像的 REPOSITORY 和 TAG 信息需要记录,会在第 4 步 中使用。
docker rmi -f <REPOSITORY>:<TAG>

4.将新微服务镜像 webportal.tar 包上传到所有节点,执行以下命令,导入镜像包。
docker load -i webportal.tar

5.通过镜像信息 Loaded image ID 给每个节点镜像包打上 tag ,注意路径和版本号。 <REPOSITORY>,<TAG> 为第 2 步删除的信息。
docker tag < Loaded image ID > <REPOSITORY >:<TAG>

6.执行以下命令,检查镜像 tag 是否打成功。
docker images | grep webportal
7.确认无误,执行以下命令,重启 webportal 所有 pod ,多个 <pod 名称> 可写在一行。
kubectl get po -A | grep webportal
kubectl delete po -n <namespace> <pod 名称>

更多信息
关于 docker tag 更多信息,请参考官方文档:https://docs.docker.com/engine/reference/commandline/tag/
关于 docker push 更多信息,请参考官方文档:https://docs.docker.com/engine/reference/commandline/push/