一、安装nfs

1、关闭防火墙和selinux

2、安装nfs服务端:
yum install nfs-utils rpcbind

3、创建用于nfs服务的存储文件夹:
mkdir -p /data/nfs/k8s_sit/storage
mkdir -p /data/nfs/k8s_uat/storage

4、编辑/etc/exports文件:
vim /etc/exports
/data/nfs/k8s_sit/storage 172.21.74.0/24(rw,sync)
/data/nfs/k8s_uat/storage 172.21.74.0/24(rw,sync)

5、开启nfs服务:
systemctl start nfs-server.service

6、检验是否开启成功:
showmount -e

7、添加权限
测试环境使用
chown -R 777 /data/nfs

二、创建StorageClass

1、node节点服务器安装nfs-utils,不然挂载不了
yum install nfs-utils -y
2、通过helm创建StorageClass
git clone https://github.com/helm/charts.git
cd charts
#在 Helm 2 中,如果没有指定 release 的名称,则会自动随机生成一个名称。但是在 Helm 3 中,则必须主动指定名称,或者增加 --generate-name 参数让它自动生成一个随机的名称。
helm install stable/nfs-client-provisioner --set nfs.server=172.21.74.205 --set nfs.path=/data/nfs/k8s_uat/storage --generate-name
kubectl get storageclass
kubectl get pods|grep nfs-client-provisioner
在这里插入图片描述

3、创建StorageClass后还需要创建pv,其他资源通过StorageClass会自动创建pvc

三、创建pv

1、pv_nfs.yaml文件

#创建pv
apiVersion: v1
kind: PersistentVolume
metadata:
  name: data-kafka-0
  namespace: mbo
spec:  
  capacity:
    storage: 8Gi
  #指定访问模式
  accessModes:
    #pv能以readwrite模式mount到单个节点
    - ReadWriteOnce
  #指定pv的回收策略,即pvc资源释放后的事件.recycle(不建议,使用动态供给代替)删除pvc的所有文件
  persistentVolumeReclaimPolicy: Recycle
  #指定pv的class为nfs,相当于为pv分类,pvc将指定class申请pv
  storageClassName: nfs-client
  #指定pv为nfs服务器上对应的目录
  nfs:
    path: /data/nfs/k8s_uat/storage/kafka
    server: 172.21.74.205
    
---
    
#创建pv
apiVersion: v1
kind: PersistentVolume
metadata:
  name: data-kafka-zookeeper-0
  namespace: mbo
spec:  
  capacity:
    storage: 8Gi
  #指定访问模式
  accessModes:
    #pv能以readwrite模式mount到单个节点
    - ReadWriteOnce
  #指定pv的回收策略,即pvc资源释放后的事件.recycle(不建议,使用动态供给代替)删除pvc的所有文件
  persistentVolumeReclaimPolicy: Recycle
  #指定pv的class为nfs,相当于为pv分类,pvc将指定class申请pv
  storageClassName: nfs-client
  #指定pv为nfs服务器上对应的目录
  nfs:
    path: /data/nfs/k8s_uat/storage/kafka-zookeeper
    server: 172.21.74.205






2、创建pv
kubectl apply -f pv_nfs.yaml

3、创建StorageClass和pv后,在使用时只需要指定StorageClass就能使用了,pvc会自动创建。
在这里插入图片描述

Logo

更多推荐