K8S笔记-持久化存储(使用NFS网络存储)
作者:myluzh 分类: Kubernetes 长度:2176 阅读:532
0x01 安装nfs服务端
1、找一台服务器安装nfs服务端
# centos nfs服务端跟客户端 一样都是nfs-utils
[root@nfs-server /]# yum install -y nfs-utils
# 如果是Ubuntu
sudo apt-get install -y nfs-kernel-server # nfs服务端
2、设置挂载路径
# 创建挂载路径
[root@nfs-server /]# mkdir -p /data/nfs
# 设置nfs挂载路径
[root@nfs-server /]# vi /etc/exports
# 将/data/nfs文件夹共享给*(*为所有IP),也可以限制单独ip 写法 /data/nfs 172.16.10.20(rw,no_root_squash)
/data/nfs *(rw,no_root_squash)
3、启动nfs服务
[root@nfs-server /]# systemctl start nfs
[root@nfs-server /]# ps -ef | grep nfs
0x02 k8s节点安装nfs客户端
1、在所有k8s节点上安装nfs-utils,这样k8s才能挂载nfs
[root@k8s-node01 /]# yum install -y nfs-utils
[root@k8s-node02 /]# yum install -y nfs-utils
# 如果是Ubuntu
sudo apt-get install -y nfs-common # nfs客户端
0x03 k8s使用nfs例子
1、创建与应用nginx-nfs.yaml
[root@k8s-master01 k8s]# vi nginx-nfs.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-dep1
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: wwwroot
mountPath: /usr/share/nginx/html
volumes:
- name: wwwroot
nfs:
server: 172.16.10.15
# 要确nfs服务端这个目录存在
path: /volume1/DataStore/k8s_nfs/nginx/
[root@k8s-master01 k8s]# kubectl apply -f nginx-nfs.yaml
2、进容器挂载目录,创建一个html文件
[root@k8s-master01 k8s]# kubectl exec -it nginx-dep1-667954bfc6-z6hs8 -- bash
root@nginx-dep1-667954bfc6-z6hs8:/# cd /usr/share/nginx/html/
root@nginx-dep1-667954bfc6-z6hs8:/usr/share/nginx/html# echo "helloNginx" > index.html
root@nginx-dep1-667954bfc6-z6hs8:/usr/share/nginx/html# ls
index.html
4、在nfs-server中查看文件是否存在