1、EmptyDir(本地数据卷)

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

[root@k8s-master demon2]# cat test-emptypath.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
name: test-emptypath
role: master
name: test-emptypath
spec:
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: v1
kind: Pod
metadata:
labels:
name: test-hostpath
role: master
name: test-hostpath
spec:
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: v1
kind: Pod
metadata:
labels:
name: test-nfspath
role: master
name: test-nfspath
spec:
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: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: emhlbnl1
password: eWFvZGlkaWFv
[root@k8s-master demon2]# cat test-secret.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
name: test-secret
role: master
name: test-secret
spec:
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

最新文章

  1. ASP.NET Core 中文文档 第三章 原理(15)请求功能
  2. ACM ICPC Vietnam National Second Round
  3. ZooKeeper学习总结 第二篇:ZooKeeper深入探讨(转载)
  4. error-2016-4-20
  5. CSS动态伪类选择器温故-3
  6. UVa 10917 A Walk Through the Forest
  7. Maven中央(或国内)仓库地址
  8. IOS苹果手机上 iframe 滚动失效条问题,局部滚动开启弹性滚动!
  9. [bzoj1227] [SDOI2009]虔诚的墓主人
  10. 解决C#编译中"csc不是内部或外部命令"的问题
  11. C++11 标准库也有坑(time-chrono)
  12. Linux下C编写基本的多线程socket服务器
  13. redis资源未释放引发的问题
  14. Scrum【转】
  15. 记录下扣jio的2018年
  16. C语言 文件的读写操作
  17. jQuery事件委托
  18. 睡前小dp-poj2096-概率dp
  19. 电商项目中学到的git命令
  20. Unity Shader-描边效果

热门文章

  1. Java:构造器,构造代码块,静态代码块的执行顺序
  2. C# 在iis windows authentication身份验证下,如何实现域用户自动登录
  3. Python初识文本基本操作
  4. 区划代码 node 版爬虫尝试
  5. 调停者(Mediator)模式
  6. dubbo在企业中用得多吗?
  7. kotlin 语言入门指南一
  8. Openstack(企业私有云)万里长征第一步——安装
  9. 对clear float 的理解
  10. 汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快