您可以通過阿里云提供的Flexvolume插件使用阿里云NAS文件存儲服務。本文介紹如何使用NAS靜態存儲卷。
前提條件
- 使用NAS數據卷之前,您需要在文件存儲管理控制臺上創建文件系統,并在文件系統中添加掛載點。創建的NAS文件系統掛載點需要和您的集群位于同一VPC。
- 請將Flexvolume插件更新到最新版本。
- 已通過kubectl連接Kubernetes集群。具體操作,請參見獲取集群KubeConfig并通過kubectl工具連接集群。
背景信息
使用Flexvolume插件,您可以通過PV和PVC方式使用阿里云NAS存儲卷。操作步驟
Pod可以通過關聯創建的PV和PVC的方式使用NAS存儲卷。
- 創建PV。您可以使用YAML文件或者通過阿里云容器服務控制臺界面創建NAS數據卷。
- 通過YAML文件創建PV。使用nas-pv.yaml文件創建PV。
apiVersion: v1 kind: PersistentVolume metadata: name: pv-nas spec: capacity: storage: 5Gi storageClassName: nas accessModes: - ReadWriteMany flexVolume: driver: "alicloud/nas" options: server: "0cd8b4a576-u****.cn-hangzhou.nas.aliyuncs.com" path: "/k8s" vers: "3" options: "nolock,tcp,noresvport"
- 通過控制臺界面創建云盤數據卷。
- 登錄容器服務管理控制臺。
- 在控制臺左側導航欄中,單擊集群。
- 在集群列表頁面中,單擊目標集群名稱或者目標集群右側操作列下的詳情。
- 在集群管理頁左側導航欄中,選擇 。
- 在存儲卷頁面的右上角單擊創建。
- 在創建存儲卷對話框中,配置存儲卷的相關參數。
參數 描述 存儲卷類型 本示例中為NAS。 名稱 創建的存儲卷名稱。存儲卷名在集群內必須唯一。本例為pv-nas。 存儲驅動 本示例選擇Flexvolume。有關存儲插件詳細信息,請參見CSI和Flexvolume存儲插件的區別。 總量 所創建存儲卷的容量。注意不能超過NAS文件系統的存儲容量。 訪問模式 默認為ReadWriteMany。 掛載點域名 集群在NAS文件系統中掛載點的掛載地址。關于NAS文件系統掛載點的管理,請參見管理掛載點。 子目錄 NAS路徑下的子目錄,以 / 開頭,設定后存儲卷將掛載到指定的子目錄。 - 如果NAS根目錄下沒有此子目錄,會默認創建后再掛載。
- 您可以不填此項,默認掛載到NAS根目錄。
- 極速NAS需要以/share開頭。
權限 設置掛載目錄的訪問權限,例如755、644、777等。 說明- 只有掛載到NAS子目錄時才能設置權限,掛載到根目錄時不能設置。
- 當掛載的目錄文件量較大時不建議此配置,否則會出現chmod長時間執行。
如果掛載到NAS子目錄時,您可以選擇設置權限,或者不填此項。- 不填此項,默認權限為NAS文件原來的權限。
- 選擇設置權限時:
- 如果是Flexvolume v1.14.6.15-8d3b7e7-aliyun以前版本,則使用遞歸方式進行權限操作,掛載目錄下面所有文件、目錄都會被修改權限。
- 如果是Flexvolume v1.14.6.15-8d3b7e7-aliyun以及以后版本,配置了此項,按照權限模式的配置執行權限操作。
權限模式 定義權限變更方式,支持非遞歸或遞歸方式。 - 非遞歸:執行權限變更時,只對掛載目錄起作用,其子目錄、包含的文件不進行變更權限。
- 遞歸:執行權限變更時,會對其子目錄、包含的文件進行遞歸操作,全部變更權限。說明 當掛載目錄下面文件數量較多時,使用遞歸方式,會出現執行chmod耗時長,從而導致掛載、卸載操作失敗的可能,請謹慎使用。
版本 掛載的NAS卷使用的NFS協議版本號,推薦使用V3,且極速類型NAS只支持V3。 標簽 為該存儲卷添加標簽。 - 完成配置后,單擊創建。
- 通過YAML文件創建PV。
- 創建PVC。使用nas-pvc.yaml文件創建PVC。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-nas spec: accessModes: - ReadWriteMany storageClassName: nas resources: requests: storage: 5Gi
- 創建Pod。使用nas-pod.yaml文件創建Pod。
apiVersion: apps/v1 kind: Deployment metadata: name: nas-static labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80 volumeMounts: - name: pvc-nas mountPath: /data volumes: - name: pvc-nas persistentVolumeClaim: claimName: pvc-nas
文檔內容是否對您有幫助?