版本
k8s版本:1.19.3
macos版本:10.15.2
目標(biāo):
使用StorageClass資源自動(dòng)創(chuàng)建pv掛載卷
創(chuàng)建nfs服務(wù)(如果沒(méi)有)
$ sudo vi /etc/exports
/Users/xyz/pv/data/ -alldirs -maproot=root:wheel -network=192.168.0.0 -mask=255.255.0.0
說(shuō)明:
- /Users/xyz/pv/data/ 指定共享目錄
- -alldirs 共享目錄下的所有目錄
- -maproot 把client端的root用戶(hù)映射為Mac OS上的root锅纺,client端的root組映射為Mac OS上的wheel (gid=0) 組- -network -mask 指定本工作網(wǎng)段慨畸,子網(wǎng)掩碼
注意:修改nfs.cnf配置文件,不然k8s掛載nfs時(shí)會(huì)報(bào)錯(cuò)
查看網(wǎng)絡(luò)偏好設(shè)置獲取ip地址
$ sudo vi /etc/nfs.conf
nfs.server.mount.require_resv_port = 0
# 服務(wù)命令
sudo nfsd checkexports
sudo nfsd enable
sudo nfsd disable
sudo nfsd start
sudo nfsd stop
sudo nfsd restart
sudo nfsd status
showmount -e 192.168.0.10
安裝nfs-client
helm安裝
helm upgrade -i nfs stable/nfs-client-provisioner --set nfs.server=192.168.0.10 --set nfs.path=/Users/xyz/pv/data
yaml安裝
詳見(jiàn)github https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client
測(cè)試
通過(guò)創(chuàng)建PVC看看是否能夠自動(dòng)創(chuàng)建PV
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: test-ns-pvc
namespace: lens-metrics
annotations:
volume.beta.kubernetes.io/storage-class: "nfs-client" #與nfs-StorageClass.yaml metadata.name保持一致
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: test-pvc
annotations:
volume.beta.kubernetes.io/storage-class: "nfs-client" #與nfs-StorageClass.yaml metadata.name保持一致
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
如果沒(méi)有意外,可以在看到兩個(gè)pv被創(chuàng)建和綁定
image.png