增加Pod的临时存储容量
工作负载中的每个Pod默认提供30GiB(IOPS上限2500,IOPS突发上限16000)的免费磁盘空间,除系统本身及平台预留资源占用外,用户实际可用的镜像、容器及临时存储的空间总大小约为20GiB。当此存储容量无法满足您的需求时,您可以通过控制台或kubectl命令行的方式自定义增加Pod临时存储容量。新增的临时存储容量按照大小和使用时长计费,更多计费信息请参考计费说明。
约束与限制
集群版本要求在1.27.8-r0、1.28.6-r0及以上。如果您的集群版本不符合该要求,则需要通过集群升级使用该功能。
增加临时存储容量
本节将介绍两种方式增加Pod的临时存储容量,即控制台方式和kubectl命令行方式。
本部分将向您介绍如何通过控制台增加Pod的临时存储容量,重点说明该功能的相关参数。关于工作负载的其他参数,请参见创建工作负载。
- 登录CCE控制台,单击集群名称进入集群。
- 在左侧导航栏中选择“工作负载”。
- 如果您需要新创建一个工作负载,并增加Pod的临时存储容量,请选择对应负载类型,单击页面右上角“创建工作负载”。
- 如果您需要增加已有的工作负载的Pod临时存储容量,请找到对应的工作负载名称,单击右侧“升级”。
- 您可以通过两种方式增加临时存储容量。
表1 增加临时存储容量的不同方式 方式
示例
步骤
添加“Pod注解”
键:resource.cce.io/extra-ephemeral-storage-in-GiB
值:10
- 选择“高级配置 > 标签与注解”页签。
- 在Pod注解的“键”中输入“resource.cce.io/extra-ephemeral-storage-in-GiB”,用来表示额外增加的Pod的临时存储容量。
- 在Pod注解的“值”中,填入需要增加的存储容量,取值范围为0-994。单击“确定添加”。
说明:
在Pod注解中添加上述注解后,“规格确认”中的“单Pod临时存储”会由默认的30GiB变为40GiB,即“单Pod临时存储=默认的30GiB+增加的临时存储容量”。
图1 增加Pod的临时存储容量
图2 单Pod临时存储
修改“单Pod临时存储”
40GiB
- “规格确认 > 单Pod临时存储”,单击“编辑图标”。
- 在对话框中输入您需要的容量,该容量=默认的30GiB+增加的临时存储容量,取值范围为30-1024。
须知:
如果无法确定需要为Pod增加多少临时存储容量,您可以直接保持系统推荐值,即“ 单Pod临时存储”的取值。当选择镜像后,系统会根据选择的镜像大小和系统占用计算推荐值,计算公式:Pod临时存储推荐值=max(30GiB免费额度,系统占用+镜像大小之和*2)。
图3 修改单Pod临时存储
- 单击“确定”。
- 勾选“我已知晓上述计费规则”,单击“创建工作负载”或“升级工作负载”。
本部分将向您介绍如何通过kubectl增加Pod的临时存储容量,重点说明该功能的相关参数。关于工作负载的其他参数,请参见创建工作负载。接下来,分别介绍“创建工作负载,并增加Pod的临时存储容量”和“增加已有的工作负载的Pod临时存储容量”的两种情况。
该步骤涉及命令行操作,您可以使用以下两种方式进行相关操作:
- 通过集群内命令行工具进行操作,该命令行工具已经配置kubectl命令,并已连接集群。
- 通过ECS虚拟机进行操作,该ECS需与集群处于同一VPC,并通过kubectl连接集群。
创建工作负载,并增加Pod的临时存储容量
- 创建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保存。
- 创建工作负载。
kubectl create -f extra-ephemeral-storage-test.yaml
- 查询工作负载状态。
kubectl get deployment
回显如下,如果READY为1/1,则表示创建成功。此时工作负载内的Pod的临时存储容量已经变为您设置的值。
NAME READY UP-TO-DATE AVAILABLE AGE nova-test 1/1 1 1 59s
- 验证工作负载内的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临时存储容量
- 修改对应工作负载的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与该值之和。
- 查询工作负载状态。
kubectl get deployment
回显如下,如果READY为1/1,则表示工作负载升级成功。此时工作负载内的Pod的临时存储容量已经变为您设置的值。
NAME READY UP-TO-DATE AVAILABLE AGE nova-test 1/1 1 1 59m
- 验证工作负载内的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