![](https://img.tnblog.net/arcimg/hb/2d2192e9304944548a772f5454b8aefb.png)
>#Helm搭建NFS的StorageClass
[TOC]
Windows 安装 chocolatey
------------
![](https://img.tnblog.net/arcimg/hb/cf0944bab6a9435a926b2e6dc9fb338a.png)
https://chocolatey.org/install
Windows 安装 Helm
------------
```bash
choco install kubernetes-helm
```
linux 安装 Helm
------------
```bash
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的仓库
```bash
helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
helm repo update
```
>修改values.yaml
```bash
nfs:
server: 150.72.2.13
path: /nfs_data
```
`name: nfs-client`
>安装(注意中途自行解压)
```bash
cd nfs-client-provisioner
helm install --name nfs -namespace nfs -f values.yaml .
```
>安装完成
```bash
kubectl get sc
```
![](https://img.tnblog.net/arcimg/hb/1d53a2cb6b2d4418bb2ea64d7d0a8d06.png)
这种方式在后续发现添加Persistent Volume Claims时总是失败
通过Azure进行安装 nfs-client-provisioner (第二种方式)
------------
>添加能下载 azure/nfs-client-provisioner 的仓库
```bash
helm repo add azure http://mirror.azure.cn/kubernetes/charts/
helm repo update
```
>安装
```bash
helm install nfs-client azure/nfs-client-provisioner --set nfs.server=x.x.x.x --set nfs.path=/nfsdata
```
>发现问题
![](https://img.tnblog.net/arcimg/hb/758c8f17e2434f03b2535b6772f0c046.png)
这里也发现添加Persistent Volume Claims时总是失败
>解决办法
最后在nfs服务器上发布上去就没毛病了
>通过Kubernetes-Dashboard 查看 Storage Classes 结果
![](https://img.tnblog.net/arcimg/hb/c079b81e34a64a91be2c6156e04ea1fb.png)
简单的测试一下
------------
>创建 demo-nfs-pvc.yaml 文件
```bash
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`
>查看结果
![](https://img.tnblog.net/arcimg/hb/b7b00b42242b4c7e8b3bb9328775abf0.png)
![](https://img.tnblog.net/arcimg/hb/446975bbf1f344788568f5ed147c2a69.png)