簡介
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客戶端的安裝過程:
- 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
- 本地掛載驗證:
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作為持久存儲
- 創建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
- 創建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