Kubernetes 数据存储 NFS
Kubernetes About 1,597 words概念
HostPath
可以解决数据持久化的问题,但是一旦Node
节点故障了,Pod
如果转移到了别的节点,又会出现问题了,此时需要准备单独的网络存储系统,比较常用的用NFS
、CIFS
。
NFS
是一个网络文件存储系统,可以搭建一台NFS
服务器,然后将Pod
中的存储直接连接到NFS
系统上。
特点
无论Pod
在节点上怎么转移,只要Node
跟NFS
的对接没问题,数据就可以成功访问。
安装 NFS
第一步
CentOS
使用yum
安装
yum install nfs-utils -y
第二步
创建共享目录
mkdir -p /root/data/nfs
第三步
将共享目录以读写权限暴露给特定网段中的所有主机
vim /etc/exports
添加内容
/root/data/nfs 192.168.0.0/24(rw,no_root_squash)
第四步
启动NFS
服务
systemctl start nfs
第五步
其他Node
节点(Linux
服务器)只需要安装nfs
即可,无需启动服务。
yum install nfs-utils -y
示例 yml
volume-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: 192.168.0.100 # NFS 服务器地址
path: /root/data/nfs # 共享文件路径
nfs
的server
说明:
在/etc/exports
配置的是网络地址(最后一个Bit
是0
),而server
配置的是服务器的IP
地址。
查看 Pod
kubectl get pods -n dev -o wide
输出:
[root@localhost ~]# kubectl get pods -n dev -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
volume-nfs 2/2 Running 0 27s 10.42.0.46 localhost.localdomain <none> <none>
查看共享目录
ll /root/data/nfs/
输出:
[root@localhost nfs]# ll /root/data/nfs/
total 0
-rw-r--r--. 1 root root 0 Feb 4 09:43 access.log
-rw-r--r--. 1 root root 0 Feb 4 09:43 error.log
Views: 1,437 · Posted: 2022-03-22
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...