关于statefulset

来源:10-13 中间件middleware service开发(4)

慕瓜9063200

2023-03-29

老师你好,statefulset和deployment都是用来创建pod的,为什么中间件这一个服务使用的是statefulset?既然都是通过创建pod给用户提供服务,那么这两个是不是有些冗余了

写回答

1回答

Cap

2023-04-01

虽然 StatefulSet 和 Deployment 都是用来创建和管理 Kubernetes 中的 Pod,但它们之间存在一些关键差异,这使得它们在不同的场景下有各自的适用性。


Deployment:Deployment 适用于无状态的应用程序。它主要关注于应用程序的伸缩性、负载均衡和故障恢复。Deployment 可以确保在集群中始终运行指定数量的 Pod 副本。它们之间互相替换,因为它们没有持久化的存储。因此,对于那些不需要关注 Pod 实例之间状态的应用程序,Deployment 是一个很好的选择。


StatefulSet:StatefulSet 适用于有状态的应用程序,例如数据库和分布式存储系统。它确保在集群中运行特定数量的 Pod,并为每个 Pod 分配一个独特且持久的名称(如 app-0、app-1 等)。这个名称在 Pod 重新调度时保持不变,这对于有状态应用程序非常重要,因为它们需要知道哪个节点具有哪些数据。StatefulSet 还可以确保在升级或缩放时,Pod 按照顺序进行操作。


1
0

Go 开发者的涨薪通道,自主开发 PaaS 平台核心功能

云原生专家带来稀缺的 PaaS 平台实战,带你直击核心业务+技术

400 学习 · 169 问题

查看课程