更新时间:2024-01-04 GMT+08:00

存储扩容

CCE节点可进行扩容的存储类型如下:

表1 不同类型的扩容方法

类型

名称

用途

扩容方法

节点磁盘

系统盘

系统盘用于安装操作系统。

系统盘扩容

数据盘

节点必须挂载一块数据盘,供容器引擎和Kubelet组件使用。

容器存储

Pod容器空间

即容器的basesize设置,每个Pod 占用的磁盘空间设置上限(包含容器镜像占用的空间)。

Pod容器空间(basesize)扩容

PVC

容器中挂载的存储资源。

PVC扩容

系统盘扩容

以“EulerOS 2.9”操作系统为例,系统盘“/dev/vda”原有容量50GB,只有一个分区“/dev/vda1”。将系统盘容量扩大至100GB,本示例将新增的50GB划分至已有的“/dev/vda1”分区内。

  1. 在云硬盘EVS界面对系统盘进行扩容。
  2. 登录节点,执行命令growpart,检查当前系统是否已安装growpart扩容工具。

    若回显为工具使用介绍,则表示已安装,无需重复安装。若未安装growpart扩容工具,可执行以下命令安装。

    yum install cloud-utils-growpart

  3. 执行以下命令,查看系统盘“/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

  4. 执行以下命令,查看系统盘分区“/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
    ...

  5. 执行以下命令,指定系统盘待扩容的分区,通过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

  6. 执行以下命令,扩展磁盘分区文件系统的大小。

    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.

  7. 执行以下命令,查看扩容后系统盘分区“/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
    ...

  8. 登录CCE控制台,进入集群,在左侧选择“节点管理”,单击节点后的“同步云服务器”

数据盘扩容——容器引擎空间

CCE 将数据盘空间默认划分为两块:一块用于存放容器引擎 (Docker/Containerd) 工作目录、容器镜像的数据和镜像元数据;另一块用于Kubelet组件和EmptyDir临时存储等。容器引擎空间的剩余容量将会影响镜像下载和容器的启动及运行。下面将以Docker为例,进行容器引擎空间扩容。

  1. 在EVS界面扩容数据盘。
  2. 登录CCE控制台,进入集群,在左侧选择“节点管理”,单击节点后的“同步云服务器”
  3. 登录目标节点。
  4. 使用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

数据盘扩容——Kubelet空间

CCE 将数据盘空间默认划分为两块:一块用于存放容器引擎 (Docker/Containerd) 工作目录、容器镜像的数据和镜像元数据;另一块用于Kubelet组件和EmptyDir临时存储等。您可参考以下步骤进行Kubelet空间扩容。

  1. 在EVS界面扩容数据盘。
  2. 登录CCE控制台,进入集群,在左侧选择“节点管理”,单击节点后的“同步云服务器”
  3. 登录目标节点。
  4. 使用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使用的空间

  5. 然后在节点上执行如下命令, 将新增的磁盘容量加到Kubernetes盘上。

    pvresize /dev/vdb
    lvextend -l+100%FREE -n vgpaas/kubernetes
    resize2fs /dev/vgpaas/kubernetes

Pod容器空间(basesize)扩容

  1. 登录CCE控制台,单击集群列表中的集群名称。
  2. 在左侧导航栏中选择“节点管理”
  3. 切换至“节点”页签,选择集群中的节点,单击操作列中的“更多 > 重置节点”。

    重置节点操作可能导致与节点有绑定关系的资源(本地存储,指定调度节点的负载等)无法正常使用。请谨慎操作,避免对运行中的业务造成影响。

  4. 在确认页面中单击“是”
  5. 重新配置节点参数。

    如需对容器存储空间进行调整,请重点关注以下配置。

    存储配置:单击数据盘后方的“展开高级设置”可进行如下设置:
    • 自定义容器引擎空间大小:容器引擎占用的存储空间,默认为数据盘空间的90%,用于存放容器引擎 (Docker/Containerd) 工作目录、容器镜像的数据和镜像元数据。
    • 自定义容器Pod空间大小:CCE 支持对每个工作负载下的容器组 Pod 占用的磁盘空间设置上限(包含容器镜像占用的空间)。合理的配置可避免容器组无节制使用磁盘空间导致业务异常。建议此值不超过容器引擎空间的 80%。
      • 自定义容器Pod存储空间的能力与节点操作系统与容器存储Rootfs有关,设置规则如下:
        • 容器存储Rootfs使用DeviceMapper时,节点支持自定义容器Pod空间设置(basesize),单个容器存储空间大小默认为10GiB,可以配置为其他值。
        • 容器存储Rootfs使用OverlayFS时,大部分节点不支持自定义容器Pod空间设置(basesize),默认为不限制,即单个容器存储空间大小默认为容器引擎空间。

          1.19.16版本、1.21.3版本、1.23.3版本及之后版本集群中的EulerOS 2.9系统节点支持自定义容器Pod空间设置(basesize),可以配置为其他值。

      • 使用EulerOS 2.9 的docker basesize设置时,若容器配置CAP_SYS_RESOURCE权限或privileged的特权,basesize限制单容器数据空间不起作用。

  6. 重置节点后登录该节点,执行如下命令进入容器,查看docker容器容量是否已扩容。

    docker exec -it container_id /bin/shkubectl exec -it container_id /bin/sh

    df -h

PVC扩容

对于云存储:

  • 对象存储及文件存储SFS:无存储限制,无需扩容。
  • 云硬盘:
    • 对于自动创建的按需收费实例,可以通过直接提供控制台进行扩容。参考步骤如下:
      1. 在左侧导航栏选择“存储”,在右侧选择“存储卷声明”页签。单击PVC操作列的“更多 > 扩容”。
      2. 输入新增容量,并单击“确定”。
  • 极速文件存储SFS Turbo:需要先在SFS控制台扩容,然后再修改PVC中容量大小。