工作负载中的每个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连接集群。
 
      
      
     
    
     
     
      
       - 创建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的存储总容量为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
 
      
      
     
    
     
     
      
       - 修改对应工作负载的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
extra-ephemeral-storage-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的存储总容量为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