首页 > 解决方案 > 正好一个 Pod

问题描述

我正在部署 Thanos 监控系统及其组件之一,公制压实机,它警告说永远不应该有超过一台压实机同时运行。如果违反此约束,则可能会导致度量数据损坏。

除了“只设置replicas: 1并且永不扩展”之外,还有什么方法可以通过 Deployment/StatefulSet/etc 编写“Exactly One” pod?我们将 Rancher 用作编排层,无需+考虑即可轻松点击该按钮。

标签: kubernetesrancher

解决方案


小心部署,因为它们可以配置两种更新策略:

  • RollingUpdate:添加新的 pod,同时终止旧的 pod。这意味着,根据maxSurge选项,如果您将副本设置为1,您可能仍然最多拥有 2 个 pod
  • 重新创建:在创建任何新 pod 之前,所有先前的 pod 都已终止。

相反,Statefulsets 保证在任何给定时间不会有超过 1 个 pod 实例。

apiVersion: apps/v1beta1
kind: StatefulSet
spec:
  replicas: 1

与 Deployment 不同的是,在前一个 Pod 终止之前,Pod 不会被替换。


推荐阅读