K8S有狀態服務-NAS共享存儲使用


介紹

阿里雲Kubernetes集群目前支持NAS、OSS、CPFS等阿里雲共享存儲服務,並通過flexvolume進行掛載;

共享存儲支持一個存儲卷被多個Pod同時掛載,多個Pod可能同時修改相同數據,這時需要應用自行實現數據的同步功能;

NAS:適合於IO較高的應用,讀寫性能相對OSS高,可實現跨主機文件共享;如文件服務器;

OSS:適用於低IO服務,配置文件、圖片、小視頻等共享業務;

使用NAS卷創建應用

創建NAS存儲盤

  1. 在NAS控制台創建一個NAS文件系統盤;
  2. 創建NAS掛載點,掛載點配置成集群所在的VPC網絡;
  3. 可以在集群中一個節點掛載NAS卷測試是否可行;

創建PV

通過NAS卷創建PV資源類型,配置PV唯一性標簽alicloud-pvname: pv-nas;

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nas
  labels:
    alicloud-pvname: pv-nas
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  flexVolume:
    driver: "alicloud/nas"
    options:
      server: "***-**.cn-beijing.nas.aliyuncs.com"
      path: "/k8s1"
      vers: "4.0"

options支持的參數:

server:NAS的掛載點;

path:所想掛載NAS文件系統的目錄,如果目錄不存在會自動創建;

vers:使用NFS的版本,支持3.0、4.0;

mode:掛載目錄后配置目錄的訪問權限,如果掛載的目錄文件量很大,此操作會很慢,不建議配置;

options:掛載NAS時,附加的參數,可選;

創建應用

PVC中通過selector來顯式指定所要綁定的pv;

NAS為共享存儲,可以在Deployment中配置replicas為2;

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-nas
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      alicloud-pvname: pv-nas
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nas-static
  labels:
    app: nginx
spec:
  replicas: 2
  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

 

 參考資料:https://yq.aliyun.com/articles/629000?spm=a2c4e.11154873.tagmain.68.3881649bmUeJar

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM