使用kubectl部署带云硬盘存储卷的工作负载
操作场景
云硬盘创建或导入CCE后,可以在工作负载中挂载云硬盘。
云硬盘不支持跨可用区挂载。在挂载前,您可以使用 kubectl get pvc 命令查询当前集群所在分区下可用PVC。
约束与限制
如下配置示例适用于Kubernetes 1.13及以下版本的集群。
操作步骤
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 执行如下命令,配置名为“evs-deployment-example.yaml”的创建无状态工作负载的yaml文件。
touch evs-deployment-example.yaml
vi evs-deployment-example.yaml
在无状态工作负载中基于pvc共享式使用云硬盘存储示例:apiVersion: apps/v1 kind: Deployment metadata: name: evs-deployment-example namespace: default spec: replicas: 1 selector: matchLabels: app: evs-deployment-example template: metadata: labels: app: evs-deployment-example spec: containers: - image: nginx name: container-0 volumeMounts: - mountPath: /tmp name: pvc-evs-example imagePullSecrets: - name: default-secret restartPolicy: Always volumes: - name: pvc-evs-example persistentVolumeClaim: claimName: pvc-evs-auto-example
表1 关键参数说明 前置路径
参数
描述
spec.template.spec.containers.volumeMounts
name
容器内挂载卷的名称。
spec.template.spec.containers.volumeMounts
mountPath
容器内挂载路径,示例中挂载到“/tmp”路径。
spec.template.spec.volumes
name
卷的名称。
spec.template.spec.volumes.persistentVolumeClaim
claimName
已有PVC名称。
“spec.template.spec.containers.volumeMounts.name ”和 “spec.template.spec.volumes.name”有映射关系,必须保持一致。
在有状态工作负载中基于PVCTemplate独占式使用云硬盘存储。
yaml示例如下:apiVersion: apps/v1 kind: StatefulSet metadata: name: deploy-evs-sas-in spec: replicas: 1 selector: matchLabels: app: deploy-evs-sata-in template: metadata: labels: app: deploy-evs-sata-in failure-domain.beta.kubernetes.io/region: ap-southeast-1 failure-domain.beta.kubernetes.io/zone: ap-southeast-1a spec: containers: - name: container-0 image: 'nginx:1.12-alpine-perl' volumeMounts: - name: bs-sas-mountoptionpvc mountPath: /tmp imagePullSecrets: - name: default-secret volumeClaimTemplates: - metadata: name: bs-sas-mountoptionpvc annotations: volume.beta.kubernetes.io/storage-class: sas volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxivol spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi 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 evs-deployment-example.yaml
创建完成后,登录CCE控制台,在左侧导航栏中选择
。单击PVC名称,在PVC详情页面可查看云硬盘和PVC的绑定关系。