升级 JuiceFS 客户端
我们推荐你定期升级 JuiceFS 客户端,以享受到最新特性和问题修复,请参考「社区版客户端发布说明」或「云服务客户端发布说明」了解更多版本信息。
事实上,「升级 JuiceFS CSI 驱动」也会带来客户端更新,这是因为每次 CSI 驱动更新发版,都会例行在配置中采用最新版的 Mount Pod 镜像,但如果你希望提前使用最新版的 Mount Pod,可以用本章介绍的方法单独升级 JuiceFS 客户端。
升级 Mount Pod 容器镜像
目前有两种升级 Mount Pod 容器镜像的方法:
- 平滑升级 Mount Pod:这种方法可以实现不重建应用 Pod 升级已经创建好的 Mount Pod
- 有损升级 Mount Pod:这种方法必须重建应用 Pod 才能升级已经创建好的 Mount Pod
参考文档在 Docker Hub 找到新版 Mount Pod 容器镜像的标签,然后根据你使用的 CSI 驱动版本和运行模式,选择不同的升级方法:
| 0.25.0 及以上版本 | 0.25.0 以前的版本 | |
|---|---|---|
| 容器挂载(Mount Pod)模式 | 平滑升级 Mount Pod | 有损升级 Mount Pod |
| Sidecar 模式 | 有损升级 Mount Pod | 有损升级 Mount Pod |
注意,覆盖 Mount Pod 容器镜像后,JuiceFS 客户端将不会随着升级 CSI 驱动而升级。
平滑升级 Mount Pod 新增自 v0.25.0
CSI 驱动 0.25.0 及以上版本支持 Mount Pod 的平滑升级(Sidecar 和进程挂载模式不支持该特性),即在业务不停服的情况下升级 Mount Pod。由于平滑升级实际上利用了 JuiceFS 客户 端自身的平滑重启能力,因此该特性还额外允许 Mount Pod 平滑重启与恢复,详见自动恢复。
平滑升级要求
平滑升级要求 Mount Pod 的 preStop 不可配置 umount ${MOUNT_POINT} 操作,请务必确保 CSI ConfigMap 中未配置 umount。
平滑升级 Mount Pod 有两种升级方式:「Pod 重建升级」和「二进制升级」。区别在于:
- Pod 重建升级:Mount Pod 会重建,Mount Pod 的最低版本要求为 1.2.1(社区版)或 5.1.0(企业版);
- 二进制升级:Mount Pod 不重建,只升级其中的二进制,不可变更其它配置,且升级完成后在 Mount Pod 的 YAML 中看到的依然是原来的镜像。Mount Pod 的最低版本要求为 1.2.0(社区版)或 5.0.0(企业版)。
两种升级方式均为平滑升级,业务可不停服,请根据实际情况选择。
平滑升级可以在 CSI 控制台或者 JuiceFS kubectl 插件中触发,根据你的场景在下方小节中选择合适的方式。