【问题标题】:Kubernetes custom action when readiness probe fails就绪探测失败时的 Kubernetes 自定义操作
【发布时间】:2020-11-25 11:36:59
【问题描述】:

我目前正在尝试自动扩展部署,当其当前运行的 Pod 的就绪性探测失败时。

在向其发送 POST 请求之前,pod 处于空闲状态,并且在处理请求时,它不会响应任何其他请求。

为了知道何时进行处理,我创建了一个端点,如果 pod 处于空闲状态,则返回 TRUE,否则返回 FALSE。

我配置就绪探测以查询此端点,以便在处理正在进行时将其标记为不可用(并在不再处理时将其标记为可用)。

默认情况下,我有一个有限的 pod 池(例如 5 个)可以响应请求。

但是当我的 5 个 pod 都不可用时,我仍然希望能够发送另一个带有其他参数的 POST 以触发另一个处理。

因此,当所有 pod 的就绪性探测失败时,我想扩展部署以便让其他 pod 可以响应请求。

这里的问题是我没有找到如何用 K8S 做这样的事情,或者这是否可能。有没有人可以帮助我解决这个问题?

另一种方法是创建一个“观察者”pod,它会观察给定部署的所有就绪探测,当我对所有 pod 都失败时,手表将负责扩展部署。

但是这种替代方案意味着如果可以在 K8S 中进行,我希望避免这种开发。

谢谢你:)

【问题讨论】:

    标签: kubernetes autoscaling readinessprobe


    【解决方案1】:

    readinessprobe 本身不应该能够扩展部署。默认情况下,它唯一能做的就是从所有匹配 Pod 的服务的端点中删除 Pod 的 IP。

    我想到的唯一解决方案就是您所说的,因此拥有一个带有自定义指标的 Horizo​​ntal Pod Autoscaler,指向一个跟踪所有就绪探针的 Pod。

    【讨论】:

    • 是的,我就是这么想的。那么我已经辞职了,这并不难,但我更愿意保持 K8S 管理的风格。感谢您的反馈:)
    猜你喜欢
    • 1970-01-01
    • 2019-12-05
    • 2018-07-10
    • 2021-02-06
    • 2023-03-11
    • 1970-01-01
    • 2021-12-03
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多