使用kubectl对接已有文件存储
约束与限制
如下配置示例适用于Kubernetes 1.13及以下版本的集群。
操作步骤
- 登录SFS控制台,创建一个文件存储,记录文件存储的ID、共享路径和容量。
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 新建两个yaml文件,用于创建PersistentVolume(PV)、PersistentVolumeClaim(PVC)。假设文件名分别为pv-sfs-example.yaml、pvc-sfs-example.yaml。
touch pv-sfs-example.yaml pvc-sfs-example.yaml
K8s集群版本(K8s version)
说明
yaml示例
1.11 ≤ K8s version < 1.13
1.11以上及1.13版本集群
K8s version = 1.9
1.9版本集群
1.11 ≤ K8s version ≤ 1.13(1.11以上及1.13版本集群)
- PV yaml文件配置示例:
apiVersion: v1 kind: PersistentVolume metadata: name: pv-sfs-example annotations: pv.kubernetes.io/provisioned-by: flexvolume-huawei.com/fuxinfs spec: accessModes: - ReadWriteMany capacity: storage: 10Gi claimRef: apiVersion: v1 kind: PersistentVolumeClaim name: pvc-sfs-example namespace: default flexVolume: driver: huawei.com/fuxinfs fsType: nfs options: deviceMountPath: <your_deviceMountPath> #您的文件存储共享路径 fsType: nfs volumeID: f6976f9e-2493-419b-97ca-d7816008d91c persistentVolumeReclaimPolicy: Delete storageClassName: nfs-rw
表1 关键参数说明 参数
描述
driver
挂载依赖的存储驱动,文件存储配置为“huawei.com/fuxinfs”。
deviceMountPath
文件存储的共享路径。
获取方法:在CCE控制台,单击顶部的“服务列表 > 存储 > 弹性文件服务”,在弹性文件服务列表中可以看到“挂载地址”列,即为文件存储的共享路径,如图1。
volumeID
文件存储的ID。
获取方法:在CCE控制台,单击左侧栏目树中的“资源管理-存储管理”,在“文件存储卷”页签下单击PVC的名称,在PVC详情页中复制“PVC UID”后的内容即可。
storage
文件存储的大小。
storageClassName
文件存储支持的读写方式,当前支持nfs-rw、nfs-ro。
spec.claimRef.apiVersion
固定值"v1"。
spec.claimRef.kind
固定值"PersistentVolumeClaim"。
spec.claimRef.name
与下一步创建的pvc的name一致。
spec.claimRef.namespace
pvc的namespace;是下一步创建的pvc的namespace一致。
- PVC yaml文件配置示例:
apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: volume.beta.kubernetes.io/storage-class: nfs-rw volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxinfs name: pvc-sfs-example namespace: default spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeName: pv-sfs-example
表2 关键参数说明 参数
描述
volume.beta.kubernetes.io/storage-class
文件存储支持的读写方式,支持nfs-rw 、nfs-ro。必须和已有PV保持一致。
volume.beta.kubernetes.io/storage-provisioner
必须使用flexvolume-huawei.com/fuxinfs。
storage
存储容量,单位Gi,必须和已有pv的storage大小保持一致。
volumeName
PV的名称。
K8s version = 1.9(1.9版本集群)
- PV yaml文件配置示例:
apiVersion: v1 kind: PersistentVolume metadata: name: pv-sfs-example namespace: default spec: accessModes: - ReadWriteMany capacity: storage: 10Gi flexVolume: driver: huawei.com/fuxinfs fsType: nfs options: deviceMountPath: <your_deviceMountPath> #您的文件存储共享路径 fsType: nfs kubernetes.io/namespace: default volumeID: f6976f9e-2493-419b-97ca-d7816008d91c persistentVolumeReclaimPolicy: Delete storageClassName: nfs-rw
表3 关键参数说明 参数
描述
driver
挂载依赖的存储驱动,文件存储配置为“huawei.com/fuxinfs”。
deviceMountPath
文件存储的共享路径。
获取方法:在CCE控制台,单击顶部的“服务列表 > 存储 > 弹性文件服务”,在弹性文件服务列表中可以看到“挂载地址”列,即为文件存储的共享路径,如图1。
volumeID
文件存储的ID。
获取方法:在CCE控制台,单击左侧栏目树中的“资源管理-存储管理”,在“文件存储卷”页签下单击PVC的名称,在PVC详情页中复制“PVC UID”后的内容即可。
storage
文件存储的大小。
storageClassName
文件存储支持的读写方式,当前支持nfs-rw、nfs-ro。
- PVC yaml文件配置示例:
apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: volume.beta.kubernetes.io/storage-class: nfs-rw volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxinfs name: pvc-sfs-example namespace: default spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeName: pv-sfs-example volumeNamespace: default
表4 关键参数说明 参数
描述
volume.beta.kubernetes.io/storage-class
文件存储支持的读写方式,支持nfs-rw 、nfs-ro。必须和已有PV保持一致。
volume.beta.kubernetes.io/storage-provisioner
必须使用flexvolume-huawei.com/fuxinfs。
storage
存储容量,单位Gi,必须和已有pv的storage大小保持一致。
volumeName
PV的名称。
文件存储所在VPC必须与工作负载规划部署的ECS虚拟机的VPC保持一致。
- PV yaml文件配置示例:
- 创建PV。
kubectl create -f pv-sfs-example.yaml
- 创建PVC。
kubectl create -f pvc-sfs-example.yaml