介紹
阿里雲Kubernetes集群目前支持NAS、OSS、CPFS等阿里雲共享存儲服務,並通過flexvolume進行掛載;
共享存儲支持一個存儲卷被多個Pod同時掛載,多個Pod可能同時修改相同數據,這時需要應用自行實現數據的同步功能;
NAS:適合於IO較高的應用,讀寫性能相對OSS高,可實現跨主機文件共享;如文件服務器;
OSS:適用於低IO服務,配置文件、圖片、小視頻等共享業務;
使用NAS卷創建應用
創建NAS存儲盤
- 在NAS控制台創建一個NAS文件系統盤;
- 創建NAS掛載點,掛載點配置成集群所在的VPC網絡;
- 可以在集群中一個節點掛載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
