有状态集与 Kubernetes 上无状态应用程序的部署



我找到了大量文章和文档,描述了 StatefulSets 相对于 Kubernetes 上有状态应用程序的部署的优势。我无法弄清楚的是相反的:与部署相比,StatefulSets的缺点,特别是对于无状态应用程序。

有人可以解释一下为什么不简单地将有状态集用于有状态和无状态应用程序吗?

最基本的区别是,您将能够使用有状态集来保持pod 级别状态。使用 volumeClaimTemplates,每个副本将获得一个具有 statefulset 的唯一 PersistentVolumeClaim,而所有副本将与部署共享PersistentVolumeClaim。这是以有状态集的缓慢扩展和缩减为代价的。

部署还具有与"部署"相关的很酷的功能,例如使用maxSurge 和 maxUnavailable进行滚动更新。

最新更新