使用kubectl部署带文件存储卷的无状态工作负载
操作场景
文件存储卷创建或导入CCE后,可以在工作负载中挂载文件存储卷。
约束与限制
如下配置示例适用于Kubernetes 1.13及以下版本的集群。
操作步骤
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 执行如下命令,配置名为“sfs-deployment-example.yaml”的创建Pod的yaml文件。
touch sfs-deployment-example.yaml
vi sfs-deployment-example.yaml
在无状态工作负载中基于pvc共享式使用文件存储示例:apiVersion: apps/v1 kind: Deployment metadata: name: sfs-deployment-example # 工作负载名称 namespace: default spec: replicas: 1 selector: matchLabels: app: sfs-deployment-example template: metadata: labels: app: sfs-deployment-example spec: containers: - image: nginx name: container-0 volumeMounts: - mountPath: /tmp # 挂载路径 name: pvc-sfs-example imagePullSecrets: - name: default-secret restartPolicy: Always volumes: - name: pvc-sfs-example persistentVolumeClaim: claimName: pvc-sfs-auto-example # 挂载PVC
表1 关键参数说明 前置路径
参数
描述
metadata
name
创建的Pod名称。
spec.template.spec.containers.volumeMounts
mountPath
容器内挂载路径,此处示例中为“/tmp”。
spec.template.spec.volumes.persistentVolumeClaim
claimName
已有PVC名称。
“spec.template.spec.containers.volumeMounts.name” 和 “spec.template.spec.volumes.name”有映射关系,必须保持一致。
在有状态工作负载中基于PVCTemplate独占式使用文件存储。
当前SFS文件存储处于售罄状态,暂时不支持PVCTemplate独占式使用文件存储。
yaml示例如下:apiVersion: apps/v1 kind: StatefulSet metadata: name: deploy-sfs-nfs-rw-in namespace: default labels: appgroup: '' spec: replicas: 2 selector: matchLabels: app: deploy-sfs-nfs-rw-in template: metadata: labels: app: deploy-sfs-nfs-rw-in spec: containers: - name: container-0 image: 'nginx:1.12-alpine-perl' volumeMounts: - name: bs-nfs-rw-mountoptionpvc mountPath: /aaa imagePullSecrets: - name: default-secret volumeClaimTemplates: - metadata: name: bs-nfs-rw-mountoptionpvc annotations: volume.beta.kubernetes.io/storage-class: nfs-rw volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxinfs spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi serviceName: wwww
表2 关键参数说明 前置路径
参数
描述
metadata
name
创建的工作负载名称。
spec.template.spec.containers
image
工作负载的镜像。
spec.template.spec.containers.volumeMount
mountPath
容器内挂载路径,此处示例中为“/tmp”。
spec
serviceName
工作负载对应的服务,服务创建过程请参见创建有状态负载(StatefulSet)。
“spec.template.spec.containers.volumeMounts.name ”和 “spec.volumeClaimTemplates.metadata.name”有映射关系,必须保持一致。
- 执行如下命令创建Pod。
kubectl create -f sfs-deployment-example.yaml
创建完成后,登录CCE控制台,在左侧导航栏中选择“存储管理 > 文件存储卷”。单击PVC名称,在PVC详情页面可查看文件存储服务和PVC的绑定关系。