步步深入 k8s 使用 pv pvc sc 在 nfs 基础上共享存储

本文详细介绍了如何在Kubernetes集群环境中使用NFS进行持久化卷(PV)的挂载,包括手动创建PVC和通过StorageClass动态申请PV的方式,并提供了示例配置和验证步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
博客原文

前言

持久化卷(Persistent Volume, PV)允许用户将外部存储映射到集群,而持久化卷申请(Persistent Volume Claim, PVC)则类似于许可证,使有授权的应用(Pod)可以使用PV。

  • 持久化卷(Persistent Volume,PV)。

  • 持久化卷申请(Persistent Volume Claim,PVC)。

  • 存储类(Storage Class,SC)。

概括地说,PV代表的是Kubernetes中的存储;PVC就像许可证,赋予Pod访问PV的权限;sc则使分配过程是动态的。

集群环境

操作系统: Ubuntu 20.04

IP Hostname 配置
192.168.254.130 master01 2C 4G 30G
192.168.254.131 node01 2C 4G 30G
192.168.254.132 node02 2C 4G 30G
192.168.254.133 nfs-tools 2C 4G 30G

nfs 环境搭建

安装 nfs

sudo apt-get install -y nfs-kernel-server  # 安装 NFS服务器端
sudo apt-get install -y nfs-common         # 安装 NFS客户端

nfs服务器端,只在集群中某一台安装即可

创建nfs共享目录

mkdir -p /nfs/share
chmod -R 777 /nfs/share

修改配置 vim /etc/exports

# 当登录NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UID与GID都会变成nobody身份,添加no_root_squash参数,确保root账户能用
/nfs/share *(rw,sync,no_root_squash)     # * 表示允许任何网段 IP 的系统访问该 NFS 目录

配置生效

exportfs -r
exportfs  # 查看生效

启动服务

sudo /etc/init.d/nfs-kernel-server restart
mount -t nfs 192.168.254.130:/nfs/share /nfsremote -o nolock
  1. 如果提示 mount.nfs: access denied by server while mounting

    在服务器端 ``/etc/exports中加入insecure`

    如: /nfs/share *(insecure,rw,sync,no_root_squash)

实例数据

echo "hello world" > /nfs/share/index.html

pod 挂载 nfs

架构图

image-20240128164131754

pod_nfs.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: nfs-testpod
  labels:
    app: nfs-testpod
spec:
  containers:
    - name: nfs-testpod
      image: nginx
      imagePullPolicy: IfNotPresent
      securityContext:
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M·K·T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值