介绍:
目前动态生成NAS存储卷的实现:在一个已有文件系统上,自动生成子文件系统(子目录),并生成目标存储卷(PV);
生成的PV名字为:pvc-${pv-uid}
镜像介绍:
registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v3.1.0-k8s1.11
部署:
部署前要先创建一个NAS文件系统,并添加挂载点。注意:挂载点需要和集群处于同一个VPC内部。
部署模板中,创建Storageclass的时候可以定义reclaimPolicy类型,可以为Retain或者Delete;
根据自己NAS挂载点修改NFS_SERVER、server的值;
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: alicloud-nas
mountOptions:
- vers=4.0
provisioner: alicloud/nas
reclaimPolicy: Retain---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:name: alicloud-nas-controllernamespace: kube-system
spec:replicas: 1strategy:type: Recreatetemplate:metadata:labels:app: alicloud-nas-controllerspec:tolerations:- effect: NoScheduleoperator: Existskey: node-role.kubernetes.io/master- effect: NoScheduleoperator: Existskey: node.cloudprovider.kubernetes.io/uninitializednodeSelector:node-role.kubernetes.io/master: ""serviceAccount: admincontainers:- name: alicloud-nas-controllerimage: registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v3.1.0-k8s1.11volumeMounts:- mountPath: /persistentvolumesname: nfs-client-rootenv:- name: PROVISIONER_NAMEvalue: alicloud/nas- name: NFS_SERVERvalue: 0cd8b4a576-mmi32.cn-hangzhou.nas.aliyuncs.com- name: NFS_PATHvalue: /volumes:- name: nfs-client-rootnfs:server: 0cd8b4a576-mmi32.cn-hangzhou.nas.aliyuncs.compath: /
测试:
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:name: web
spec:serviceName: "nginx"replicas: 2template:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:alpinevolumeMounts:- mountPath: "/data"name: htmlvolumeClaimTemplates:- metadata:name: htmlspec:accessModes:- ReadWriteOncestorageClassName: alicloud-nasresources:requests:storage: 2Gi
# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-945ca15d-e0ab-11e8-9d2f-00163e145c08 2Gi RWO Retain Bound default/html-web-0 alicloud-nas-retain 13m
pvc-9a162bb2-e0ab-11e8-9d2f-00163e145c08 2Gi RWO Retain Bound default/html-web-1 alicloud-nas-retain 13m
原文链接
本文为云栖社区原创内容,未经允许不得转载。