
Helm搭建NFS的StorageClass
Windows 安装 chocolatey
https://chocolatey.org/install
Windows 安装 Helm
choco install kubernetes-helm
linux 安装 Helm
wget https://get.helm.sh/helm-v3.0.0-beta.2-linux-amd64.tar.gz
tar -zxvf helm-v3.0.0-beta.2-linux-amd64.tar.gz
cd linux-amd64/
cp helm /usr/local/bin
helm init
安装 nfs-client-provisioner (第一种方式)
添加能下载nfs-client-provisioner的仓库
helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
helm repo update
修改values.yaml
nfs:
server: 150.72.2.13
path: /nfs_data
name: nfs-client
安装(注意中途自行解压)
cd nfs-client-provisioner
helm install --name nfs -namespace nfs -f values.yaml .
安装完成
kubectl get sc
通过Azure进行安装 nfs-client-provisioner (第二种方式)
添加能下载 azure/nfs-client-provisioner 的仓库
helm repo add azure http://mirror.azure.cn/kubernetes/charts/
helm repo update
安装
helm install nfs-client azure/nfs-client-provisioner --set nfs.server=x.x.x.x --set nfs.path=/nfsdata
发现问题
最后在nfs服务器上发布上去就没毛病了解决办法
sudo service nfs-kernel-server restart
通过Kubernetes-Dashboard 查看 Storage Classes 结果
简单的测试一下
创建 demo-nfs-pvc.yaml 文件
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: demo-nfs-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 400m
storageClassName: nfs-client
发布 demo-nfs-pvc.yaml
kubectl apply -f demo-nfs-pvc.yaml
查看结果
如果遇到了sing Kubernetes v1.20.0, getting "unexpected error getting claim reference: selfLink was empty, can't make reference"
这种问题,需要修改api-server.yaml
文件。
vim /etc/kubernetes/manifests/kube-apiserver.yaml
# 添加这一行
- --feature-gates=RemoveSelfLink=false
如果遇到bad option; for several filesystems (e.g. nfs, cifs) you might need a 。。。
请给每个节点安装nfs-util
# Centos
sudo yum install nfs-utils
# Ubuntu
apt install nfs-common
在K8s 1.24后又变卦了
修改--feature-gates=RemoveSelfLink=false
后,无法启动api-server
。现在使用新的方式去做
?#下载
wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/releases/download/nfs-subdir-external-provisioner-4.0.16/nfs-subdir-external-provisioner-4.0.16.tgz
#解压
tar -xvf nfs-subdir-external-provisioner-4.0.16.tgz
cd nfs-subdir-external-provisioner
vim values.yaml
然后使用 helm安装命令安装即可
helm install nfs-subdir-external-provisioner . -n nfs
会创建一个nfs-client的storageclass,如果需要可以使用下面命令改成默认存储
kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
有镜像问题可修改为:registry.cn-hangzhou.aliyuncs.com/k8s-image-mirrors/nfs-subdir-external-provisioner
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

