kubernetes - Kubernetes 缩小特定 pod
问题描述
我有一个可以有多个副本 pod 的 Kubernetes 部署。我希望根据我的 python 应用程序中的一些逻辑(而不是 hpa 中的自定义指标)水平地增加和减少 pod。
我有两种方法:
- 使用 Horizontal Pod Autoscalar 并使用 kubernetes API 在我的应用程序中更改 minReplicas、maxReplicas
- 使用 API 直接更新我的部署中的“/spec/replicas”字段
以上两件事都适用于高档和低档。
但是,当我缩小时,我想删除一个特定的 Pod,而不是任何其他 Pod。
如果我在 HPA 中更新 minReplicas maxReplicas,那么它会随机删除一个 pod。当我更新部署中的 /spec/replicas 字段时也是如此。
如何在缩小时删除特定的 pod?
解决方案
我不知道有任何方法可以确保在缩减期间删除 ReplicaSet 中的特定 pod。您可以使用 StatefulSet 来实现此行为,它始终会在缩减时删除最后一个 pod。
例如,如果我们有一个缩放到 3 的 StatefulSet foo,我们将拥有 pod:
- foo-0
- foo-1
- foo-2
如果我们将 StatefulSet 缩放到 2,控制器将删除 foo-2。但请注意,StatefulSet 还有其他一些限制需要注意。
推荐阅读
- mysql - 'where 子句'中的未知列'file.name'
- php - 发送到电子邮件的基本 PHP 表单
- mysql - 在mysql中的表中添加包含数据的列
- python - 在 smtplib 电子邮件中使用消息功能
- python - 如何创建一个返回嵌入在记录中的值的函数?
- excel-formula - Excel - 从单独的列/数组中搜索精确字符串的单元格文本......需要完全匹配
- slack - 如何让 Slack Bot 不回复私人群组中的所有消息?
- tensorflow - 使用英特尔 mkl 的张量流性能下降
- visual-studio-code - 如何在 VSCode 调试器中禁用“只是我的代码”设置?
- sql - 插入并选择查询.... 聚合多行数据