Kubernetes存储系统介绍及机制实现


本文分为三大部分。第一部分主要介绍Kubernetes中常用的几种存储,及其使用场景和生命周期等等。第二部分试图介绍一些设计原则和基本架构,并简要介绍各种存储plugin的实现机制及持久卷的一些特性,例如访问模式、回收策略等等。动态卷供给是一个Kubernetes独有的功能,这一功能允许按需创建存储卷,使管理员不必预先创建存储卷,而是随用户需求进行创建。第三部分会介绍一下v1.9中存储的一些新特性。
一、Kubernetes中存储的应用场景


在Kubernetes中部署和运行的服务大致分为:

1. 无状态服务

Kubernetes使用ReplicaSet来保证一个服务的实例数量,如果说某个Pod实例由于某种原因挂掉或崩溃,ReplicaSet会立刻用这个Pod的模版新启一个Pod来替代它。由于是无状态的服务,新Pod与旧Pod一模一样。此外Kubernetes通过Service(一个Service后面可以挂多个Pod)对外提供一个稳定的访问接口,实现服务的高可用。

2. 普通有状态服务

和无状态服务相比,它多了状态保存的需求。Kubernetes提供了以Volume和Persistent Volume为基础的存储系统,可以实现服务的状态保存。

3. 有状态集群服务

和普通有状态服务相比,它多了集群管理的需求。要运行有状态集群服务要解决的问题有两个,一个是状态保存,另一个是集群管理。Kubernetes为此开发了StatefulSet(以前叫做PetSet),方便有状态集群服务在Kubernetes上部署和管理。

简单来说是通过Init Container来做集群的初始化工作,用Headless Service来维持集群成员的稳定关系,用动态存储供给来方便集群扩容,最后用StatefulSet来综合管理整个集群。 


分析以上的服务类型,Kubernetes中对于存储的使用主要集中在以下几个方面:

  • 服务的基本配置文件读取、密码密钥管理等;

  • 服务的存储状态、数据存取等;

  • 不同服务或应用程序间共享数据。

二、Kubernetes中几种常见的存储系统


目前Kubernetes所支持的Volume Plugins如下表所示。


Kubernetes已经提供非常丰富的Volume和Persistent Volume插件,大家可以根据自己业务的需要,使用这些插件给容器提供存储服务。每一种Plugin的使用方法和注意事项在此不做赘述,请参考Kubernetes Volume 的官方文档[1]。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值