
/var/log/pods # kubelet 产生的pod 标准输出日志目录
/var/lib/kubelet # kubelet 数据目录
/var/lib/containerd # containerd 数据目录如果挂载数据盘路径为默认路径:/var/lib/container,会自动 bind mount 容器默认的数据目录使用挂载的数据盘,即会有如下挂载:
[root@VM-45-16-tlinux ~]# mount | grep vdb
/dev/vdb on /var/lib/container type ext4 (rw,relatime)
/dev/vdb on /var/log/pods type ext4 (rw,relatime)
/dev/vdb on /var/lib/kubelet type ext4 (rw,relatime)
/dev/vdb on /var/lib/containerd type ext4 (rw,relatime)
如果挂载数据盘路径为其他路径时,如 /mnt/paas, 默认不会 bind mount 上述容器目录,但不设置【高级设置】中的容器目录为挂载路径时, 仅作为普通数据盘使用场景。
如果挂载数据盘路径为其他路径时,如 /mnt/paas, 并设置【高级设置】中的容器目录为挂载路径时, 这种情况下仅将 containerd 默认的数据目录/var/lib/containerd 设置成 /mnt/paas,其他目录仍使用的是系统盘。

如果想实现非 /var/lib/container 的目录也实现 bind mount(同上述 Case1 效果), 存量节点没有好的办法,增量可以尝试使用以下方法来实现(以/mnt/paas目录为例)。
1. 购买挂载数据盘为 /mnt/paas:

2. 使用【高级设置】前置自定义脚本 bind mount 数据目录到默认的容器目录,如下:

前置脚本内容如下:
#!/bin/sh
mkdir -p /mnt/paas/log /mnt/paas/kubelet /mnt/paas/containerd /var/log/pods /var/lib/kubelet /var/lib/containerd
cat << EOF >> /etc/fstab
/mnt/paas/log /var/log/pods none defaults,bind 0 0
/mnt/paas/kubelet /var/lib/kubelet none defaults,bind,slave,shared 0 0
/mnt/paas/containerd /var/lib/containerd none defaults,bind 0 0
EOF
mount -a前置脚本逻辑说明如下:
#!/bin/sh
mkdir -p <替换实际数据目录>/log <替换实际数据目录>/kubelet <替换实际数据目录>/containerd /var/log/pods /var/lib/kubelet /var/lib/containerd
cat << EOF >> /etc/fstab
<替换实际数据目录>/log /var/log/pods none defaults,bind 0 0
<替换实际数据目录>/kubelet /var/lib/kubelet none defaults,bind,slave,shared 0 0
<替换实际数据目录>/containerd /var/lib/containerd none defaults,bind 0 0
EOF
mount -a
3. 检查是否生效,登陆节点查看如下图所示说明脚本配置成功:

4. 测试数据落盘是否在数据盘。
#生成大文件测试命令
dd if=/dev/zero of=test.txt count=10 bs=512M 
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。