Myluzh Blog

K8S笔记-持久化存储(使用NFS网络存储)

发布时间: 2023-10-20 文章作者: myluzh 分类名称: Kubernetes 朗读文章


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中查看文件是否存在

点击查看原图

标签: 持久化 k8s 存储 nfs

发表评论