Kubernetes存储原理

  1. 云栖社区>
  2. 博客列表>
  3. 正文

Kubernetes存储原理

先生我不会 2018-06-13 17:36:51 浏览5037 评论0

摘要: Docker容器的设计原理是当容器消融时,容器内的存储也随之消失,但是实际情况中有很多是需要进行持久化的存储的,所以也很有必要进行Kubernetes持久化存储的概念说明。

导语:
Docker容器的设计原理是当容器消融时,容器内的存储也随之消失,但是实际情况中有很多是需要进行持久化的存储的,所以也很有必要进行Kubernetes持久化存储的概念说明。

Kubernetes存储组成
1.本地化的存储
2.网络化的存储
3.其他特殊存储

本地化的存储
①EmptyDir,EmptyDir是一个空目录,其的生命周期和所属的Pod是完全一致的。EmptyDir的用处是可以在同一 Pod 内的不同容器之间共享工作过程中产生的文件。缺省情况下,EmptyDir 是使用主机磁盘进行存储的,也可以设置emptyDir.medium 字段的值为Memory,来提高运行速度,但是这种设置,对该卷的占用会消耗容器的内存份额。
②HostPath,HostPath存储会把宿主机上的指定卷加载到容器之中,如果Pod发生跨主机的重建,其内容就难保证了。一般是用于本地化的日志存储。

网络化的存储
Kubernetes网络存储是学习的重点,Kubernetes支持为数众多的云提供商和网络存储方案。各种支持的方式不尽相同,例如 GlusterFS 需要创建 Endpoint,Ceph/NFS 之流就没这么麻烦了。各种配置需参考不同供应商的文档,本文就以NFS网络存储作为模型。
①静态PV,静态PV和使用它的Pod之间是一种静态绑定关系,在定义Pod的文件里,同时定义了它使用的Volume。Volume 是Pod的附属品,无法单独创建一个Volume,因为它不是一个独立的K8S资源对象。
②动态PV,动态PV是一个Kubernetes资源对象,所以可以单独创建一个PV。它不和Pod直接发生关系,而是通过Persistent Volume Claim,简称PVC来实现动态绑定,然后PVC会根据Pod的要求去自动绑定合适的PV给Pod使用。

PV的使用过程
一个PV创建完后状态会变成Available,等待被PVC绑定。一旦被PVC邦定,PV的状态会变成Bound,就可以被定义了相应PVC的Pod使用。Pod使用完后会释放PV,PV的状态变成Released。变成Released的PV会根据定义的回收策略做相应的回收工作。最后还有一种特殊的情况,Failed 自动回收失败。在实际使用场景里,PV的创建和使用通常不是同一个人。这里有一个典型的应用场景:管理员创建一个PV池,开发人员创建Pod和PVC,PVC里定义了Pod所需存储的大小和访问模式,然后PVC会到PV池里自动匹配最合适的PV给Pod使用。

PV的回收机制
Retain,允许人工处理保留的数据。
Delete ,将删除PV和外部关联的存储资源。
Recycle,将执行清除操作,之后可以被新的PVC使用。

PV的访问模式
ReadWriteOnce,是最基本的方式,可读可写,但只支持被单个Pod挂载。
ReadOnlyMany,可以以只读的方式被多个Pod挂载。
ReadWriteMany,这种存储可以以读写的方式被多个Pod共享。
不是每一种存储都支持这三种方式,像共享方式,目前支持的还比较少,比较常用的是NFS。在PVC绑定PV时通常根据两个条件来绑定,一个是存储的大小,另一个就是访问模式。

1d170291cc513de7a91564f05626fd6cc5c90c6e

官方实例
PVC

cce7c36c6d4872c30b1657af38024fee1d94b7b0

容器实例

bdfaf437428a9df85d633f5d85fb79e3df435a0a

PV

5f4ca340f78eed2f5832de6d619116b1db6f25bb

其他特殊存储
在完善的应用开发中,都会涉及到配置文件的变更,一个正常应用程序从写第一行代码开始,要经历开发环境、测试环境、预发布环境只到最终的线上环境。而每一个环境都要定义其独立的各种配置。如果我们不能很好的管理这些配置文件,运维工作将顿时变的无比的繁琐。为此业内的一些大公司专门开发了自己的一套配置管理中心,如百度的disconf等。Kubernetes也提供了自己的一套方案,即ConfigMap。Kubernetes通过ConfigMap来实现对容器中应用的配置管理。

 

用云栖社区APP,舒服~

【云栖快讯】Apache旗下顶级开源盛会 HBasecon Asia 2018将于8月17日在京举行,现场仅600席,免费赠票领取入口  详情请点击

网友评论

先生我不会
文章16篇 | 关注11
关注
提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过Docker容器来进行应用生命... 查看详情
提供海量、安全和高可靠的云存储服务。RESTful API的平台无关性,容量和处理能力的弹性... 查看详情
是阿里云为云服务器ECS提供的低时延、持久性、高可靠的数据块级随机存储。 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航