文档首页> 云容器引擎 CCE> 用户指南> Standard和Turbo集群用户指南> 节点> 节点运维> CCE节点挂载路径配置与社区原生配置差异说明
更新时间:2024-06-29 GMT+08:00
分享

CCE节点挂载路径配置与社区原生配置差异说明

为保证节点的系统稳定性,CCE将Kubernetes和容器运行时的相关组件单独存储在数据盘中。其中Kubernetes使用“/mnt/paas/kubernetes”目录,容器运行时使用/“mnt/paas/runtime”目录,并使用软链接的方式与社区默认路径保持一致。

CCE与社区原生的配置差异

参数路径

Kubernetes原生路径

CCE路径

kubelet的启动参数root-dir

/var/lib/kubelet

/mnt/paas/kubernetes/kubelet

kubelet的路径

/var/lib/kubelet

/mnt/paas/kubernetes/kubelet

同时创建了/var/lib/kubelet -> /mnt/paas/kubernetes/kubelet的软链接

容器运行时(docker)的路径

/var/lib/docker

  • 数据盘空间分配设置为“共享磁盘空间”

    /mnt/paas/runtime

    同时创建了/var/lib/docker -> /mnt/paas/runtime的软链接

  • 数据盘空间分配设置为“指定磁盘空间”:与Kubernetes原始路径保持一致/var/lib/docker

容器运行时(containerd)的路径

/var/lib/containerd

  • 数据盘空间分配设置为“共享磁盘空间”

    /mnt/paas/runtime

    同时创建了/var/lib/containerd -> /mnt/paas/runtime的软链接

  • 数据盘空间分配设置为“指定磁盘空间”:与Kubernetes原始路径保持一致/var/lib/containerd

containerd日志存储的路径

/var/log/pods

/var/lib/containerd/container_logs

同时创建了/var/log/pods -> /var/lib/containerd/container_logs的软链接

在v1.23.16-r0、v1.25.11-r0、v1.27.8-r0、v1.28.6-r0、v1.29.2-r0及以上集群版本中,修改上述软链接地址将在两个路径中同时挂载。

差异可能带来的影响

  • 软链文件在容器挂载场景下,无法访问软链文件指向的真实路径。

    例如:将容器通过hostPath的方式将主机的/var/log路径挂载进容器/mnt/log路径,此时在容器内看到/mnt/log/pods是一个异常的软链文件,无法访问/var/log/pods下的真实文件内容。

    建议将真实的文件路径挂载进容器内,避免软链导致的文件读取失败。

  • kubelet的root-dir启动参数(/mnt/paas/kubernetes/kubelet)与社区路径(/var/lib/kubelet)不一致,使用第三方CSI插件的容器挂载路径为社区路径,会导致文件挂载不生效。

    例如,vault开源三方插件在使用secrets-store-csi-driver挂载密钥时,如果插件的root-dir地址与CCE配置路径不一致(插件默认value值与社区地址一致:/var/lib/kubelet)会导致容器内无法获取到vault的密钥。

    这是因为CSI插件依赖挂载传播,将卷挂载到对应容器中。kubelet在挂卷的CSI请求中会带有与kubelet启动参数root-dir相关的挂载路径(/mnt/paas/kubernetes/kubelet/pods/{podID}/volume/…)。当CSI容器将卷挂载在kubelet CSI请求的挂载路径上,而此挂载路径与主机路径不相关时,挂载传播将失效。例如,CSI容器将主机的/var/lib/kubelet路径挂载进容器的/var/lib/kubelet路径,因此CSI容器内的/mnt/paas/kubernetes/kubelet/pods/{podID}/volume/…将与主机路径毫不相关。

    建议修改CSI插件中的root-dir地址,与CCE当前节点kubelet的root-dir地址保持一致。

分享:

    相关文档

    相关产品