20、Kubernetes - 实战:数据存储 NFS
一、环境安装
参考
二、NFS介绍
HostPath可以解决数据持久化的问题,但是一旦Node节点故障了,Pod如果转移到了别的节点,又会出现问题了,此时需要准备单独的网络存储系统,比较常用的用NFS、CIFS。
NFS是一个网络文件存储系统,可以搭建一台NFS服务器,然后将Pod中的存储直接连接到NFS系统上。
特点:
无论Pod在节点上怎么转移,只要Node跟NFS的对接没问题,数据就可以成功访问。
三、NFS使用准备
1安装NFS
yum install nfs-utils -y

2创建共享目录
mkdir -p /root/data/nfs
3将共享目录以读写权限暴露给特定网段中的所有主机
vim /etc/exports
#添加内容
/root/data/nfs 172.30.1.0/24(rw,no_root_squash)
4启动NFS服务
systemctl start nfs

5其他Node节点(Linux服务器)只需要安装nfs即可,无需启动服务。
yum install nfs-utils -y
四、NFS使用实例
示例 yml
vimvolume-nfs.yml
apiVersion: v1
kind: Pod
metadata:
name: volume-nfs
namespace: dev
spec:
containers:
- name: nginx
image: nginx:1.17.1
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: 172.30.1.100 NFS 服务器地址
path: /root/data/nfs 共享文件路径
nfs的server说明:
在/etc/exports配置的是网络地址(最后一个Bit是0),而server配置的是服务器的IP地址。
1 创建NFS
kubectl create -f volume-nfs.yml

2 查看 Pod
kubectl get pods -n dev -o wide

3 查看共享目录
ll /root/data/nfs/
