网站首页 > 技术教程 正文
今天继续给大家介绍Linux运维相关知识,本文主要内容是Kubernetes NFS对PVC和PV使用实战。
一、实战说明
我们以NFS为存储方式,创建5个PV,然后再创建一个Pod,给该Pod使用PVC,使得PVC动态的选择PV进行挂载。本次实战架构如下:
注意,在上图中,我们并没有规定Pod的PVC究竟选择哪个PV,但是根据PVC的选择原则,其余的PV均不符合规定,因此该PVC必然会选择PV3。
二、NFS存储配置
要利用NFS实现Kubernetes集群的PV和PVC存储,那么我们首先要配置NFS。NFS的相关配置请参考文章:NFS配置实战。在这里就不过多赘述了。
最终,我们创建了v1——v5一共5个目录,作为这5个PV的挂载目录,如下所示:
同时,/etc/exports文件配置如下所示:
NFS服务开启情况如下:
我们在其他设备上尝试挂载该NFS,发现可以成功挂载,如下所示:
二、PV定义与创建
在完成NFS服务的相关配置后,接下来我们就可以开始进行PV的定义和创建了。
首先,我们创建PV的资源清单配置文件pv.yaml,一个PV的资源配置清单设置如下:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv1
labels:
name: pv1
spec:
nfs:
path: /data/k8s/v1
server: 192.168.136.13
accessModes: ["ReadWriteMany","ReadWriteOnce"]
capacity:
storage: 1Gi
在上述配置中,spec字段中的nfs的path和server两个参数指定了NFS服务器和挂载目录,storage参数指定了该PV的存储空间大小,accessModes参数指定了该PV的权限。
在accessModes参数中,一共可以设置的权限有以下三种:
RWO(ReadWriteOnce): 单节点读写
RWX(ReadwriteMany): 多节点多读写
ROX(ReadOnlyMany): 单节点只读
我们可以按照本文第一章的PV相关要求,改动上述的名称、标签、权限和存储空间大小等设定,完成其他PV的资源配置清单。不同的PV资源配置清单之间使用三个短杠间隔,配置完成后的pv.yaml文件(部分)如下所示:
在完成资源配置清单文件的配置后,我们执行命令:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv1
labels:
name: pv1
spec:
nfs:
path: /data/k8s/v1
server: 192.168.136.13
accessModes: ["ReadWriteMany","ReadWriteOnce"]
capacity:
storage: 1Gi
来创建这5个PV,该命令执行结果如下所示:
从上图中,我们可以看到,5个PV都已经创建完成。
我们可以执行命令:
kubectl get pv
执行结果如下:
从上图中,我们可以简单的查看这5个PV的基本情况。
三、PVC和Pod的定义与创建
在完成PV的创建后,我们就可以创建PVC和Pod了。我们先来创建pvc-pod.yaml的PVC和Pod的资源清单配置文件。并且向文件中写入如下内容:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-exp
namespace: default
spec:
accessModes: ["ReadWriteMany"]
resources:
requests:
storage: 2Gi
---
apiVersion: v1
kind: Pod
metadata:
name: pod-with-nfs-pv
namespace: default
spec:
containers:
- name: pv-exp
image: ikubernetes/myapp:v1
volumeMounts:
- name: nfs-pv
mountPath: /usr/share/nginx/html
volumes:
- name: nfs-pv
persistentVolumeClaim:
claimName: pvc-exp
完成配置后的资源配置清单文件如下所示:
在完成上述资源配置清单文件的创建后,我们执行命令:
kubectl apply -f pvc-pod.yaml
来创建PVC和Pod资源,该命令执行结果如下:
从上襦中可以看出,我们的PVC和Pod资源已经成功创建。
接下来,我们执行命令:
kubectl get pods
kubectl get pv
来分别查看Pods和PV资源情况,这两条命令执行结果如下:
注意,在上图中,我们的Pod已经成功的对pv3完成了绑定。
四、效果查看
最后,让我们来检验一下上述配置的效果。
首先,我们给PV3的NFS服务器内,添加一个index.html文件,然后向该文件内写入指定内容,如下所示:
之后,我们先查看该Pod的IP地址,然后使用curl命令访问该IP地址,结果如下:
从上图中可以看出,我们对该Pod资源的访问结果正是我们写入NFS服务器中的内容。
之后,我们删除该Pod资源,然后再来查看我们的PV挂载情况,如下所示:
从上图中可以看出,我们的Pod被删除后,我们的PVC资源也会被随之释放。
————————————————
版权声明:本文为CSDN博主「永远是少年啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://blog.csdn.net/weixin_40228200/article/details/124428740
猜你喜欢
- 2025-05-11 「正点原子FPGA连载」第七章使用XSDK开发Linux应用
- 2025-05-11 aix服务器配置nfs服务(aix服务器命令)
- 2025-05-11 家庭NAS部署指南 群晖篇二——那些“用了就回不去”的群晖套件
- 2025-05-11 nfs实战之:磁盘迁移(nfs传输文件)
- 2025-05-11 学习笔记-网络共享存储 - /etc/fstab 文件详解
- 2025-05-11 nfs-server安装和端挂盘(nfs安装步骤)
- 2025-05-11 NAS同步百度云全攻略!一篇打尽win虚拟机、黑群、Docker操作演示
- 2025-05-11 关于nfs部署详细说明(centos 7系列)
- 2025-05-11 小白入门必知必会-NFS安装(怎么安装nfs)
- 2025-05-11 教你玩转Linux—磁盘检验、挂载与卸除
你 发表评论:
欢迎- 最近发表
-
- linux日志文件的管理、备份及日志服务器的搭建
- Linux下挂载windows的共享目录操作方法
- Linux系统中的备份文件命令(linux系统中的备份文件命令有哪些)
- 麒麟KYLINOS|通过不同方法设置用户访问文件及目录权限
- 「Linux笔记」系统目录结构(linux目录的结构及含义)
- linux中修改归属权chown命令和chgrp命令
- 工作日报 2021.10.27 Android-SEAndroid权限问题指南
- Windows和Linux环境下,修改Ollama的模型默认保存路径
- 如何强制用户在 Linux 上下次登录时更改密码?
- 如何删除Linux文件夹中除某些扩展名之外的所有文件?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)