阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

StatefulSet资源控制器

135次阅读
没有评论

共计 922 个字符,预计需要花费 3 分钟才能阅读完成。

一、statefulset 介绍

StatefulSet 是为了解决有状态服务的问题而设计的资源控制器。

  • 匹配 Pod name (网络标识) 的模式为:(statefulset 名称)-​(序号),比如上面的示例:web-0,web-1,web-2

  • StatefulSet 为每个 Pod 副本创建了一个 DNS 域名,这个域名的格式为:$(podname).(headless server name),也就意味着服务间是通过 Pod 域名来通信而非 Pod IP,因为当 Pod 所在 Node 发生故障时,Pod 会被飘移到其它 Node 上,Pod IP 会发生变化,但是 Pod 域名不会有变化

StatefulSet 资源控制器

删除 web-0 后查看:

StatefulSet 资源控制器

  • StatefulSet 使用 Headless 服务来控制 Pod 的域名,这个域名的 FQDN 为:(service name).​(namespace).svc.cluster.local,其中,“cluster.local”指的是集群的域名

StatefulSet 资源控制器

  • 根据 volumeClaimTemplates,为每个 Pod 创建一个 pvc,pvc 的命名规则匹配模式:(volumeClaimTemplates.name)-(pod_name),比如上面的 volumeMounts.name=www,Podname=web-[0-2],因此创建出来的 PVC 是 www-web-0、www-web-1、www-web-2

  • 删除 Pod 不会删除其 pvc,手动删除 pvc 将自动释放 pv

二、Statefulset 的启停顺序

  • 有序部署:部署 StatefulSet 时,如果有多个 Pod 副本,它们会被顺序地创建(从 0 到 N -1)并且,在下一个 Pod 运行之前所有之前的 Pod 必须都是 Running 和 Ready 状态。

  • 有序删除:当 Pod 被删除时,它们被终止的顺序是从 N - 1 到 0。

  • 有序扩展:当对 Pod 执行扩展操作时,与部署一样,它前面的 Pod 必须都处于 Running 和 Ready 状态。

三、StatefulSet 使用场景

  • 稳定的持久化存储,即 Pod 重新调度后还是能访问到相同的持久化数据,基于 PVC 来实现。

  • 稳定的网络标识符,即 Pod 重新调度后其 PodName 和 HostName 不变。

  • 有序部署,有序扩展,基于 init containers 来实现。

  • 有序收缩。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-09发表,共计922字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中