k8s 使用nfs存储

282 阅读1分钟
nfs服务器系统ubuntu22.04  ip 172.16.195.139
k8s控制层面 node1 系统ubuntu20.04  ip 172.16.195.136
k8s数据节点 node2 系统ubuntu20.04  ip 172.16.195.137

安装nfs服务端

# 安装nfs服务端
root@node4:~# apt install nfs-kernel-server
# 创建目录
root@node4:~# mkdir -p /data/k8s
# 任何客户端均可访问
root@node4:~# chmod 777 /data/k8s/
# 配置/etc/exports文件, 使任何ip均可访问(加入以下语句)
root@node4:~# vim  /etc/exports
root@node4:~# cat /etc/exports 
/data/k8s/ *(rw,sync,no_subtree_check)
# 检查下nfs的配置
root@node4:~# exportfs -ra   # 重新加载配置
root@node4:~# showmount -e   # 查看nfs导出列表

# 重启nfs使生效
root@node4:~# systemctl restart nfs-kernel-server

客户端使用

node2节点,系统ubuntu20.04,ip 172.16.195.137
# 安装客户端
root@node2:~# apt install nfs-common
# 创建挂载目录
root@node2:~# mkdir -pv /k8s
# 将nfs挂载到k8s目录
root@node2:~# mount -t nfs -o nolock -o tcp 172.16.195.139:/data/k8s /k8s

在k8s上创建pv

root@node1:~/mongo_yaml# cat mongonfs.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-imagenet
spec:
  capacity:
    storage: 150Gi
  volumeMode: Filesystem
  accessModes:
  - ReadOnlyMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs
  mountOptions:
  - vers=3
  - nolock
  - proto=tcp
  - rsize=1048576
  - wsize=1048576
  - hard
  - timeo=600
  - retrans=2
  - noresvport
  - nfsvers=4.1
  nfs:
    path: "/data/k8s"
    server: 172.16.195.139

查看创建的pv状态
root@node1:~/mongo_yaml# kubectl get pv
NAME           CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
nfs-imagenet   150Gi      ROX            Retain           Available           nfs                     79s

创建pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mongo-pvc
  namespace: default
  labels:
    app: mongo-pvc
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1000Mi
  selector:
    matchLabels:
      pv: nfs-imagenet
查看pvc状态为pending # TODO:待修复
root@node1:~/mongo_yaml# kubectl get pvc
NAME        STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mongo-pvc   Pending                                                     7m23s