Kubernetes进阶之hostpath及emptyDir数据卷
admin
2023-03-10 17:21:13
0

K8s进阶之数据卷与数据持久卷
目录:

一 从外部访问应用最佳方式 
二 配置管理 
三 数据卷与数据持久卷 
四 再谈有状态应用部署 
五 K8S 安全机制

三、数据卷与数据持久卷
数据卷产生的背景
为什么有数据卷,这里的数据卷和docker的数据卷还不太一样,实现的机制不是一套,数据卷说白了就是能帮助你持久化你pod重要的数据,如果你不持久化的话,pod删除里面临时产生的数据也会被删除,这不管是k8s中还是docker中,这都是一样的,所以k8s和docker都提供了这种volume的这种相关功能,就是为了持久化你容器中的数据,能让它重建或者删除,数据依然存在。

• Kubernetes中的Volume提供了在容器中挂载外部存储的能力 ,也就是部署k8s自身的存储了,就好比自己搭建一个分布式存储,好比公有云的云盘存储,这样是可以挂在集群之外的存储可以挂在k8s中去使用。
pod要想使用这种存储必须定义两点:
• Pod需要设置卷来源(spec.volume)和挂载点(spec.containers.volumeMounts)两个信息后才可以使用相应的Volume

来看一下卷的类型最好的解释就是官方:
来看一下官方怎么说的:
https://kubernetes.io/docs/concepts/storage/volumes/
Kubernetes进阶之hostpath及emptyDir数据卷
第一种就是本地卷
像hostPath类型与docker里面的bind mount类型,就是直接挂载到宿主机文件的类型
像emptyDir是这样本地卷,也就是类似于volume类型
这两点都是绑定node节点的

第二种就是网络数据卷
比如Nfs、ClusterFs、Ceph,这些都是外部的存储都可以挂载到k8s上

第三种就是云盘
比如AWS、微软(azuredisk)

第四种就是k8s自身的资源
比如secret、configmap、downwardAPI

先来看一下本地卷
像emptyDir类似与docker的volume,而docker删除容器,数据卷还会存在,而emptyDir删除容器,数据卷也会丢失,一般这个只做临时数据卷来使用

创建一个空卷,挂载到Pod中的容器。Pod删除该卷也会被删除。
应用场景:Pod中容器之间数据共享
emptyDir类型

[root@k8s-master demo]# vim emptydir.yaml
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: write
    image: centos
    command: ["bash","-c","for i in {1..100};do echo 
$i >> /data/hello;sleep 1;done"]
    volumeMounts:
      - name: data
        mountPath: /data
  - name: read
    image: centos
    command: ["bash","-c","tail -f /data/hello"]
    volumeMounts:
      - name: data
        mountPath: /data
  volumes:
  - name: data
    emptyDir: {}

[root@k8s-master demo]# kubectl create -f emptydir.yaml 

[root@k8s-master demo]# kubectl get pod
NAME                     READY   STATUS      RESTARTS   AGE
my-pod                   2/2     Running     13         67m
mypod                    1/1     Running     0          3h40m
mypod2                   1/1     Running     0          3h34m
mypod3                   0/1     Completed   0          3h6m
mypod4                   0/1     Completed   0          3h
nginx-5ddcc6cb74-lplxl   1/1     Running     0          4h8m
[root@k8s-master demo]# kubectl logs my-pod read

Hostpath类型

挂载Node文件系统上文件或者目录到Pod中的容器。
应用场景:Pod中容器需要访问宿主机文件

[root@k8s-master demo]# vim hostpath.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: my-pod2
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c - sleep 36000
    volumeMounts:
    - name: data
      mountPath: /data
  volumes:
  - name: data
    hostPath:
      path: /tmp
      type: Directory
[root@k8s-master demo]# kubectl create -f hostpath.yaml 
[root@k8s-master demo]# kubectl get pod
NAME                     READY   STATUS      RESTARTS   AGE
my-pod2                  1/1     Running     0          12s
mypod                    1/1     Running     0          4h53m
mypod2                   1/1     Running     0          4h47m
mypod3                   0/1     Completed   0          4h27m
mypod4                   0/1     Completed   0          4h22m
nginx-5ddcc6cb74-lplxl   1/1     Running     0          5h30m
web-67fcf9bf8-mrlhd      1/1     Running     0          20m

[root@k8s-master demo]# kubectl exec -it my-pod2 sh
cd /data/
ls

这里创建的数据和我们被分配的node节点的数据都是一样的,创建的数据都会更新上去,删除容器,不会删除数据卷的数据。

相关内容

热门资讯

浙江人形与杰克科技签约2000... 来源:上海证券报·中国证券网 上证报中国证券网讯(记者 王子霖)据浙江人形机器人创新中心有限公司(以...
原创 三... 不出意外的话,今年苹果,高通、三星,联发科,这4家确定会推出2nm的手机芯片。 并且高通、联发科、苹...
Kimi、阶跃再获百亿融资,D... 图片由AI生成 出品 | 搜狐科技 作者 | 梁昌均 编辑 | 杨锦 中国大模型创业公司再次迎来融资...
“我妈有俩老公”?OPPO活该... 5月8日,OPPO官方微博发布了一条关于母亲节的宣发文案,内容因表述问题,引起热议。 相关话题“...
他,扛起又一个任正非时刻! 奔赴一场新的长征。 文 | 华商韬略 张静波 黄仁勋,急了。 2026年4月15日,在一场长达90分...
全球开源创新大会在巴黎举行 聚... 全球开源创新大会活动现场(5月6日摄)。新华社发(主办方供图) 新华社巴黎5月8日电 全球开源创新...
罕见!韩媒:韩国总统、国会议长... 据韩国《朝鲜日报》等韩媒报道,5月8日,韩国政坛出现罕见一幕:韩国总统李在明、韩国国会议长禹元植以及...
4000辆奇瑞商用车散件启运非... 河南日报讯(全媒体记者 龚砚庆 马青竹)5月8日上午,开封综合保税区内的汽车及零部件外贸基地一片繁忙...
“河南材料”中丨南阳新材料“追... 柔性功能薄膜隔热效率比传统产品高30%、紫外线与红外线阻隔率高达99%,产品在汽车玻璃、建筑玻璃和航...
河南超有品 第十个“中国品牌日... 从西安到灵宝寺河山,往返数百公里,仅半年,杨女士便跑了4趟。5月7日,她再次叩开果农司红娥家的大门,...