Kubrenetes使用Aliyun NAS持久卷(PV)和存储类(storageClass)
下载外部存储的布署文件
此项目支持多种外部存储,包括nfs glusterfs ceph 等主流存储,阿里云NAS是NFS, 所以需要布署nfs-client类型的外部存储。
nfs-client目录如下:
- class.yaml 存储类定义文件
- deployment-arm.yaml arm架构下的布署文件,我们不用理会
- deployment.yaml 布署清单
- rbac rbac权限文件
- test-claim.yaml pvc测试文件
- test-pod.yaml 存储卷测试 pod清单
deployment.yaml 详情
apiVersion: v1
kind: ServiceAccount
metadata:
name: nfs-client-provisioner
---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: nfs-client-provisioner
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: nfs-client-provisioner
spec:
serviceAccountName: nfs-client-provisioner
containers:
- name: nfs-client-provisioner
image: quay.io/external_storage/nfs-client-provisioner:latest
volumeMounts:
- name: nfs-client-root
mountPath: /persistentvolumes
env:
- name: PROVISIONER_NAME
value: daqinxm.com/nas
- name: NFS_SERVER
value: abcdefge-tq76.cn-hangzhou.extreme.nas.aliyuncs.com
- name: NFS_PATH
value: /share
volumes:
- name: nfs-client-root
nfs:
server:abcdefg0-tq76.cn-hangzhou.extreme.nas.aliyuncs.com
path: /share
修改其中PROVISIONER_NAME 供给者名、 server等值 ,改为NAS挂载点,
class.yaml详情
修改供给者名,注意,要必须 与deployment.yaml中设定的供给者名 相同
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nas
provisioner: abcdefg.com/nas
PROVISIONER_NAME'
parameters:
archiveOnDelete: "false"
布署
kubectl apply -f rbac.yaml
kubectl apply -f deployment.yaml
kubectl apply -f class.yaml
布署成功后就可以使用存储类来申请持久卷
例:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-data
namespace: sonarqube
spec:
accessModes:
- ReadWriteOnce
storageClassName: nas
resources:
requests:
storage: 5Gi
閱讀更多 往事如風孔雀君 的文章