Kubernetes-数据储存-nfs实例

NFS
HostPath可以解决数据持久化的问题,但是一旦Node节点故障了,Pod如果转移到了别的节点,又会出现问题了,此时需要准备单独的网络存储系统,比较常用的用NFS、CIFS。
NFS是一个网络文件存储系统,可以搭建一台NFS服务器,然后将Pod中的存储直接连接到NFS系统上,这样的话,无论Pod在节点上怎么转移,只要Node跟NFS的对接没问题,数据就可以成功访问。

在这里插入图片描述

首先在准备nfs服务器,以master节点做nfs服务器

#在master上安装nfs服务
yum -y install nfs-utils
#准备一个共享目录
mkdir /root/data/nfs -pv
#将共享目录以读写权限暴露给10.0.0.1/24网段中的所有主机
vi /etcexports
/root/data/nfs  10.0.0.0/24(rw,no_root_squash)
#重启nfs服务
systemctl start nfs

在每个node节点安装上nfs,目的是为了node节点可以驱动nfs设备

#在node上安装nfs服务,注意不要启动
yum -y install nfs-utils

创建pod

apiVersion: v1
kind: Pod
metadata:
  name: v
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1-alpine
    ports:
    - containerPort: 80
    volumeMounts:
    - name: logs-volume
      mountPath: /var/log/nginx
  - name: busybox
    image: busybox:1.30
    command: ["/bin/sh","-c","tail -f /logs/access.log"]
    volumeMounts:
    - name: logs-volume
      mountPath: /logs
  volumes:
  - name: logs-volume
    nfs:
      server: 10.0.0.17  #nfs服务器地址
      path: /data/nfs    #共享服文件的路径
kubectl get pod v -n dev -o wide
v      2/2     Running   0          81s   10.244.1.5   node1   <none>           <none>
#在node1访问
curl 10.244.1.5:80
#查看
tail -f /data/nfs/access.log
10.244.1.1 - - [11/Dec/2020:10:04:58 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
10.244.1.1 - - [11/Dec/2020:10:05:47 +0000] "GET / HTTP/1.1" 200 612 "-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值