文档首页> 云容器引擎 CCE> 用户指南> 存储管理-Flexvolume(已弃用)> 文件存储卷> 使用kubectl部署带文件存储卷的无状态工作负载
更新时间:2023-10-27 GMT+08:00

使用kubectl部署带文件存储卷的无状态工作负载

操作场景

文件存储卷创建或导入CCE后,可以在工作负载中挂载文件存储卷。

约束与限制

如下配置示例适用于Kubernetes 1.13及以下版本的集群。

操作步骤

  1. 请参见通过kubectl连接集群,使用kubectl连接集群。
  2. 执行如下命令,配置名为“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”有映射关系,必须保持一致。

  3. 执行如下命令创建Pod。

    kubectl create -f sfs-deployment-example.yaml

    创建完成后,登录CCE控制台,在左侧导航栏中选择“存储管理 > 文件存储卷”。单击PVC名称,在PVC详情页面可查看文件存储服务和PVC的绑定关系。