定制容器镜像
本章介绍如何设置 Mount Pod 镜像,以及自行构建 CSI 驱动组件镜像。
Mount Pod 镜像拆分
Mount Pod 中运行着 JuiceFS 客户端,而 JuiceFS 又提供「社区版」和「商业版」客户端,因此在很长一段时间,Mount 镜像中同时包含着两个版本的 JuiceFS 客户端:
/usr/local/bin/juicefs
:社区版 JuiceFS 客户端/usr/bin/juicefs
:商业版 JuiceFS 客户端
为了避免误用、同时精简容器镜像,在 CSI 驱动 0.19.0 及以上版本对镜像进行了拆分,你可以在 Docker Hub 找到 CSI 驱动所使用的 Mount Pod 容器镜像,形如:
提示
如果你需要把 Mount Pod 容器镜像从 Docker Hub 搬运到其它镜像仓库,请参考文档。
# 社区版镜像标签以 ce- 开头
juicedata/mount:ce-v1.2.0
# 商业版镜像标 签以 ee- 开头
juicedata/mount:ee-5.0.23-8c7c134
# 在 0.19.0 以前,镜像标签中包含社区版和商业版客户端的版本号
# 该系列镜像不再继续更新维护
juicedata/mount:v1.0.3-4.8.3
覆盖 Mount Pod 镜像
提示
JuiceFS CSI 驱动从 0.25.0 版本开始支持平滑升级 Mount Pod,推荐优先使用这种方法升级 Mount Pod。
JuiceFS CSI 驱动 0.17.1 及以上版本支持自定义 Mount Pod 镜像,有多种修改 Mount Pod 镜像的方式,满足不同的定制需要,根据实际情况选择合适的手段。
提示
覆盖 mount 镜像后,注意:
- 已有的 Mount Pod 不会受影响,需要随着应用 Pod 滚动升级或者删除 Mount Pod 重建,才会采用新的镜像
- 升级 CSI 驱动时,默认会连带升级到 mount 镜像的最新稳定版。但如果你覆盖了 mount 镜像,那么这就是固定的配置了,继续升级 CSI 驱动,也不会引入连带的 mount 镜像升级
修改 ConfigMap
如果你的 CSI 驱动版本大于 0.24.0 可以非常方便的全局配置中修改镜像版本:
values-mycluster.yaml
globalConfig:
mountPodPatch:
- pvcSelector:
matchLabels:
custom-image: "true"
eeMountImage: "juicedata/mount:ee-5.0.17-0c63dc5"
ceMountImage: "juicedata/mount:ce-v1.2.0"
更改之后只需滚动升级业务容器或者杀掉 Mount Pod 即可应用最新镜像。
全局修改
如果你用 Helm 安 装 CSI 驱动,修改 mount 镜像非常简单,在 values 中定义即可:
defaultMountImage:
# 社区版
ce: "juicedata/mount:ce-v1.2.0"
# 企业版
ee: "juicedata/mount:ee-5.0.23-8c7c134"
而如果是 kubectl 直接安装,那么需要在 CSI 驱动的组件中设置环境变量:
# 社区版
kubectl -n kube-system set env daemonset/juicefs-csi-node -c juicefs-plugin JUICEFS_CE_MOUNT_IMAGE=juicedata/mount:ce-v1.2.0
kubectl -n kube-system set env statefulset/juicefs-csi-controller -c juicefs-plugin JUICEFS_CE_MOUNT_IMAGE=juicedata/mount:ce-v1.2.0
# 企业版
kubectl -n kube-system set env daemonset/juicefs-csi-node -c juicefs-plugin JUICEFS_EE_MOUNT_IMAGE=juicedata/mount:ee-5.0.23-8c7c134
kubectl -n kube-system set env statefulset/juicefs-csi-controller -c juicefs-plugin JUICEFS_EE_MOUNT_IMAGE=juicedata/mount:ee-5.0.23-8c7c134
修改完毕以后,别忘了将这些配置同时加入 k8s.yaml
,避免下次安装时配置丢失。正因为 kubectl 的安装方式管理配置不方便,所以建议在生产集群采用 Helm 安装方式。
动态配置
提示