k8s中安装nfs-client作为默认StorageClass

Kubernetes集群管理员通过提供不同的存储类,可以满足用户不同的服务质量级别、备份策略和任意策略要求的存储需求。动态存储卷供应使用StorageClass进行实现,其允许存储卷按需被创建。如果没有动态存储供应,Kubernetes集群的管理员将不得不通过手工的方式类创建新的存储卷。通过动态存储卷,Kubernetes将能够按照用户的需要,自动创建其需要的存储。

比如,我们可能会在kubernetes集群中安装一些带持久化数据功能的服务,例如redis、mysql、mq、es等。因此,当有这类需求时,我们必须给整个集群给定一个特定的存储方案。本章我们是NFS的网络存储方案。

 

k8s中安装nfs-client作为默认StorageClass_第1张图片(存储类在k8s集群中的作用:按用户需求自动创建pv,并绑定pvc)

 

1、搭建NFS 服务端(192.168.11.24)

我们可以在k8s集群外的一台主机上搭建一个nfs server。

yum install rpcbind  nfs-utils -y

mkdir /nfs_data

chmod +w /nfs_data

chmod +x /nfs_data

vi /etc/exports,内容如下:
/nfs_data  192.168.11.0/24(rw,no_root_squash)

启动nfs服务

service nfs start #启动nfs服务
service rpcbind start   #启动rpc服务

showmount  -e 192.168.11.24 #查看共享盘 ok

 

2、安装nfs-client(存储类)
 
git clone https://github.com/helm/charts.git
cd charts/
#实例化一个Release ,指定Release名称为mynfs-client,并设置为默认的存储类
helm install stable/nfs-client-provisioner  \
--set nfs.server=192.168.11.24 --set nfs.path=/nfs_data \
--set storageClass.defaultClass=true \
--name mynfs-client 

 

3、使用helm运行一个redis pod测试

helm install  --name myredis  --namespace default --set redisPassword=123456asd . (指定chart包所在目录,如当前目录就是点(.) ,注意最后有个点)

kubectl get pod ,发现出来了一个"myredis"开头的pod,说明redis的chart运行成功了。

myredis-redis-589d594ff9-f672b                         1/1     Running   0          19m

 

kubectl exec -it myredis-redis-589d594ff9-f672b        sh #进入pod容器内部,set一些数据进去

redis-cli 
auth 123456asd
set a hello
set b world 

kubectl get pod,发现出来一个以"mynfs"开头的pod,说明nfs-client安装成功了。

mynfs-client-nfs-client-provisioner-76ddc68dcf-7m2fl   1/1     Running   0          27m

 

在nfsserver 主机上,
cd  /nfs_data 
ls ,发现nfs-client存储类确实帮我们创建了pv ,并与pod中的pvc相绑定了。 

 

你可能感兴趣的:(k8s)