我一直在对 Kubernetes 进行大量挖掘,我很喜欢我看到的很多东西!我一直无法清楚了解的一件事是 Deployment 和 StatefulSet 资源之间的确切区别是什么,以及您将在哪些场景中使用它们(或者通常首选一个而不是另一个)。
Deployments 和 ReplicationControllers 用于无状态使用,并且相当轻量级。当必须保持状态时使用StatefulSet 。因此后者volumeClaimTemplates在持久卷上使用 / 声明以确保它们可以在组件重新启动时保持状态。
volumeClaimTemplates
因此,如果您的应用程序是有状态的,或者如果您想在 Kubernetes 之上部署有状态存储,请使用 StatefulSet。
如果您的应用程序是无状态的,或者如果可以在启动期间从后端系统建立状态,则使用部署。
有关运行有状态应用程序的更多详细信息,请参阅2016 kubernetes 关于有状态应用程序的博客条目