kubernetes - StatefulSet 更新:重新创建 THEN 删除 pod
问题描述
Kubernetes StatefulSetRollingUpdate
策略按顺序删除和重新创建每个 Pod。我有兴趣通过重新创建一个 pod然后逐个删除旧的 Pod(注意反转)来更新 StatefulSet。
这对我来说很有趣,因为:
- Ready Pod 的数量没有减少。我理解这也是正常部署更新的工作方式(即,仅在替换它的新 Pod 就绪后才删除 Pod)。
- 更重要的是,它允许我在 StatefulSet 升级期间执行特定于应用程序的实时迁移。我想将数据从终止之前“迁移”
(old) pod-i
到之前(我将在准备逻辑中实现这一点)。(new) pod-i
(old) pod-i
(new) pod-i
这样的更新策略可行吗?
解决方案
这在 Deployment 中是可以实现的,但 StatefulSet 则不行。当您非常关心具有众所周知名称的副本的确切数量时,将使用 StatefulSet。部署用于更具弹性的工作负载。
您可以通过使用多个 StatefulSet 来实现您的目标——例如,使用 3 个 StatefulSet,每个有 1 个副本,而不是 3 个副本的 StatefulSet。然后在删除之前的一个之前为您的数据迁移部署一个额外的 StatefulSet。
或者,这可能是Operator管理应用程序的用例。
推荐阅读
- ios - 致命错误:在 UITableViewCell 中展开可选值错误时意外发现 nil?
- scala - 不同结构的 Spark 处理文件
- r - data.table 引用语义:遍历列和行组的内部结构
- c# - WCF 客户端:这可能是由于服务端点绑定未使用 HTTP 协议
- wso2-am - WSO2-APIM-CLI(Import/Export) 工具列表-apis函数只返回结果中的25项
- c# - HttpClientFactory - Get a named, typed client by its name
- scala - 无法通过 spark scala 程序对 cassandra 集群进行身份验证
- nlp - spacy 的自定义规范化
- java - 通过单击外部链接打开我的应用程序?
- javascript - 使用 cookie 保存 Javascript 切换状态