本文作者:丁辉
Helm对接外部NFS存储
NFS subdir 外部配置程序是一个自动配置程序,它使用现有且已配置的NFS 服务器来支持通过持久卷声明动态配置 Kubernetes 持久卷。
部署
添加仓库
1
2helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm repo update安装
1
2
3helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=127.0.0.1 \
--set nfs.path=/data国内无法拉取到此镜像 x86 架构的我已经同步到国内了,使用此命令安装
1
2
3
4
5
6helm install nfs-subdir-external-provisioner \
nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set image.repository=registry.cn-hangzhou.aliyuncs.com/offends/nfs-subdir-external-provisioner \
--set image.tag=v4.0.2 \
--set nfs.server=127.0.0.1 \
--set nfs.path=/data查看
1
kubectl get pod -l app=nfs-subdir-external-provisioner
检查 storageclass
1
kubectl get sc
存在 nfs-client 则👌
配置 nfs-client 为默认存储类
1 | kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' |
取消 nfs-client 为默认存储类
1 kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
指定 NFS vers 版本
遇到一个非常难解的问题,在 centos7.9 系统版本中容器挂载使用 NFS 存储当作持久化卷,数据库这一种类型的容器无法启动,修改 vers 版本为3.0解决问题
解决方案
第一种修改 values.yaml 配置文件
1
vi nfs-subdir-external-provisioner/values.yaml
内容如下
1
2
3
4
5nfs:
server:
path: /data
mountOptions:
- nfsvers=3.0第二种添加 install 参数
1 | --set nfs.mountOptions[0]=nfsvers=3.0 |
老版本部署(已废弃)
拉取代码
1
2helm repo add stable https://charts.helm.sh/stable
helm repo update部署
1
helm install nfs-storageclass stable/nfs-client-provisioner --set nfs.server=127.0.0.1 --set nfs.path=/data
修改 apiserver 参数
1
vi /etc/kubernetes/manifests/kube-apiserver.yaml
添加如下参数
1
- --feature-gates=RemoveSelfLink=false
卸载
1 | helm uninstall nfs-subdir-external-provisioner |
I'm so cute. Please give me money.
- 本文链接: https://blog.offends.cn/Kubernetes/Helm/Helm对接外部NFS存储.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。