k8s nfs 数据持久化存储

1、所有节点安装nfs工具

 yum install -y nfs-utils

可以使用不是节点的作为nfs服务器
2、编写挂载路径

vim /etc/exports

查看有没有生效

exportfs

在这里插入图片描述
没有生效可以执行

exportfs -r
/data/nfs *(rw,no_root_squash)

/data/nfs表示路径 (一定要有这个路径)
*表示所有内容
rw表示读写权限
3、在nfs服务器上启动nfs服务器(有 /etc/exports配置的那一台)

systemctl start nfs

在这里插入图片描述

4、在k8s集群部署应用使用nfs持久网络存储
在master节点上
创建pv文件夹

mkdir pv

进入pv文件夹

cd pv

创建nfs-nginx.yaml
vim nfs-nginx.yaml

apiVersion: apps/v1 
kind: Deployment
metadata:
  name: nginx-dep1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx
        name: nginx
        volumeMounts:
        - name: wwwroot
          mountPath: /user/share/nginx/html #挂载容器的路径
        ports:
        - containerPort: 80
      volumes:
        - name: wwwroot
          nfs:
            server: 192.168.102.49  #nfs服务器IP地址
            path: /data/nfs #nfs服务器挂载路径

创建

kubectl apply -f nfs-nginx.yaml 

5、试验
查看启动的pods

kubectl get pods 

在这里插入图片描述
进入查看容器

kubectl exec -it nginx-dep1-ccf869c98-94s5f bash

进入挂载的路径 发现里面是没东西 因为挂载的地方也没有东西

cd /usr/share/nginx/html/

到nfs服务器 进入挂载路径

cd /nfs/data

创建index.html

vim index.html
<h1> Hello Nfs </h1>   

保存

在容器中就可以看到创建的文件

如果容器一直报错没创建可以使用查看报错信息 可能是nfs路径没有成功暴露出来

kubectl describe pod 名称

nfs为什么要持久化
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes (K8s) 支持使用 NFS(Network File System)作为持久存储解决方案。NFS 是一种分布式文件系统协议,允许将远程文件系统挂载到本地服务器上。 要使用 NFS 进行持久存储,你需要先设置一个 NFS 服务器,并在 Kubernetes 集群中配置一个 NFS 持久卷。以下是一些步骤: 1. 配置 NFS 服务器:你需要设置一个 NFS 服务器并将其配置为共享文件系统。确保你已经安装并配置好了 NFS 服务器软件。 2. 创建 NFS 持久卷:在 Kubernetes 中,你可以使用 PersistentVolume(PV)和 PersistentVolumeClaim(PVC)对象来定义持久卷和持久卷声明。创建一个 PV 来表示 NFS 服务器上的共享目录,并为该 PV 创建一个 PVC。 3. 部署应用程序:使用创建的 PVC,在你的应用程序中声明一个持久卷。你可以通过将 PVC 挂载到应用程序的 Pod 中来实现持久存储。 以下是一个示例的 YAML 文件,演示了如何在 Kubernetes 中配置一个 NFS 持久卷: ``` apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv spec: capacity: storage: 5Gi accessModes: - ReadWriteMany nfs: server: <NFS_SERVER_IP> path: /path/to/shared/directory --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi storageClassName: "" selector: matchLabels: name: nfs-pv ``` 替换 `<NFS_SERVER_IP>` 和 `/path/to/shared/directory` 为你 NFS 服务器的 IP 地址和共享目录的路径。然后,使用 kubectl apply 命令来部署这个 YAML 文件。 一旦 PVC 和 PV 创建成功,你可以在你的应用程序中使用该 PVC 来挂载 NFS 持久卷,并在 Pod 中进行持久存储。 这就是使用 NFS 进行持久存储的基本步骤。希望对你有所帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值