Kubernetes - 实战:PV - PVC - NFS

在 Kubernetes 中,PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 是用于提供持久化存储的资源对象。NFS(Network File System)是一种常用的网络文件系统,可以作为 Kubernetes 中 PV 的后端存储方案。以下是使用 NFS 实现 PV 和 PVC 的实战步骤:

1. 部署 NFS 服务器

首先在集群外部或内部的一个节点上部署 NFS 服务器,并创建一个可供其他节点挂载的共享目录。在 NFS 服务器上配置 /etc/exports 文件,例如:

/export/data  *(rw,sync,no_subtree_check)

这里的 /export/data 是要共享的目录,*(rw,sync,no_subtree_check) 表示允许所有客户端以读写模式挂载此目录。

2. 启动并测试 NFS 服务器

  • 在 NFS 服务器上执行以下命令启动 NFS 服务:
sudo systemctl start nfs-kernel-server
sudo systemctl enable nfs-kernel-server
  • 在集群内的其他节点上测试能否成功挂载 NFS 共享目录。

3. 创建 PersistentVolume

创建一个表示 NFS 共享目录的 PersistentVolume YAML 文件,例如 nfs-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 1Gi # 可根据需要调整容量大小
  accessModes:
    - ReadWriteMany # 根据 NFS 服务器的配置选择合适的访问模式
  nfs:
    server: nfs-server-ip # 替换为 NFS 服务器的 IP 地址
    path: "/export/data"
  persistentVolumeReclaimPolicy: Retain # 或 Recycle、Delete,根据实际需求选择回收策略

然后应用这个配置:

kubectl apply -f nfs-pv.yaml

4. 创建 PersistentVolumeClaim

接着创建一个 PersistentVolumeClaim,让 Pod 请求存储资源,例如 nfs-pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 500Mi # PVC 请求的存储容量
  storageClassName: "" # 如果没有配置存储类,则留空

应用 PVC 配置:

kubectl apply -f nfs-pvc.yaml

5. 在 Pod 中使用 PersistentVolumeClaim

最后,在需要持久化存储的 Pod 的 YAML 文件中,挂载 PVC,例如在 my-pod.yaml 中:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    volumeMounts:
    - mountPath: /mnt/data
      name: nfs-pvc-volume
  volumes:
  - name: nfs-pvc-volume
    persistentVolumeClaim:
      claimName: nfs-pvc

应用 Pod 配置:

kubectl apply -f my-pod.yaml

此时,Pod 中的 /mnt/data 目录将会挂载到 NFS 服务器的 /export/data 目录,提供持久化存储功能。每当 Pod 重启时,数据都会保持不变,因为它们是存储在 NFS 服务器上的。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值