您可以在阿里云容器服务Kubernetes版(ACK)中使用文件存储CPFS(Cloud Paralleled File System)。本文介绍如何在ACK中安装Flexvolume插件,并通过CPFS数据卷的方式为应用(Pod)提供CPFS服务。
前提条件
- 您已创建一个专有版Kubernetes集群,请参见创建Kubernetes托管版集群。
- 开放公网SSH访问,请参见SSH访问Kubernetes集群。
注意 ACK CPFS存储卷服务目前只支持CPFS 1.0版,不支持2.0版本。
背景信息
CPFS是一种并行文件系统。CPFS的数据存储在集群中的多个数据节点,并可由多个客户端同时访问,从而能够为大型高性能计算机集群提供高IOPS、高吞吐、低时延的数据存储服务。CPFS是共享存储服务类型,适合于容器服务场景对资源共享、高性能的要求,在大数据、AI、基因计算等高性能场景中使用容器服务和CPFS是一个推荐的解决方案。有关CPFS详情,请参见什么是文件存储CPFS。
步骤一、部署插件
ACK中使用CPFS依赖以下两个驱动类组件:
- CPFS容器驱动:即为Flexvolume-cpfs插件,对Centos各个版本都兼容,部署Flexvolume-cpfs即可完成安装。
- CPFS客户端驱动:为CPFS挂载时的客户端(类似于nfs-client),驱动与操作系统内核是强依赖。容器场景中安装CPFS客户端驱动有以下方式:
- 手动安装驱动。请参见挂载文件系统。
- Flexvolume-cpfs部署时自动安装驱动,但只支持部分内核版本。
您可以通过在节点上执行命令
uname -a
查看内核版本。目前容器场景下您可以在以下内核版本中安装CPFS客户端驱动。3.10.0-957.5.1 3.10.0-957.21.3 3.10.0-1062.9.1
说明- 目前Flexvolume只支持安装CPFS Client驱动,不支持cpfs-client驱动升级,即发现节点安装了CPFS客户端,不再继续安装驱动。
- 升级Flexvolume版本,只会升级Flexvolume驱动(容器驱动),而不会升级cpfs-client版本。
- 在已经部署了cpfs-client、lustre驱动的节点上安装cpfs flexvolume不会再安装新版本的cpfs-client。
- cpfs-client驱动升级需要手动进行。具体操作,请参见挂载文件系统。
- 在集群节点中部署YAML模板。
- 检查部署情况。
步骤二、使用CPFS数据卷
在ACK中使用CPFS数据卷,需要您先到CPFS控制台创建一个CPFS卷和挂载点。参见创建文件系统。
注意 创建CPFS挂载点时,选择的VPC网络需要和ACK集群在同一个VPC内。
在以下示例中,获取的挂载点为 《cpfs-*-alup.cn-shenzhen.cpfs.nas.aliyuncs.com@tcp:cpfs--ws5v.cn-shenzhen.cpfs.nas.aliyuncs.com@tcp》;文件系统ID为 《0237ef41》。
- 创建PV。
- 创建PVC。
- 创建应用。
执行结果
执行以下命令检查Pod挂载情况。
kubectl get pod
预期输出:
NAME READY STATUS RESTARTS AGE
nas-cpfs-79964997f5-kzrtp 1/1 Running 0 45s
执行以下命令进入Pod查看挂载目录。
kubectl exec -ti nas-cpfs-79964997f5-kzrtp sh
mount | grep k8s
预期输出:
192.168.1.12@tcp:192.168.1.10@tcp:/0237ef41/k8s on /data type lustre (ro,lazystatfs)
执行以下命令进入Pod所在节点,查看挂载目录。
mount | grep cpfs
预期输出:
192.168.1.12@tcp:192.168.1.10@tcp:/0237ef41/k8s on /var/lib/kubelet/pods/c4684de2-26ce-11ea-abbd-00163e12e203/volumes/alicloud~cpfs/pv-cpfs type lustre (ro,lazystatfs)