博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kubernetes部分Volume类型介绍及yaml示例
阅读量:6329 次
发布时间:2019-06-22

本文共 2664 字,大约阅读时间需要 8 分钟。

hot3.png

1、EmptyDir(本地数据卷)

  EmptyDir类型的volume创建于pod被调度到某个宿主机上的时候,而同一个pod内的容器都能读写EmptyDir中的同一个文件。一旦这个pod离开了这个宿主机,EmptyDirr中的数据就会被永久删除。所以目前EmptyDir类型的volume主要用作临时空间,比如Web服务器写日志或者tmp文件需要的临时目录。yaml示例如下:

复制代码

[root@k8s-master demon2]# cat test-emptypath.yaml apiVersion: v1kind: Podmetadata:  labels:    name: test-emptypath    role: master  name: test-emptypathspec:  containers:    - name: test-emptypath      image: registry:5000/back_demon:1.0      volumeMounts:       - name: log-storage         mountPath: /home/laizy/test/      command:      - /run.sh  volumes:  - name: log-storage    emptyDir: {}

复制代码

2、HostDir(本地数据卷)

  HostDir属性的volume使得对应的容器能够访问当前宿主机上的指定目录。例如,需要运行一个访问Docker系统目录的容器,那么就使用/var/lib/docker目录作为一个HostDir类型的volume;或者要在一个容器内部运行CAdvisor,那么就使用/dev/cgroups目录作为一个HostDir类型的volume。一旦这个pod离开了这个宿主机,HostDir中的数据虽然不会被永久删除,但数据也不会随pod迁移到其他宿主机上。因此,需要注意的是,由于各个宿主机上的文件系统结构和内容并不一定完全相同,所以相同pod的HostDir可能会在不同的宿主机上表现出不同的行为。yaml示例如下:

复制代码

[root@k8s-master demon2]# cat test-hostpath.yaml apiVersion: v1kind: Podmetadata:  labels:    name: test-hostpath    role: master  name: test-hostpathspec:  containers:    - name: test-hostpath      image: registry:5000/back_demon:1.0      volumeMounts:       - name: ssl-certs         mountPath: /home/laizy/test/cert         readOnly: true      command:      - /run.sh  volumes:  - name: ssl-certs    hostPath:     path: /etc/ssl/certs

复制代码

3、NFS(网络数据卷)

  NFS类型的volume。允许一块现有的网络硬盘在同一个pod内的容器间共享。yaml示例如下:

复制代码

[root@k8s-master demon2]# cat test-nfspath.yaml apiVersion: v1kind: Podmetadata:  labels:    name: test-nfspath    role: master  name: test-nfspathspec:  containers:    - name: test-nfspath      image: registry:5000/back_demon:1.0      volumeMounts:       - name: nfs-storage         mountPath: /home/laizy/test/      command:      - /run.sh  volumes:  - name: nfs-storage    nfs:     server: 192.168.20.47     path: "/data/disk1"

复制代码

4、Secret(信息数据卷)

  Kubemetes提供了Secret来处理敏感数据,比如密码、Token和密钥,相比于直接将敏感数据配置在Pod的定义或者镜像中,Secret提供了更加安全的机制(Base64加密),防止数据泄露。Secret的创建是独立于Pod的,以数据卷的形式挂载到Pod中,Secret的数据将以文件的形式保存,容器通过读取文件可以获取需要的数据。yaml示例如下:

复制代码

[root@k8s-master demon2]# cat secret.yaml apiVersion: v1kind: Secretmetadata: name: mysecrettype: Opaquedata: username: emhlbnl1 password: eWFvZGlkaWFv[root@k8s-master demon2]# cat test-secret.yaml apiVersion: v1kind: Podmetadata:  labels:    name: test-secret    role: master  name: test-secretspec:  containers:    - name: test-secret      image: registry:5000/back_demon:1.0      volumeMounts:       - name: secret         mountPath: /home/laizy/secret         readOnly: true      command:      - /run.sh  volumes:  - name: secret    secret:     secretName: mysecret

复制代码

转载于:https://my.oschina.net/xiaominmin/blog/1632905

你可能感兴趣的文章
青春路上,岁月如烟
查看>>
Linux实用工具
查看>>
将centos7打造成桌面系统
查看>>
puppet基本配置
查看>>
Spring常用注解
查看>>
linux登录日志
查看>>
yum不能升级
查看>>
又见那风鸣
查看>>
网络公开课《八一建军节引发的Oracle数据库思考:虚拟私有数据库》
查看>>
Ubuntu下完全卸载Nginx
查看>>
华三企业网关新增IP地址段
查看>>
我的友情链接
查看>>
java找出最低分及他在数组找中的位置
查看>>
在一个每一行从左到右递增每一列从上到下递增的二维数组中查找一个整数是否存在——3...
查看>>
PHP 做网站真好用
查看>>
word - 如何让 图片任意移动
查看>>
多态and接口
查看>>
单臂路由和DHCP
查看>>
URLConnection下载图片
查看>>
Flex-弹性布局
查看>>