千家信息网

Kubernetes volume数据卷

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,Volume是kubernetes Pod中多个容器访问的共享目录Kubernetes提供了众多的volume类型,包括:emptyDir、hostPath、NFS、GlusterFS、configM
千家信息网最后更新 2025年02月24日Kubernetes volume数据卷

Volume是kubernetes Pod中多个容器访问的共享目录

Kubernetes提供了众多的volume类型,包括:emptyDir、hostPath、NFS、GlusterFS、configMap、Cephfs

1、emptyDir
emptyDir类型的vloume在Pod分配到node上时被创建,kubernetes会在node上自动分配一个目录,所以无须指定宿主机node上对应的目录文件,该目录初始化内容为空,当Pod从node上被移除时,emptyDir中的数据会被永久删除

1.编辑emptyDir.yaml文件

apiVersion: extensions/v1beta1kind: Deploymentmetadata:  name: web-demo-emptyspec:  replicas: 2  selector:    matchLabels:      app: app-demo-empty  template:    metadata:      labels:        app: app-demo-empty    spec:      containers:      - name: tomcat-demo        image: tomcat        imagePullPolicy: IfNotPresent        ports:        - containerPort: 8080        volumeMounts:          # 将/mydata-data目录挂载到共享仓库          - mountPath: /mydata-data            name: datavol      - name: nginx-demo        image: nginx        imagePullPolicy: IfNotPresent        ports:        - containerPort: 80        volumeMounts:          # 将/mydata-data目录挂载到共享仓库          - mountPath: /mydata-data            name: datavol      # emptyDir是一个共享仓库(中央仓库)      volumes:        - name: datavol          emptyDir: {}

2.执行kubectl create

$ kubectl create -f  emptyDir.yamldeployment.extensions/web-demo-empty created

3.先进入tomcat-demo容器中创建文件

$  kubectl exec -it web-demo-empty-9b5644c45-7bpn5 -c tomcat-demo bash$ touch /mydata-data/data.txt$ ls /mydata-data/data.txt

4.在进入nginx-demo容器查看是否存在data.txt文件

$ kubectl exec -it web-demo-empty-9b5644c45-7bpn5 -c nginx-demo bash$ ls /mydata-data/data.txt

经过试验证明emptyDir是一个共享空目录,可以让Pod中的多个容器之间共享该目录

2、hostPath
hostPath类型的vloume为Pod挂载到宿主机上的目录或文件,使得容器可以使用宿主机的文件系统进行存储,但是在kubernetes中,Pod都是基于schedule组件来动态调度在不同的node节点上,当一个Pod在当前node节点上启动并通过hostPath存储了文件到本地后,下次在调度另外一个节点上启动时,就无法使用之前节点上存储的文件了。

1.编辑hostPath.yaml文件

apiVersion: extensions/v1beta1kind: Deploymentmetadata:  name: web-demo-hostpathspec:  replicas: 2  selector:    matchLabels:      app: app-demo-hostpath  template:    metadata:      labels:        app: app-demo-hostpath    spec:      containers:      containers:      - name: nginx-demo        image: nginx        imagePullPolicy: IfNotPresent        ports:        - containerPort: 80        volumeMounts:          - mountPath: /mydata-data            name: datavol      volumes:        - name: datavol          hostPath:            path: "/data"

2.执行kubectl create

$ kubectl create -f hostPath.yamldeployment.extensions/web-demo-hostpath created

3.需要在每个node节点创建/data目录,并创建测试文件

$ mkdir /data $ touch /data/test.txt

4.进入容器里查看是否将/mydata-data挂载到了宿主机上

$ kubectl exec -it web-demo-hostpath-7866c644c4-7f8fk bash$ ls /mydata-data/test.txt
文件 目录 容器 节点 仓库 宿主 类型 存储 多个 宿主机 分配 调度 数据 不同 中央 之间 内容 动态 是在 空目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 东莞南城软件开发公司 如何制定软件开发项目策划方案 北航 统计学 网络安全班 赵立坚中国网络安全大会 北京御猫网络技术有限公司 云数据库库中 hyperv服务器系统怎么卸载 网络安全技术管理系统 图形界面方式附加数据库 河南高校党建软件开发系统 潍坊管理系统软件开发哪家好 网络技术校企合作协议 全国政协系统网络安全培训班 网络安全素材免费模板 软件开发软件编程学习 环境英文文献数据库 网络安全技能相关竞赛无基础 服务器内存槽位A1A2怎么分 浦东新区市场软件开发包括什么 杨工软件开发设计 网络安全宣传的话语 网络安全法考试找不到入口 公司网络安全监督坚持 无线打印服务器支持哪些打印机 4个系统级数据库 机关网络安全意识不够 小学教师加强网络安全教育 河北服务器机箱加工云空间 战雷网络技术有限公司 2019年网络安全宣传语
0