存储扩容
CCE节点可进行扩容的存储类型如下:
类型 |
名称 |
用途 |
扩容方法 |
---|---|---|---|
节点磁盘 |
系统盘 |
系统盘用于安装操作系统。 |
|
数据盘 |
节点必须挂载一块数据盘,供容器引擎和Kubelet组件使用。 |
||
容器存储 |
Pod容器空间 |
即容器的basesize设置,每个Pod 占用的磁盘空间设置上限(包含容器镜像占用的空间)。 |
|
PVC |
容器中挂载的存储资源。 |
系统盘扩容
以“EulerOS 2.9”操作系统为例,系统盘“/dev/vda”原有容量50GB,只有一个分区“/dev/vda1”。将系统盘容量扩大至100GB,本示例将新增的50GB划分至已有的“/dev/vda1”分区内。
- 在云硬盘EVS界面对系统盘进行扩容。
- 登录节点,执行命令growpart,检查当前系统是否已安装growpart扩容工具。
若回显为工具使用介绍,则表示已安装,无需重复安装。若未安装growpart扩容工具,可执行以下命令安装。
yum install cloud-utils-growpart
- 执行以下命令,查看系统盘“/dev/vda”的总容量。
fdisk -l
回显信息如下,系统盘“/dev/vda”的总容量为100GiB:
[root@test-48162 ~]# fdisk -l Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x78d88f0b Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 104857566 104855519 50G 83 Linux Disk /dev/vdb: 100 GiB, 107374182400 bytes, 209715200 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/vgpaas-dockersys: 90 GiB, 96632569856 bytes, 188735488 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/vgpaas-kubernetes: 10 GiB, 10733223936 bytes, 20963328 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
- 执行以下命令,查看系统盘分区“/dev/vda1”的容量。
df -TH
回显信息如下:
[root@test-48162 ~]# df -TH Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs tmpfs 1.8G 13M 1.8G 1% /run tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/vda1 ext4 53G 3.3G 47G 7% / tmpfs tmpfs 1.8G 75M 1.8G 5% /tmp /dev/mapper/vgpaas-dockersys ext4 95G 1.3G 89G 2% /var/lib/docker /dev/mapper/vgpaas-kubernetes ext4 11G 39M 10G 1% /mnt/paas/kubernetes/kubelet ...
- 执行以下命令,指定系统盘待扩容的分区,通过growpart进行扩容。
growpart 系统盘 分区编号
命令示例(系统盘只有1个分区“/dev/vda1”,因此分区编号为1):
growpart /dev/vda 1
回显信息如下:
CHANGED: partition=1 start=2048 old: size=104855519 end=104857567 new: size=209713119 end=209715167
- 执行以下命令,扩展磁盘分区文件系统的大小。
resize2fs 磁盘分区
命令示例:
resize2fs /dev/vda1
回显信息如下:
resize2fs 1.45.6 (20-Mar-2020) Filesystem at /dev/vda1 is mounted on /; on-line resizing required old_desc_blocks = 7, new_desc_blocks = 13 The filesystem on /dev/vda1 is now 26214139 (4k) blocks long.
- 执行以下命令,查看扩容后系统盘分区“/dev/vda1”的容量。
df -TH
回显类似如下信息:
[root@test-48162 ~]# df -TH Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs tmpfs 1.8G 13M 1.8G 1% /run tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/vda1 ext4 106G 3.3G 98G 4% / tmpfs tmpfs 1.8G 75M 1.8G 5% /tmp /dev/mapper/vgpaas-dockersys ext4 95G 1.3G 89G 2% /var/lib/docker /dev/mapper/vgpaas-kubernetes ext4 11G 39M 10G 1% /mnt/paas/kubernetes/kubelet ...
- 登录CCE控制台,进入集群,在左侧选择“节点管理”,单击节点后的“同步云服务器”。
数据盘扩容——容器引擎空间
CCE 将数据盘空间默认划分为两块:一块用于存放容器引擎 (Docker/Containerd) 工作目录、容器镜像的数据和镜像元数据;另一块用于Kubelet组件和EmptyDir临时存储等。容器引擎空间的剩余容量将会影响镜像下载和容器的启动及运行。下面将以Docker为例,进行容器引擎空间扩容。
- 在EVS界面扩容数据盘。
- 登录CCE控制台,进入集群,在左侧选择“节点管理”,单击节点后的“同步云服务器”。
- 登录目标节点。
- 使用lsblk命令查看节点块设备信息。
这里存在两种情况,根据容器存储Rootfs而不同。
- Overlayfs,没有单独划分thinpool,在dockersys空间下统一存储镜像相关数据。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 8:0 0 50G 0 disk └─vda1 8:1 0 50G 0 part / vdb 8:16 0 200G 0 disk ├─vgpaas-dockersys 253:0 0 90G 0 lvm /var/lib/docker # 容器引擎使用的空间 └─vgpaas-kubernetes 253:1 0 10G 0 lvm /mnt/paas/kubernetes/kubelet # kubernetes使用的空间
在节点上执行如下命令, 将新增的磁盘容量加到dockersys盘上。
pvresize /dev/vdb lvextend -l+100%FREE -n vgpaas/dockersys resize2fs /dev/vgpaas/dockersys
- Devicemapper,单独划分了thinpool存储镜像相关数据。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 8:0 0 50G 0 disk └─vda1 8:1 0 50G 0 part / vdb 8:16 0 200G 0 disk ├─vgpaas-dockersys 253:0 0 18G 0 lvm /var/lib/docker ├─vgpaas-thinpool_tmeta 253:1 0 3G 0 lvm │ └─vgpaas-thinpool 253:3 0 67G 0 lvm # thinpool空间 │ ... ├─vgpaas-thinpool_tdata 253:2 0 67G 0 lvm │ └─vgpaas-thinpool 253:3 0 67G 0 lvm │ ... └─vgpaas-kubernetes 253:4 0 10G 0 lvm /mnt/paas/kubernetes/kubelet
- 在节点上执行如下命令, 将新增的磁盘容量加到thinpool盘上。
pvresize /dev/vdb lvextend -l+100%FREE -n vgpaas/thinpool
- 在节点上执行如下命令, 将新增的磁盘容量加到dockersys盘上。
pvresize /dev/vdb lvextend -l+100%FREE -n vgpaas/dockersys resize2fs /dev/vgpaas/dockersys
- 在节点上执行如下命令, 将新增的磁盘容量加到thinpool盘上。
- Overlayfs,没有单独划分thinpool,在dockersys空间下统一存储镜像相关数据。
数据盘扩容——Kubelet空间
CCE 将数据盘空间默认划分为两块:一块用于存放容器引擎 (Docker/Containerd) 工作目录、容器镜像的数据和镜像元数据;另一块用于Kubelet组件和EmptyDir临时存储等。您可参考以下步骤进行Kubelet空间扩容。
- 在EVS界面扩容数据盘。
- 登录CCE控制台,进入集群,在左侧选择“节点管理”,单击节点后的“同步云服务器”。
- 登录目标节点。
- 使用lsblk命令查看节点块设备信息。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 8:0 0 50G 0 disk └─vda1 8:1 0 50G 0 part / vdb 8:16 0 200G 0 disk ├─vgpaas-dockersys 253:0 0 90G 0 lvm /var/lib/docker # 容器引擎使用的空间 └─vgpaas-kubernetes 253:1 0 10G 0 lvm /mnt/paas/kubernetes/kubelet # kubernetes使用的空间
- 然后在节点上执行如下命令, 将新增的磁盘容量加到Kubernetes盘上。
pvresize /dev/vdb lvextend -l+100%FREE -n vgpaas/kubernetes resize2fs /dev/vgpaas/kubernetes
Pod容器空间(basesize)扩容
- 登录CCE控制台,单击集群列表中的集群名称。
- 在左侧导航栏中选择“节点管理”。
- 切换至“节点”页签,选择集群中的节点,单击操作列中的“更多 > 重置节点”。
重置节点操作可能导致与节点有绑定关系的资源(本地存储,指定调度节点的负载等)无法正常使用。请谨慎操作,避免对运行中的业务造成影响。
- 在确认页面中单击“是”。
- 重新配置节点参数。
如需对容器存储空间进行调整,请重点关注以下配置。
存储配置:单击数据盘后方的“展开高级设置”可进行如下设置:- 自定义容器引擎空间大小:容器引擎占用的存储空间,默认为数据盘空间的90%,用于存放容器引擎 (Docker/Containerd) 工作目录、容器镜像的数据和镜像元数据。
- 自定义容器Pod空间大小:CCE 支持对每个工作负载下的容器组 Pod 占用的磁盘空间设置上限(包含容器镜像占用的空间)。合理的配置可避免容器组无节制使用磁盘空间导致业务异常。建议此值不超过容器引擎空间的 80%。
- 自定义容器Pod存储空间的能力与节点操作系统与容器存储Rootfs有关,设置规则如下:
- 使用EulerOS 2.9 的docker basesize设置时,若容器配置CAP_SYS_RESOURCE权限或privileged的特权,basesize限制单容器数据空间不起作用。
- 重置节点后登录该节点,执行如下命令进入容器,查看docker容器容量是否已扩容。
docker exec -it container_id /bin/sh或kubectl exec -it container_id /bin/sh
df -h