Kubernetes之StatefulSet

StatefulSet介绍

从1.9 GA版本开始,StatefulSet成为kubernetes的稳定特性。StatefulSet是一种副本控制器,管理pod的部署、缩放等。与ReplicaSet、Deployment不同的是,它对集合中的pod提供顺序、唯一性保证。StatefulSet为集合中的每个pod分配唯一、持久的pod名称、DNS解析、持久化存储,并且负责将这些标识粘在pod上,无论pod调度到任何节点上。

什么时候需要使用StatefulSet

当应用的需求,与下述中的一条或者多条相符时,使用StatefulSet就会有价值:

  • 唯一、稳定的网络标识(pod原本没有网络标识,service有)。
  • 稳定、持久化存储。
  • 多个副本有序、优雅的部署与缩放。
  • 多个副本有序、优雅的部署与缩放。
  • 多个副本有序、优雅的自动滚动升级。

StatefulSe限制

  • StatefulSet特性,1.5之前的版本不可用,1.9之前的版本不稳定。
  • 必需为pod提供持久化存储。
  • 删除或者缩容StatefulSet时,出于数据安全的目的,不会自动删除与pod相关的持久化存储,需要手动处理。
  • 当前StatefulSet需要通过无头服务为其所管理的pod提供网络标识,或者说DNS条目,用户需手动创建无头服务。

唯一、稳定pod名称

StatefulSet中的pod名称由StatefulSet配置中的name加上表示序号的整数,整数从0开始取值,最大值为副本数量减1.

唯一、稳定网络ID

StatefulSet通过与其相关的无头服务为每个pod提供DNS解析条目。假如无头服务的DNS条目为:
"$(service name).$(namespace).svc.cluster.local",
那么pod的解析条目就是"$(pod name).$(service name).$(namespace).svc.cluster.local",每个pod name也是唯一的。

稳定持久存储

通过 PersistentVolume 提供持久化存储。

创建StatefulSet

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值