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

慕瓜9063200
2023-03-29
老师你好,statefulset和deployment都是用来创建pod的,为什么中间件这一个服务使用的是statefulset?既然都是通过创建pod给用户提供服务,那么这两个是不是有些冗余了
写回答
1回答
-
虽然 StatefulSet 和 Deployment 都是用来创建和管理 Kubernetes 中的 Pod,但它们之间存在一些关键差异,这使得它们在不同的场景下有各自的适用性。
Deployment:Deployment 适用于无状态的应用程序。它主要关注于应用程序的伸缩性、负载均衡和故障恢复。Deployment 可以确保在集群中始终运行指定数量的 Pod 副本。它们之间互相替换,因为它们没有持久化的存储。因此,对于那些不需要关注 Pod 实例之间状态的应用程序,Deployment 是一个很好的选择。
StatefulSet:StatefulSet 适用于有状态的应用程序,例如数据库和分布式存储系统。它确保在集群中运行特定数量的 Pod,并为每个 Pod 分配一个独特且持久的名称(如 app-0、app-1 等)。这个名称在 Pod 重新调度时保持不变,这对于有状态应用程序非常重要,因为它们需要知道哪个节点具有哪些数据。StatefulSet 还可以确保在升级或缩放时,Pod 按照顺序进行操作。
10
相似问题