2024-08-16
k8s
00
请注意,本文编写于 210 天前,最后修改于 140 天前,其中某些信息可能已经过时。

目录

一、NFS服务器搭建
1.准备一台Linux服务器,
2、搭建NFS服务
二. 在k8s集群中使用nfs
apiVersion 和 kind
metadata
spec
volumes
创建Pod
三.测试数据持久化
1、创建首页文件
2. 添加权限
3.访问测试

一、NFS服务器搭建

1.准备一台Linux服务器,

虚拟机或物理机都可以,操作系统Ubuntu或centos,这里选择Centos7.9

2、搭建NFS服务

# 安装 nfs-utils 软件包。 yum install nfs-utils -y # 创建共享目录 mkdir /data/nfs-k8s -p # 配置nfs权限 vim /etc/exports /data/nfs-k8s *(rw,no_root_squash) # 关闭防火墙并禁用SELinux systemctl stop firewalld && setenforce 0 # 启动nfs服务 # systemctl start nfs # 为数据目录添加读写权限 chmod 666 /data/ -R #使nfs配置生效 exportfs -arv 至此,nfs服务器已搭建完成

二. 在k8s集群中使用nfs

1、安装nfs驱动

# 在集群所有节点中执行 yum install nfs-utils -y systemctl enable nfs --now

2、编写yaml文件 [root@master ~]# vim nfs.yaml

apiVersion: v1 kind: Pod metadata: name: test-nfs-volume spec: containers: - name: test-nfs image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 protocol: TCP volumeMounts: - name: nfs-volumes mountPath: /usr/share/nginx/html volumes: - name: nfs-volumes nfs: path: /data/nfs-k8s server: 192.168.40.132

这段配置文件的解释如下:

apiVersion 和 kind

apiVersion: v1 kind: Pod

apiVersion: v1 表示使用的是 Kubernetes API 的第一个版本。 kind: Pod 表示这个资源对象是一个 Pod。

metadata

metadata: name: test-nfs-volume

metadata 包含了关于这个 Pod 的元数据。 name: test-nfs-volume 给这个 Pod 设置了一个唯一的名称。

spec

spec 字段定义了 Pod 的期望状态。

containers containers: - name: test-nfs image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 protocol: TCP volumeMounts: - name: nfs-volumes mountPath: /usr/share/nginx/html

containers 字段定义了 Pod 中运行的容器列表。 name: test-nfs 是容器的名称。 image: nginx 指定了容器使用的镜像。 imagePullPolicy: IfNotPresent 表示如果本地没有镜像,则尝试从镜像仓库拉取。 ports 字段定义了容器监听的端口。 containerPort: 80 指定容器监听的端口为 80。 protocol: TCP 表示使用 TCP 协议。 volumeMounts 字段定义了容器内部挂载卷的路径。 name: nfs-volumes 引用下面定义的卷的名称。 mountPath: /usr/share/nginx/html 指定了卷在容器内的挂载路径。

volumes

volumes: - name: nfs-volumes nfs: path: /data/nfs-k8s server: 192.168.40.132

volumes 字段定义了 Pod 中可以使用的卷列表。 name: nfs-volumes 给卷设置了一个名称。 nfs 字段定义了 NFS 卷的属性。 path: /data/nfs-k8s 指定了 NFS 服务器上共享的路径。 server: 192.168.40.132 指定了 NFS 服务器的 IP 地址。

创建Pod

在master节点上执行

kubectl apply -f nfs.yaml

三.测试数据持久化

1、创建首页文件

在nfs服务器

cd /data/nfs-k8s echo "hello nfs" > index.html

2. 添加权限

chmod 755 index.html

3.访问测试

在k8s master节点上执行

查看pod IP

kubectl get pod -owide

访问测试

curl 10.244.167.134

image.png 此处可以看到我们刚刚创建的文件的内容,证明k8s调用nfs作为持久化存储成功

至此,NFS服务器的搭建与k8s中的使用测试完成

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay