mac k8s挂载自带的nfs服务

版本
k8s版本:1.19.3
macos版本:10.15.2
目标:
使用StorageClass资源自动创建pv挂载卷

创建nfs服务(如果没有)

$ sudo vi /etc/exports
/Users/xyz/pv/data/ -alldirs  -maproot=root:wheel -network=192.168.0.0 -mask=255.255.0.0

说明:

  • /Users/xyz/pv/data/ 指定共享目录
  • -alldirs 共享目录下的所有目录
  • -maproot 把client端的root用户映射为Mac OS上的root,client端的root组映射为Mac OS上的wheel (gid=0) 组- -network -mask 指定本工作网段,子网掩码

注意:修改nfs.cnf配置文件,不然k8s挂载nfs时会报错
查看网络偏好设置获取ip地址

$ sudo vi /etc/nfs.conf
nfs.server.mount.require_resv_port = 0

# 服务命令
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安装
详见github https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client

测试

通过创建PVC看看是否能够自动创建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

如果没有意外,可以在看到两个pv被创建和绑定


image.png

你可能感兴趣的:(mac k8s挂载自带的nfs服务)