千家信息网

Kubernetes volume数据卷

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,Volume是kubernetes Pod中多个容器访问的共享目录Kubernetes提供了众多的volume类型,包括:emptyDir、hostPath、NFS、GlusterFS、configM
千家信息网最后更新 2025年01月23日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安全错误 数据库的锁怎样保障安全 基于组件的软件开发模型 易语言外部数据库怎么用 软件开发有学历要求吗 即时通信软件开发文档 学习计算机和网络技术哪个好 数据库怎么取消日期 梦幻西游怎么看服务器开了多少天 网络技术咨询是什么 电脑上的服务器管理器在哪里 银行数据库工程师江苏 查找数据库中已有的触发器 中山市正圣软件开发公司 我的世界服务器怎么添加手机版 网络安全小知识小游戏 网络安全服务需求书 删除dns服务器 腾讯云服务器可以上微信吗 红十字会网络安全事件 sql数据库测试 社区网络安全隐患检查 如何查看用友软件的数据库 方舟生存进化主播一般玩的服务器 服务器怎么查看昨晚几点掉电的 某软件开发企业为增值税 聊城市公安局网络安全支队 浙江个人软件开发供应 网络安全技术就业形势 移动网络安全大数据 以下哪些为关系型数据库 宝信服务器
0