
# 使用kubectl部署带文件存储卷的有状态工作负载
#### 操作场景
CCE支持使用已有的文件存储（PersistentVolumeClaim），创建有状态工作负载（StatefulSet）**。**
#### 约束与限制
如下配置示例适用于Kubernetes 1.13及以下版本的集群。
#### 操作步骤
1. 参照[使用kubectl自动创建文件存储](https://support.huaweicloud.com/usermanual-cce/cce_10_0318.html)中操作创建文件存储卷，记录文件存储卷名称。
2. 请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)，使用kubectl连接集群。
3. 新建一个YAML文件，用于创建工作负载。假设文件名为**sfs-statefulset-example** .**yaml** 。
   
   **touch sfs-statefulset-example.yaml**
   **vi sfs-statefulset-example.yaml**
   **yaml示例如下：**
   ```
   apiVersion: apps/v1
   kind: StatefulSet
   metadata:
     name: sfs-statefulset-example
     namespace: default
   spec:
     replicas: 2
     selector:
       matchLabels:
         app: sfs-statefulset-example
     serviceName: qwqq
     template:
       metadata:
         annotations:
           metrics.alpha.kubernetes.io/custom-endpoints: '[{"api":"","path":"","port":"","names":""}]'
           pod.alpha.kubernetes.io/initialized: "true"
         labels:
           app: sfs-statefulset-example
       spec:
         affinity: {}
         containers:
         - image: nginx:latest
           name: container-0
           volumeMounts:
           - mountPath: /tmp
             name: pvc-sfs-example
         imagePullSecrets:
         - name: default-secret
         volumes:
           - name: pvc-sfs-example
             persistentVolumeClaim:
               claimName: cce-sfs-demo
   ```
   表1关键参数说明 
   | 前置路径                                             | 参数          | 描述                                                                                                          |
   |:---|:---|:---|
   | spec                                             | replicas    | 实例数。                                                                                                        |
   | metadata                                         | name        | 新建工作负载的名称。                                                                                                  |
   | spec.template.spec.containers                    | image       | 新建工作负载使用的镜像。                                                                                                |
   | spec.template.spec.containers.volumeMounts       | mountPath   | 容器内挂载路径。                                                                                                    |
   | spec                                             | serviceName | 工作负载对应的服务，服务创建过程请参见[创建有状态负载（StatefulSet）](https://support.huaweicloud.com/usermanual-cce/cce_10_0048.html)。 |
   | spec.template.spec.volumes.persistentVolumeClaim | claimName   | 已有PVC名称。                                                                                                    |
      
   ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
   spec.template.spec.containers.volumeMounts.name和spec.template.spec.volumes.name有映射关系，必须保持一致。
   
   
4. 创建有状态工作负载。 
   **kubectl create -f sfs-statefulset-example .yaml**
   
   
 
