Kubernetes练习<11>---储存管理(Volumes配置管理)

Volumes配置管理
解决重启文件丢失以及pod多个容器之间文件共享问题。
Kubernetes 卷具有明确的生命周期——与包裹它的 Pod 相同。 因此,卷比 Pod 中运行的任何容器的存活期都长,在容器重新启动时数据也会得到保留。 当然,当一个 Pod 不再存在时,卷也将不再存在。也许更重要的是,Kubernetes 可以支持许多类型的卷,Pod 也能同时使用任意数量的卷。
容器中的进程能看到由它们的 Docker 镜像和卷组成的文件系统视图。 Docker 镜像 位于文件系统层次结构的根部,并且任何 Volume 都挂载在镜像内的指定路径上。 卷不能挂载到其他卷,也不能与其他卷有硬链接。 Pod 中的每个容器必须独立地指定每个卷的挂载位置

1、emptyDir
当 Pod 指定到某个节点上时,首先创建的是一个 emptyDir 卷,并且只要 Pod 在该节点上运行,卷就一直存在。 就像它的名称表示的那样,卷最初是空的。 尽管 Pod 中的容器挂载 emptyDir 卷的路径可能相同也可能不同,但是这些容器都可以读写 emptyDir 卷中相同的文件。 当 Pod 因为某些原因被从节点上删除时,emptyDir 卷中的数据也会永久删除。

emptyDir 的一些用途:

缓存空间,例如基于磁盘的归并排序。
为耗时较长的计算任务提供检查点,以便任务能方便地从崩溃前状态恢复执行。
在 Web 服务器容器服务数据时,保存内容管理器容器获取的文件。

默认情况下, emptyDir 卷存储在支持该节点所使用的介质上;这里的介质可以是磁盘或 SSD 或网络存储,这取决于您的环境。 但是,您可以将 emptyDir.medium 字段设置为 "Memory",以告诉 Kubernetes 为您安装 tmpfs(基于 RAM 的文件系统)。 虽然 tmpfs 速度非常快,但是要注意它与磁盘不同。 tmpfs 在节点重启时会被清除,并且您所写入的所有文件都会计入容器的内存消耗,受容器内存限制约束。

(1)、创建

[wjjk8s@server1 volumes]$ vim pod.yaml 

在这里插入图片描述

[wjjk8s@server1 volumes]$ kubectl create -f pod.yaml 
pod/vol1 created
[wjjk8s@server1 volumes]$ kubectl get pod
NAME   READY   STATUS              RESTARTS   AGE
vol1   0/2     ContainerCreating   0          3s
[wjjk8s@server1 volumes]$ kubectl get pod
NAME   READY   STATUS    RESTARTS   AGE
vol1   2/2     Running   0          17s

在这里插入图片描述

(2)、vm1和vm2挂载在同一个地方cache-volume

[wjjk8s@server1 volumes]$ kubectl exec -it vol1 -- sh
/ # cd /cache/
/cache # echo westos > index.html

在这里插入图片描述

[wjjk8s@server1 volumes]$ kubectl get pod -o wide
NAME   READY   STATUS    RESTARTS   AGE    IP            NODE      NOMINATED NODE   READINESS GATES
vol1   2/2     Running   0          4m8s   10.244.1.87   server2   <none>           <none>
[wjjk8s@server1 volumes]$ curl 10.244.1.87		#两容器数据共享
westos

在这里插入图片描述

(3)、emptydir的缺点

2、 hostpath卷
(1)创建
在容器内写入的数据会直接写入真机上,超户写入。
在这里插入图片描述

[wjjk8s@server1 volumes]$ kubectl create -f pod2.yaml
[wjjk8s@server1 volumes]$ kubectl get pod -o wide
NAME      READY   STATUS    RESTARTS   AGE   IP            NODE      NOMINATED NODE   READINESS GATES
test-pd   1/1     Running   0          49s   10.244.2.97   server4   <none>           <none>
[root@server4 ~]# cd /data/

在这里插入图片描述

[root@server4 data]# ls
[root@server4 data]# ll -d
drwxr-xr-x 2 root root 6 5月   3 18:02 .

在这里插入图片描述

(2)数据共享

[wjjk8s@server1 volumes]$ kubectl exec -it test-pd -- bash
root@test-pd:/# cd /test-pd/
root@test-pd:/test-pd# echo westos > file
root@test-pd:/test-pd# cat file 
westos

在这里插入图片描述

[root@server4 data]# cat file 
westos

在这里插入图片描述

3、nfs示例
(1)配置nfs

[root@server1 harbor]# cat /etc/exports
/mnt/nfs	*(rw,no_root_squash)
[root@server1 harbor]# systemctl start nfs
[root@server1 harbor]# showmount -e
Export list for server1:
/mnt/nfs *

在这里插入图片描述

(2)创建

[root@server4 yum.repos.d]# yum install -y nfs-utils
[wjjk8s@server1 volumes]$ kubectl create -f pod3.yaml 

在这里插入图片描述

(3)数据共享

[wjjk8s@server1 volumes]$ kubectl exec -it test-pd -- bash
root@test-pd:/# cd /usr/share/nginx/html/
root@test-pd:/usr/share/nginx/html# echo westos > index.html
root@test-pd:/usr/share/nginx/html# cat index.html
westos

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值