使用CPFS2.0靜態(tài)存儲(chǔ)卷
CPFS(Cloud Paralleled File System)是一種并行文件系統(tǒng)。CPFS的數(shù)據(jù)存儲(chǔ)在集群中的多個(gè)數(shù)據(jù)節(jié)點(diǎn),并可由多個(gè)客戶端同時(shí)訪問,從而能夠?yàn)榇笮透咝阅苡?jì)算機(jī)集群提供高IOPS、高吞吐、低時(shí)延的數(shù)據(jù)存儲(chǔ)服務(wù)。本文介紹如何在ACK集群中掛載及使用CPFS2.0靜態(tài)存儲(chǔ)卷。
前提條件
csi-plugin和csi-provisioner組件版本不低于v1.22.11-abbb810e-aliyun。關(guān)于升級(jí)CSI-Plugin和CSI-Provisioner組件的操作,請(qǐng)參見升級(jí)csi-plugin和csi-provisioner。
已創(chuàng)建CPFS文件系統(tǒng),且CPFS版本號(hào)不低于2.3.0,最大容量不低于3600 GiB。具體操作,請(qǐng)參見創(chuàng)建文件系統(tǒng)和擴(kuò)容文件系統(tǒng)。
已通過kubectl工具連接Kubernetes集群。具體操作,請(qǐng)參見獲取集群KubeConfig并通過kubectl工具連接集群。
步驟一:創(chuàng)建協(xié)議服務(wù)并獲取掛載地址
您需要先創(chuàng)建CPFS文件系統(tǒng)對(duì)應(yīng)的協(xié)議服務(wù),并獲取協(xié)議服務(wù)的掛載地址方便后續(xù)在ACK集群中掛載使用。
登錄NAS控制臺(tái),選擇 。
在文件系統(tǒng)列表頁面,單擊目標(biāo)文件系統(tǒng)名稱。
在文件系統(tǒng)詳情頁面,確認(rèn)CPFS的版本號(hào)大于等于2.3.0,最大容量大于等于3600 GiB,然后單擊協(xié)議服務(wù)。
在協(xié)議服務(wù)頁面,單擊創(chuàng)建協(xié)議服務(wù),配置如下參數(shù),然后單擊確定。
參數(shù)
說明
協(xié)議服務(wù)配置
選擇協(xié)議服務(wù)規(guī)格,默認(rèn)為通用型。
說明文件系統(tǒng)容量大于3600 GiB才能創(chuàng)建通用型協(xié)議服務(wù)。
通用型協(xié)議服務(wù)的帶寬與CPFS文件系統(tǒng)的帶寬一致,不提供數(shù)據(jù)緩存,不產(chǎn)生費(fèi)用。
協(xié)議類型
NFSv3協(xié)議。
VPC網(wǎng)絡(luò)
協(xié)議集群使用的VPC網(wǎng)絡(luò),與CPFS文件系統(tǒng)使用的VPC網(wǎng)絡(luò)相同,不可修改。
交換機(jī)
選擇協(xié)議集群使用的vSwitch網(wǎng)絡(luò),默認(rèn)為CPFS文件系統(tǒng)使用的vSwitch,可配置為該VPC內(nèi)的其他vSwitch。
說明單個(gè)協(xié)議服務(wù)最多消耗vSwitch上32個(gè)IP地址,請(qǐng)確保該vSwitch IP資源充足。
協(xié)議導(dǎo)出
指定CPFS文件系統(tǒng)中通過協(xié)議服務(wù)導(dǎo)出的Fileset或者目錄。推薦使用Fileset導(dǎo)出,具備更強(qiáng)的功能,例如文件數(shù)量管理、數(shù)據(jù)流動(dòng)。
說明指定導(dǎo)出的Fileset或目錄必須已存在。若Fileset不存在,請(qǐng)先創(chuàng)建Fileset。具體操作,請(qǐng)參見創(chuàng)建Fileset。
使用目錄導(dǎo)出時(shí),目錄格式如下:
長度為1~1024個(gè)字符。
使用UTF-8編碼。
必須以正斜線(/)開頭和結(jié)尾,導(dǎo)出根目錄為
/
。
導(dǎo)出VPC網(wǎng)絡(luò)
選擇與ECS實(shí)例相同的VPC。該VPC內(nèi)的ECS可通過協(xié)議服務(wù)訪問CPFS文件系統(tǒng)。
導(dǎo)出交換機(jī)
選擇與ECS實(shí)例相同的交換機(jī),協(xié)議集群通過該vSwitch將協(xié)議服務(wù)導(dǎo)出到指定的導(dǎo)出VPC。
說明單個(gè)協(xié)議服務(wù)最多消耗vSwitch上32個(gè)IP地址,請(qǐng)確保該vSwitch IP資源充足。
權(quán)限組
僅支持VPC默認(rèn)權(quán)限組。
在協(xié)議服務(wù)頁面,單擊目標(biāo)協(xié)議服務(wù)右側(cè)操作列下的導(dǎo)出目錄,然后在彈出的對(duì)話框中復(fù)制對(duì)應(yīng)的掛載地址并保存,掛載地址包含掛載點(diǎn)域名以及掛載目錄,如果指定導(dǎo)出的是
/
目錄,則掛載地址顯示為cpfs-****.regionID.cpfs.aliyuncs.com:/share
。
步驟二:在ACK集群中使用CPFS2.0靜態(tài)卷
執(zhí)行以下命令,配置ConfigMap信息,開啟掛載CPFS2.0時(shí)使用的NFS協(xié)議。
cat << EOF | kubectl apply -f - apiVersion: v1 kind: ConfigMap metadata: name: csi-plugin namespace: kube-system data: cpfs-nas-enable: "true" #使用CPFS2.0掛載時(shí),使用NFS協(xié)議。 EOF
執(zhí)行以下命令,重啟csi-plugin,安裝相關(guān)依賴。
此操作不影響業(yè)務(wù)正常運(yùn)行。
kubectl -n kube-system rollout restart daemonset csi-plugin
預(yù)期輸出:
daemonset.apps/csi-plugin restarted
執(zhí)行以下命令,創(chuàng)建PV和PVC。
cat << EOF | kubectl apply -f - apiVersion: v1 kind: PersistentVolume metadata: name: cpfs-pv labels: alicloud-pvname: cpfs-pv spec: accessModes: - ReadWriteOnce capacity: storage: 20Gi csi: driver: nasplugin.csi.alibabacloud.com volumeAttributes: mountProtocol: cpfs-nfs # 使用NFS協(xié)議進(jìn)行掛載。 path: "/share" # 掛載地址中的目錄。 volumeAs: subpath server: "cpfs-****.regionID.cpfs.aliyuncs.com" # 掛載地址中的域名 volumeHandle: cpfs-pv # 必須與PV Name保持一致。 mountOptions: - rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport - vers=3 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cpfs-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi selector: matchLabels: alicloud-pvname: cpfs-pv EOF
執(zhí)行以下命令,創(chuàng)建StatefulSet工作負(fù)載并使用CPFS2.0靜態(tài)卷。
cat << EOF | kubectl apply -f - apiVersion: apps/v1 kind: StatefulSet metadata: name: cpfs-sts spec: selector: matchLabels: app: nginx serviceName: "nginx" replicas: 1 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx volumeMounts: - name: cpfs-pvc mountPath: /data volumes: - name: cpfs-pvc persistentVolumeClaim: claimName: cpfs-pvc EOF
執(zhí)行以下命令,驗(yàn)證CPFS2.0靜態(tài)卷是否掛載成功。
kubectl exec cpfs-sts-0 -- mount | grep /data
預(yù)期輸出:
cpfs-****.regionID.cpfs.aliyuncs.com:/share/nas-885ae9e7-9b0e-4f8f-a9ee-6a1bcf1ddb57 on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,port=30000,timeo=600,retrans=2,sec=sys,mountaddr=127.0.1.255,mountvers=3,mountport=30000,mountproto=tcp,local_lock=all,addr=127.0.1.255)
有預(yù)期輸出結(jié)果,說明CPFS2.0靜態(tài)卷掛載成功。