1.前言

CPFS(Cloud Paralleled File System)是一种并行文件系统。CPFS数据存储在集群中的多个数据节点中,可以被多个客户端同时访问,从而提供高IOPS、高吞吐、低延迟的数据存储服务用于大型高性能计算机集群。

Aliyun Kubernetes CSI支持CPFS存储卷的静态挂载和动态挂载。在静态存储卷挂载方式中,挂载通常需要手动编辑创建pv/pvc。当需要大量pv/pvc时,手动创建变得繁琐,动态存储卷挂载功能可以满足你的需求。本文演示如何在ACK集群中使用alibaba-cloud-csi-driver挂载CPFS 存储卷。

2.部署 csi-cpfs 组件

如果需要挂载CPFS存储卷,首先需要在ACK集群中部署cpfs-provisioner和cpfs-plugin,步骤如下:

2.1 部署cpfs规定:

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/alibaba-cloud-csi-driver/master/deploy/cpfs/cpfs-provisioner.yaml

2.2 部署cpfs-plugin:

zoz100036`

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/alibaba-cloud-csi-driver/master/deploy/cpfs/cpfs-plugin.yaml

zoz100037`

2.3 查看运行状态

$ kubectl -nkube-system 获取 po |grep cpfs

csi-cpfs-provisions-0 1/1 运行

csi-cpfsplugin-g2czx 2/2 运行

csi-cpfsplugin-l6zp8 2/2 运行

csi-cpfsplugin-nwt2j 2/2 运行

csi-cpfsplugin-skjds 2/2 运行

csi-cpfsplugin-sp9mb 2/2 运行

csi-cpfsplugin-tmjm5 2/2 运行

3.使用 CPFS 动态存储卷

目前,阿里云 Kubernetes CSI 支持子路径 CPFS 动态存储卷挂载。

当多个 Kubernetes 应用或 Pod 需要挂载同一个 CPFS 存储卷来共享数据,或者不同 Pod 挂载同一个 CPFS 文件系统的不同子目录时,可以使用 subpath CPFS 动态存储卷.csi 在CPFS 文件系统的根目录,并将其挂载到应用程序的 pod 中。

3.1 创建CPFS文件系统

用户先使用NAS Console创建CPFS文件系统。

文件系统:

查看文件系统详细信息并获取挂载点信息:

3.2 创建StoragClass

编辑 storageclass.yaml 文件详细参数说明:https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver/blob/master/docs/cpfs-dynamic.md

api版本:storage.k8s.io/v1

种类:存储类

元数据:

名称:阿里云-cpfs

参数:

volumeAs:子路径

服务器:“xxxxxx@tcp:xxxxxx@tcp:/xxxxxx”

archiveOnDelete:“假”

佣金:cpfsplugin.csi.alibabacloud.com

reclaimPolicy:删除

将sever参数替换为挂载点路径信息,运行如下命令创建StorageClass alicloud-cpfs

$ kubectl 创建 -f storageclass.yaml

storageclass.storage.k8s.io/alicloud-cpfs 创建

3.3 创建 PV/PVC 和 OD 挂载的 cpfs 存储卷

示例应用编排文件 deploy.yaml 如下:

种类:PersistentVolumeClaim

api版本:v1

元数据:

名称:cpfs-pvc

规格:

访问模式:

  • 读写多

storageClassName: alicloud-cpfs

资源:

要求:

存储:20Gi


api版本:应用程序/v1

种类:部署

元数据:

名称:部署-cpfs

标签:

应用程序:nginx

规格:

选择器:

匹配标签:

应用程序:nginx

模板:

元数据:

标签:

应用程序:nginx

规格:

容器:

  • 名称:nginx

图片:nginx:1.7.9

端口:

  • 容器端口:80

体积安装:

  • 名称:cpfs-pvc

安装路径:“/数据”

卷:

  • 名称:cpfs-pvc

持久量声明:

声明名称:cpfs-pvc

创建 pvc 和部署:

$ kubectl create -f deploy.yaml

$ kubectl 获取 po

NAME READY STATUS RESTARTS AGE

部署-cpfs-7f6977f9f6-s8wdx 1/1 运行 0 25s

至此,我们已经成功在CPFS文件系统中创建了一个子目录,并挂载到了应用程序deployment-cpfs。

如果需要为不同的 Pod 挂载同一个 CPFS 文件系统的不同子目录,只需分别创建 cpfs-pvc-01 和 cpfs-pvc-02 及其对应的应用编排即可。

4.使用 CPFS 静态存储卷

与 CPFS 动态存储卷不同,CPFS 静态存储卷需要手动 PV 资源编排,并且可以自定义子路径路径。编排文件示例如下:

api版本:v1

种类:持久卷

元数据:

名称:cpfs-csi-pv

标签:

阿里云-pvname: cpfs-pv

规格:

容量:

存储:5Gi

访问模式:

  • 读写一次

persistentVolumeReclaimPolicy:保留

CSI:

驱动:cpfsplugin.csi.alibabacloud.com

卷句柄:cpfs-csi-pv

体积属性:

服务器:“xxxxxx@tcp:xxxxxx@tcp”

文件系统:“xxxxxx”

子路径:“/k8s”


种类:PersistentVolumeClaim

api版本:v1

元数据:

名称:cpfs-pvc

规格:

访问模式:

  • 读写一次

资源:

要求:

存储:5Gi

选择器:

匹配标签:

阿里云-pvname: cpfs-pv


api版本:应用程序/v1

种类:部署

元数据:

名称:部署-cpfs

标签:

应用程序:nginx

规格:

选择器:

匹配标签:

应用程序:nginx

模板:

元数据:

标签:

应用程序:nginx

规格:

容器:

  • 名称:nginx

图片:nginx:1.7.9

端口:

  • 容器端口:80

体积安装:

  • 名称:cpfs-pvc

安装路径:“/数据”

卷:

  • 名称:cpfs-pvc

持久量声明:

声明名称:cpfs-pvc

5.参考文件

CPFS CSI 插件

文件存储 CPFS

Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐