Kubernetes详解(四十五)——statefulset控制器原理

今天继续给大家介绍Linux运维相关知识,本文主要内容是statefulset控制器原理。

一、statefulset简介

在之前的文章中,我们介绍过,Kubernetes集群中的Pod是无状态的,为了满足Pod节点对存储的需求,我们可以为Pod节点挂载一个Volume卷。但是,如果Pod发生故障而以外退出后,尽管Kubernetes集群可以重新启动一个Pod,并且该Pod也会重新申请Volume作为自己的存储空间。但是这并不能保证Pod所申请的新的存储空间是其之前所申请的存储空间,这样之前所存储的数据也就无法继续使用了。
为了解决这一问题,我们需要引入一种持久化有状态的解决方案,这就是Kubernetes集群中的StatefulSet控制器。StatefulSet控制器主要有以下3个特点:
1、稳定的持久化存储。 即Pod在被删除重建后,还能够访问到相同的持久化存储资源。
2、稳定的网络标识。 即Pod在被重新调度后,Pod命和主机名不变,这需要Headless Service(也是一种Service资源,但是相比于ClusterIP而言,没有ClusterIP)实现。
3、有序性。 Pod是有顺序的,Pod在被部署、扩展、收缩、删除和更新时,都会按照顺序严格执行。
一般而言,StatefulSet由以下三个部分组成:
1、Headless Service
Headless Service,即无头服务,用于为Pod资源标识符生成可解析的DNS记录。
2、Volume Chain Templates
Volume Chain Templates,即存储卷申请模板,为Pod资源提供有状态的持久存储。
3、StatefulSet
用于管控Pod资源。

二、headless简介

在StatefulSet架构中,每一个Pod的名称是固定不变的。即使是Pod被删除后重建,也必须保证重建后的Pod与重建前的Pod名称相同。
为了实现Pod名称的不变,我们就必须配置实现一个Headless Service,用于给Pod名称和Pod提供解析。

三、volumeClainTemplate详解

在StatefulSet中,我们要求Pod之间不能使用同一个存储卷。因此,基于Pod模板创建Pod是不合适的,这就需要引入Volume Chain Template。这样在StatefulSet创建Pod后,会自动生成PVC,并绑定PV,从而拥有自己的存储卷。StatefulSet模式如下所示:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值