Kubernetes 网络存储NFS
  AWkq7aIjuRwO 2023年11月02日 50 0

网络存储

网络存储卷∶

云存储——awsElasticBlockStore、gcePersistentDisk、azureDisk 和 azureFile。

网络文件系统——NFS、GlusterFS、CephFS 和 Cinder。

主流的存储有三种方式,一种叫fs文件,文件系统级别的,目录和目录,就是格式化好了文件系统,我们就可以直接在里面创建目录的方式
第二种块设备:其实就是我们的硬盘,我们的块设备就是硬盘,拿个硬盘放上去做好格式化,做好文件系统这种方式就是整块硬盘一个分区格式化的方式
第三种对象存储:支持http,或者ftp的这种协议通过url地址去访问和链接,通常这种对象存储的,都是在公有云上提供的比较多

网络块设备——iscsi、FC、RBD和 vSphereVolume。

其实就是我们的硬盘,我们的块设备就是硬盘,拿个硬盘放上去做好格式化,做好文件系统这种方式就是整块硬盘一个分区格式化的方式

网络存储平台———Quobyte、PortworxVolume、StorageOS 和 ScaleIO。

一般都是厂商给提供,就是网络存储

Kubernetes 内置了多种类型的网络存储卷插件,它们支持的存储服务包括传统的NAS或SAN设备(例如NFS、iscsi 和 FC等)、分布式存储(例如 GlusterFS、CephFS和RBD等)、云存储(例如 gcePersistentDisk、azureDisk、Cinder 和 awsElasticBlockStore等)以及构建在各类存储系统之上的抽象管理层(例如flocker、portworxVolume和vSphereVolume 等)。这类服务通常都是独立运行的存储系统,因相应的存储卷可以支持超越节点生命周期的数据持久性。

NFS

找台节点比如node3安装nfs

[root@k8s-node3 ~]# yum -y install nfs-utils rpcbind
[root@k8s-node3 ~]# mkdir /data/redis -p
 #创建个目录

配置nfs配置文件

[root@k8s-node3 ~]# vim /etc/exports
/data/redis 172.17.8.0/24(rw,no_root_squash)

启动

[root@k8s-node3 ~]# systemctl restart rpcbind && systemctl restart nfs-server
#注意先后顺序,先启动rpcbind 在启动nfs-servere

所有node节点安装showmount

for i in 1 2 3 ; do ssh k8s-node${i} yum -y install showmount; done

找台node节点检测一下是否成功共享

[root@k8s-node1 logs]# showmount -e 172.17.8.13
Export list for 172.17.8.13:
/data/redis 172.17.8.0/24

写一个

[root@k8s-master1 nfs]# cat nfs-redis.yaml
apiVersion: v1
kind: Pod
metadata:
  name: redis-pod
spec:
  volumes:
  - name: nfs #名字下面要引用
    nfs:  #使用nfs类型
      path: /data/redis #nfs共享出来的目录
      server: 192.168.1.103 #nfs服务器的ip 或者写主机名 主机名能解析出来
  containers:
  - name: redis
    image: images.guoguo.com/apps/nginx:1.22.1
    ports:
    - containerPort: 80
    volumeMounts:
    - name: nfs #引用上面的名字
      mountPath: /apps/nginx/logs #挂载到容器的目录
[root@k8s-master1 nfs]# kubectl apply -f nfs-redis.yaml
pod/redis-pod created

[root@k8s-master1 nfs]# kubectl get pods -owide
NAME        READY   STATUS    RESTARTS   AGE   IP              NODE                   NOMINATED NODE   READINESS GATES
redis-pod   1/1     Running   0          14s   192.17.65.198   k8s-node3.guoguo.com   <none>           <none>
[root@k8s-master1 nfs]# curl 192.17.65.198
NGINX:1.22.1-Ubuntu:18.04
[root@k8s-master1 nfs]# curl 192.17.65.198
NGINX:1.22.1-Ubuntu:18.04
[root@k8s-master1 nfs]# curl 192.17.65.198
NGINX:1.22.1-Ubuntu:18.04
[root@k8s-master1 nfs]# curl 192.17.65.198
NGINX:1.22.1-Ubuntu:18.04
[root@k8s-master1 nfs]# curl 192.17.65.198
NGINX:1.22.1-Ubuntu:18.04
[root@k8s-master1 nfs]# curl 192.17.65.198
NGINX:1.22.1-Ubuntu:18.04
[root@k8s-master1 nfs]# curl 192.17.65.198
NGINX:1.22.1-Ubuntu:18.04
[root@k8s-master1 nfs]# curl 192.17.65.198
NGINX:1.22.1-Ubuntu:18.04
[root@k8s-master1 nfs]# curl 192.17.65.198
NGINX:1.22.1-Ubuntu:18.04
[root@k8s-node3 ~]# tail -f /data/redis/access.log
192.26.159.128 - - [18/Aug/2023:01:52:57 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:52:58 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:52:58 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:52:59 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:52:59 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:53:00 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:53:00 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:53:01 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:53:43 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"

这时候我们呢把容器删掉,看看nfs服务器里面的东西还在不在

[root@k8s-master1 nfs]# kubectl delete -f nfs-redis.yaml
pod "redis-pod" deleted
[root@k8s-node3 ~]# ll /data/redis/
total 8
-rw-r--r-- 1 root root 810 Aug 18 09:53 access.log
-rw-r--r-- 1 root root   0 Aug 18 09:52 error.log
-rw-r--r-- 1 root root   6 Aug 18 09:41 index.html
[root@k8s-node3 ~]# tail -10 /data/redis/access.log
192.26.159.128 - - [18/Aug/2023:01:52:57 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:52:58 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:52:58 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:52:59 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:52:59 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:53:00 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:53:00 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:53:01 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
192.26.159.128 - - [18/Aug/2023:01:53:43 +0000] "GET / HTTP/1.1" 200 26 "-" "curl/7.29.0"
[root@k8s-node3 ~]#

东西都在,这就持久化存储了

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

AWkq7aIjuRwO