kubernetes使用阿里云cpfs持久存储

简介

cpfs的具体介绍可参考这里:
https://help.aliyun.com/document_detail/111755.html?spm=a2c4g.11174283.3.1.1275c6eclqO43j

要使用cpfs存储,需要在所有的k8s节点上安装cpfs的客户端。安装cpfs客户端本身的步骤并不复杂,但它依赖的东西让人很烦。

它依赖于kernel-devel,同时还要求kernel, kernel-devel以及kernel-headers的版本必须完成一致。

我在使用的时候,遇到了kernel版本低于kernel-devel版本的问题,由于现在的yum源中都已经更新了kernel-devel的版本,找不到低版本的kernel-devel了,让我不得不更新kernel和kernel-headers。问题是更新了这俩玩艺儿,就必须得重启系统。机器一多,头都大了。

安装cpfs客户端

下面还是简单的说一下cpfs客户端的安装过程:

  1. cpfs 客户端安装
# 保持kernel kernel-devel kernel-headers的版本一致
sudo yum update kernel-devel kernel-headers

sudo yum install -y make gcc libyaml-devel libtool zlib-devel glibc-headers dkms expect

wget https://cpfs-client.oss-cn-beijing.aliyuncs.com/centos/cpfs-client-2.10.8-202.el7.tar.gz

tar xf cpfs-client-2.10.8-202.el7.tar.gz

# 这一步大概需要等待5-10分钟
sudo rpm -vih  cpfs-client-dkms-1.0.0-202.el7.noarch.rpm
sudo rpm -vih cpfs-client-2.10.8-202.el7.x86_64.rpm

在我的环境中,之前安装了旧版本的cpfs客户端,一大堆的问题,现在安装了新的还没法生效,必须得把旧的清理干净:


rpm -e lustre-client kmod-lustre-client

sudo lustre_rmmod;  sudo modprobe lustre
  1. 本地挂载验证:
vim /etc/cpfs/cpfs-mounts.conf

xxx.cn-beijing.cpfs.nas.aliyuncs.com@tcp:xxx.cn-beijing.cpfs.nas.aliyuncs.com@tcp:/xxx


/etc/init.d/cpfs-client start
systemctl enable cpfs-client

这一步操作没问题的话,就意味着客户端正常安装。

kubernetes使用cfs作为持久存储

  1. 创建pv:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: cpfs-pv
spec:
  capacity:
    storage: 5Ti
  accessModes:
    - ReadWriteMany
  flexVolume:
    driver: "alicloud/cpfs"
    options:
      server: xxx.cn-beijing.cpfs.nas.aliyuncs.com@tcp:xxx.cn-beijing.cpfs.nas.aliyuncs.com@tcp
      fileSystem: xxx
  1. 创建pvc:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cpfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Ti

另外多提一嘴,这个cpfs在kubernetes中的对接,使用的是flexvolume,阿里云这边还建议升级flexvolume插件的版本至:v1.14.6.19-e986f6e-aliyun

posted @ 2019-11-19 19:44  breezey  阅读(1291)  评论(2编辑  收藏  举报