# 增加Pod的临时存储容量
工作负载中的每个Pod默认提供30GiB（IOPS上限2500，IOPS突发上限16000）的免费磁盘空间，除系统本身及平台预留资源占用外，用户实际可用的镜像、容器及临时存储的空间总大小约为20GiB。当此存储容量无法满足您的需求时，您可以通过控制台或kubectl命令行的方式自定义增加Pod临时存储容量。新增的临时存储容量按照大小和使用时长计费，更多计费信息请参考[计费说明](https://support.huaweicloud.com/price-cce-autopilot/cce_03_0006.html#section0)。
#### 约束与限制
集群版本要求在1.27.8-r0、1.28.6-r0及以上。如果您的集群版本不符合该要求，则需要通过集群升级使用该功能。
#### 增加临时存储容量
本节将介绍两种方式增加Pod的临时存储容量，即控制台方式和kubectl命令行方式。
- [使用控制台方式]
  本部分将向您介绍如何通过控制台增加Pod的临时存储容量，重点说明该功能的相关参数。关于工作负载的其他参数，请参见[创建工作负载](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0673.html)。
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
  
  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的临时存储容量 ![](https://support.huaweicloud.com/usermanual-cce-autopilot/zh-cn_image_0000002071606749.png "点击放大")  图2单Pod临时存储 ![](https://support.huaweicloud.com/usermanual-cce-autopilot/zh-cn_image_0000002042528074.png "点击放大")     |
     | 修改"单Pod临时存储" | **40GiB**                                                                                | 1. "规格确认 \> 单Pod临时存储"，单击![](https://support.huaweicloud.com/usermanual-cce-autopilot/zh-cn_image_0000002205559501.png)。  2. 在对话框中输入您需要的容量，该容量=默认的30GiB+增加的临时存储容量，取值范围为30-1024。 须知： 如果无法确定需要为Pod增加多少临时存储容量，您可以直接保持系统推荐值，即" 单Pod临时存储"的取值。当选择镜像后，系统会根据选择的镜像大小和系统占用计算推荐值，计算公式：Pod临时存储推荐值=max（30GiB免费额度，系统占用+镜像大小之和\*2）。 图3修改单Pod临时存储 ![](https://support.huaweicloud.com/usermanual-cce-autopilot/zh-cn_image_0000002042373090.png "点击放大")    3. 单击"确定"。                                             |
        
     
     
  
  4. 勾选"我已知晓上述计费规则"，单击"创建工作负载"或"升级工作负载"。
   
- [使用kubectl命令行方式]
  本部分将向您介绍如何通过kubectl增加Pod的临时存储容量，重点说明该功能的相关参数。关于工作负载的其他参数，请参见[创建工作负载](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0673.html)。接下来，分别介绍"创建工作负载，并增加Pod的临时存储容量"和"增加已有的工作负载的Pod临时存储容量"的两种情况。
  ![](https://support.huaweicloud.com/usermanual-cce-autopilot/public_sys-resources/note_3.0-zh-cn.png)
  该步骤涉及命令行操作，您可以使用以下两种方式进行相关操作：
  - 通过集群内命令行工具进行操作，该命令行工具已经配置kubectl命令，并已连接集群。
  
  - 通过ECS虚拟机进行操作，该ECS需与集群处于同一VPC，并[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0107.html)。
   
  创建工作负载，并增加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
     extra-ephemeral-storage-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
     ```
     
   
