更新时间:2024-11-08 GMT+08:00
分享

增加Pod的临时存储容量

工作负载中的每个Pod默认提供30GiB(IOPS上限2500,IOPS突发上限16000)的免费磁盘空间,除系统本身及平台预留资源占用外,用户实际可用的镜像、容器及临时存储的空间总大小约为20GiB。当此存储容量无法满足您的需求时,您可以通过控制台或kubectl命令行的方式自定义增加Pod临时存储容量。新增的临时存储容量按照大小和使用时长计费,更多计费信息请参考计费说明

约束与限制

集群版本要求在1.27.8-r0、1.28.6-r0及以上。如果您的集群版本不符合该要求,则需要通过集群升级使用该功能。

增加临时存储容量

本节将介绍两种方式增加Pod的临时存储容量,即控制台方式和kubectl命令行方式。

本部分将向您介绍如何通过控制台增加Pod的临时存储容量,重点说明该功能的相关参数。关于工作负载的其他参数,请参见创建工作负载

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“工作负载”

    • 如果您需要新创建一个工作负载,并增加Pod的临时存储容量,请选择对应负载类型,单击页面右上角“创建工作负载”
    • 如果您需要增加已有的工作负载的Pod临时存储容量,请找到对应的工作负载名称,单击右侧“升级”

  3. 您可以通过两种方式增加临时存储容量。

    表1 增加临时存储容量的不同方式

    方式

    示例

    步骤

    添加“Pod注解”

    键:resource.cce.io/extra-ephemeral-storage-in-GiB

    值:10

    1. 选择“高级配置 > 标签与注解”页签。
    2. 在Pod注解的“键”中输入“resource.cce.io/extra-ephemeral-storage-in-GiB”,用来表示额外增加的Pod的临时存储容量。
    3. 在Pod注解的“值”中,填入需要增加的存储容量,取值范围为0-994。单击“确定添加”
      说明:

      在Pod注解中添加上述注解后,“规格确认”中的“单Pod临时存储”会由默认的30GiB变为40GiB,即“单Pod临时存储=默认的30GiB+增加的临时存储容量”

      图1 增加Pod的临时存储容量

      图2 单Pod临时存储

    修改“单Pod临时存储”

    40GiB

    1. “规格确认 > 单Pod临时存储”,单击“编辑图标”
    2. 在对话框中输入您需要的容量,该容量=默认的30GiB+增加的临时存储容量,取值范围为30-1024。
      须知:

      如果无法确定需要为Pod增加多少临时存储容量,您可以直接保持系统推荐值,即“ 单Pod临时存储”的取值。当选择镜像后,系统会根据选择的镜像大小和系统占用计算推荐值,计算公式:Pod临时存储推荐值=max(30GiB免费额度,系统占用+镜像大小之和*2)。

      图3 修改单Pod临时存储

    3. 单击“确定”

  4. 勾选“我已知晓上述计费规则”,单击“创建工作负载”“升级工作负载”

本部分将向您介绍如何通过kubectl增加Pod的临时存储容量,重点说明该功能的相关参数。关于工作负载的其他参数,请参见创建工作负载。接下来,分别介绍“创建工作负载,并增加Pod的临时存储容量”“增加已有的工作负载的Pod临时存储容量”的两种情况。

该步骤涉及命令行操作,您可以使用以下两种方式进行相关操作:

  • 通过集群内命令行工具进行操作,该命令行工具已经配置kubectl命令,并已连接集群。
  • 通过ECS虚拟机进行操作,该ECS需与集群处于同一VPC,并通过kubectl连接集群

创建工作负载,并增加Pod的临时存储容量

  1. 创建YAML文件extra-ephemeral-storage-test.yaml,用于配置工作负载,文件名称可自定义。
    vim extra-ephemeral-storage-test.yaml

    文件内容如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: extra-ephemeral-storage-test     # 工作负载名称
    spec:
      replicas: 1     # 实例数量
      selector:
        matchLabels:  # 选择器,用于选择带有特定标签的资源
          app: nginx  
      template:
        metadata:
          labels:     # 标签
            app: nginx
          annotations:
            resource.cce.io/extra-ephemeral-storage-in-GiB: '10'
        spec:
          containers:
          - image: nginx:latest   # 镜像名称:镜像版本
            name: nginx
          imagePullSecrets:
          - name: default-secret

    其中,“resource.cce.io/extra-ephemeral-storage-in-GiB”表示额外增加的Pod的临时存储容量,取值范围为0-994,例如“10”。Pod的临时存储总容量为默认30GiB与该值之和。

    输入完成后,Esc键退出编辑,输入:wq保存。

  2. 创建工作负载。
    kubectl create -f extra-ephemeral-storage-test.yaml
  3. 查询工作负载状态。
    kubectl get deployment

    回显如下,如果READY为1/1,则表示创建成功。此时工作负载内的Pod的临时存储容量已经变为您设置的值。

    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    nova-test    1/1     1            1           59s
  4. 验证工作负载内的Pod的临时存储容量是否增加成功。
    通过以下命令,查询工作负载对应的Pod名称,extra-ephemeral-storage-test可以换为工作负载的名称。
    kubectl get pod | grep extra-ephemeral-storage-test   

    回显如下:

    extra-ephemeral-storage-test-85dbdb8c5d-4vftc     1/1     Running   0          2m24s
    通过以下命令,进入该Pod内部。
    kubectl exec -it extra-ephemeral-storage-test-85dbdb8c5d-4vftc /bin/sh
    查询该Pod的临时存储容量。
    lsblk

    回显结果如下,Pod的存储总容量为40G,说明Pod扩容成功。输入exit,按下Enter键,退出Pod。

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    vda      254:0    0   40G  0 disk 
    ├─vda1 254:1    0   59M  0 part 
    ├─vda2 254:2    0  1.5G  0 part 
    ├─vda3 254:3    0  1.5G  0 part 
    └─vda4 254:4    0   37G  0 part /etc/resolv.conf

增加已有的工作负载的Pod临时存储容量

  1. 修改对应工作负载的YAML文件,添加resource.cce.io/extra-ephemeral-storage-in-GiB的annotations。以名为extra-ephemeral-storage-test的无状态工作负载为例。
    kubectl edit deployment extra-ephemeral-storage-test

    在下方位置,添加resource.cce.io/extra-ephemeral-storage-in-GiB的annotations。输入完成后,Esc键退出编辑,输入:wq保存。

    template:
        metadata:
          creationTimestamp: null
          labels:
            app: nginx
          annotations:
            resource.cce.io/extra-ephemeral-storage-in-GiB: '10'

    其中,“resource.cce.io/extra-ephemeral-storage-in-GiB”表示额外增加的Pod的临时存储容量,取值范围为0-994,例如“10”。Pod的临时存储总容量为默认30GiB与该值之和。

  2. 查询工作负载状态。
    kubectl get deployment

    回显如下,如果READY为1/1,则表示工作负载升级成功。此时工作负载内的Pod的临时存储容量已经变为您设置的值。

    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    nova-test    1/1     1            1           59m
  3. 验证工作负载内的Pod的临时存储容量是否增加成功。
    通过以下命令,查询工作负载对应的Pod名称,extra-ephemeral-storage-test可以换为工作负载的名称。
    kubectl get pod | grep extra-ephemeral-storage-test   

    回显如下:

    extra-ephemeral-storage-test-85dbdb8c5d-4vftc     1/1     Running   0          60m24s
    通过以下命令,进入该Pod内部。
    kubectl exec -it extra-ephemeral-storage-test-85dbdb8c5d-4vftc /bin/sh
    查询该Pod的临时存储容量。
    lsblk

    回显结果如下,Pod的存储总容量为40G,说明Pod扩容成功。输入exit,按下Enter键,退出Pod。

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    vda      254:0    0   40G  0 disk 
    ├─vda1 254:1    0   59M  0 part 
    ├─vda2 254:2    0  1.5G  0 part 
    ├─vda3 254:3    0  1.5G  0 part 
    └─vda4 254:4    0   37G  0 part /etc/resolv.conf

相关文档