日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿里云Kubernetes CSI实践—NAS动态存储卷使用

發(fā)布時間:2024/8/23 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里云Kubernetes CSI实践—NAS动态存储卷使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 前言

NAS存儲盤能將nfs(網(wǎng)絡(luò)文件系統(tǒng))掛載到你的Pod中,阿里云Kubernetes CSI支持靜態(tài)存儲卷掛載和動態(tài)存儲卷掛載2種方式, 在靜態(tài)存儲卷掛載的方式中,通常需要手動編輯和創(chuàng)建一個pv/pvc進(jìn)行掛載,當(dāng)需要的pv/pvc數(shù)量很大的時候,手動創(chuàng)建就顯得非常繁瑣了,這時動態(tài)存儲卷掛載的功能可以滿足您的需求。本文演示如何使用NAS動態(tài)存儲卷。

2. 部署csi-nas-plugin

如何你的Kubernetes集群中還沒有部署, 請參考以下步驟進(jìn)行部署:

2.1 部署csi-provisioner

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

2.2 部署csi-nasplugin

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

2.3 檢查運行狀態(tài)

$ kubectl -nkube-system get po -o wide |grep csi csi-nasplugin-7mbmx 2/2 Running 0 csi-nasplugin-89t9v 2/2 Running 0 csi-nasplugin-8fw5p 2/2 Running 0 csi-nasplugin-grbqn 2/2 Running 0 csi-nasplugin-ks8mw 2/2 Running 0 csi-nasplugin-pp5g7 2/2 Running 0 csi-provisioner-0 2/2 Running 0

3. 使用NAS動態(tài)存儲卷

目前阿里云Kubernetes CSI支持2種類型的NAS動態(tài)存儲卷掛載:subpath方式和filesystem方式。

3.1?subpath類型的NAS動態(tài)存儲卷使用

3.1.1 使用場景

當(dāng)你的多個Kubernetes應(yīng)用或者Pod需要掛載相同的NAS存儲卷共享數(shù)據(jù)時,或不同的Pod掛載相同NAS文件系統(tǒng)的不同子目錄時, 可以使用subpath類型的NAS動態(tài)存儲卷方式。

3.1.2 創(chuàng)建NAS文件系統(tǒng)和掛載點

subpath的方式要求用戶首先使用NAS控制臺?或?SDK/API?創(chuàng)建好NAS文件系統(tǒng)和掛載點。
文件系統(tǒng):

掛載點:

3.1.3 創(chuàng)建StoragClass

編輯storageclass.yaml文件, 詳細(xì)參數(shù)說明見:https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver/blob/master/docs/nas-dynamic.md

apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: alicloud-nas-subpath mountOptions: - nolock,tcp,noresvport - vers=3 parameters:volumeAs: subpathserver: "xxxxxxx.cn-hangzhou.nas.aliyuncs.com:/k8s/" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Retain

運行以下命令創(chuàng)建StorageClass?alicloud-nas-subpath

$ kubectl create -f storageclass.yaml

3.1.4 創(chuàng)建PV/PVC和Pod掛載NAS存儲卷

創(chuàng)建Pod?nginx-1?nginx-2共享NAS存儲卷的同一個子目錄,?pvc.yaml?nginx-1.yaml和nginx-2.yaml文件內(nèi)容如下:
pvc.yaml

kind: PersistentVolumeClaim apiVersion: v1 metadata:name: nas-csi-pvc spec:accessModes:- ReadWriteManystorageClassName: alicloud-nas-subpathresources:requests:storage: 20Gi

nginx-1.yaml:

apiVersion: apps/v1 kind: Deployment metadata:name: deployment-nas-1labels:app: nginx-1 spec:selector:matchLabels:app: nginx-1template:metadata:labels:app: nginx-1spec:containers:- name: nginximage: nginx:1.7.9ports:- containerPort: 80volumeMounts:- name: nas-pvcmountPath: "/data"volumes:- name: nas-pvcpersistentVolumeClaim:claimName: nas-csi-pvc

nginx-2.yaml

apiVersion: apps/v1 kind: Deployment metadata:name: deployment-nas-2labels:app: nginx-2 spec:selector:matchLabels:app: nginx-2template:metadata:labels:app: nginx-2spec:containers:- name: nginximage: nginx:1.7.9ports:- containerPort: 80volumeMounts:- name: nas-pvcmountPath: "/data"volumes:- name: nas-pvcpersistentVolumeClaim:claimName: nas-csi-pvc

創(chuàng)建pvc和deployment:

$ kubectl create -f pvc.yaml -f nginx-1.yaml -f nginx-2.yaml$ kubectl get po NAME READY STATUS RESTARTS AGE deployment-nas-1-5b5cdb85f6-nhklx 1/1 Running 0 32s deployment-nas-2-c5bb4746c-4jw5l 1/1 Running 0 32s

在這種情況下, NAS存儲卷的xxxxxxx.cn-hangzhou.nas.aliyuncs.com:/share/nas-79438493-f3e0-11e9-bbe5-00163e09c2be?會同時掛載到deployment-nas-1-5b5cdb85f6-nhklx?和?deployment-nas-2-c5bb4746c-4jw5l?的?/data目錄下。?注意: "/share" 為StorageClass中指定的subpath,"nas-79438493-f3e0-11e9-bbe5-00163e09c2be"為pv的name

如果你需要為不同的Pod掛載同一個NAS文件系統(tǒng)的不同子目錄, 則需要分別創(chuàng)建pvc-1和nginx-1以及pvc-2和nginx-2。

3.2?filesystem類型的NAS動態(tài)存儲卷使用

注意: filesystem類型的NAS動態(tài)卷在刪除時默認(rèn)保留文件系統(tǒng)和掛載點, 若需要在釋放pv資源的同時釋放NAS文件系統(tǒng)和掛載點, 則需要同時設(shè)置StorageClass中的reclaimPolicy為Delete且deleteVolume的值為"true"

3.2.1 使用場景

在3.1中的subpath方式中,你需要首先手動創(chuàng)建NAS文件系統(tǒng)和掛載點。 當(dāng)你的Kubernetes應(yīng)用需要動態(tài)創(chuàng)建和刪除NAS文件系統(tǒng)和掛載點時, 可以使用filesystem類型。?注意:使用filesystem類型NAS存儲卷的Pod只能創(chuàng)建一個文件系統(tǒng)和一個掛載點, 多個Pod之間無法共享一個存儲卷

3.2.2 創(chuàng)建StorageClass

編輯storageclass.yaml文件, 詳細(xì)參數(shù)說明見:https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver/blob/master/docs/nas-dynamic.md

apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: alicloud-nas-fs mountOptions: - nolock,tcp,noresvport - vers=3 parameters:volumeAs: filesystemvpcId: "vpc-xxxxxxxxxxxx"vSwitchId: "vsw-xxxxxxxxx"deleteVolume: "false" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Retain

運行以下命令創(chuàng)建StorageClass?alicloud-nas-subpath

$ kubectl create -f storageclass.yaml

3.2.3 創(chuàng)建PV/PVC和Pod掛載NAS存儲卷

pvc.yaml?nginx.yaml文件內(nèi)容如下:
pvc.yaml

kind: PersistentVolumeClaim apiVersion: v1 metadata:name: nas-csi-pvc-fs spec:accessModes:- ReadWriteManystorageClassName: alicloud-nas-fsresources:requests:storage: 20Gi

nginx.yaml

apiVersion: apps/v1 kind: Deployment metadata:name: deployment-nas-fslabels:app: nginx spec:selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.7.9ports:- containerPort: 80volumeMounts:- name: nas-pvcmountPath: "/data"volumes:- name: nas-pvcpersistentVolumeClaim:claimName: nas-csi-pvc-fs

創(chuàng)建pvc和deployment:

$ kubectl create -f pvc.yaml -f nginx.yaml

在這種場景下, csi會在pvc創(chuàng)建時動態(tài)新建NAS文件系統(tǒng)和掛載點, pvc刪除時動態(tài)刪除掛載點和文件系統(tǒng)。


原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的阿里云Kubernetes CSI实践—NAS动态存储卷使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。