准备就绪探针失败时的Kubernetes自定义操作

时间:2020-08-05 09:56:55

标签: kubernetes autoscaling readinessprobe

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

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

要知道何时进行处理,我创建了一个端点,如果pod是IDLE,则返回TRUE,否则返回FALSE。

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

默认情况下,我只有有限的Pod池(如5个)可以回答请求。

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

因此,当针对所有Pod的就绪探针失败时,我想扩展部署,以使其他Pod可用以回答请求。

这里的问题是我没有找到如何用K8S做这种事,或者甚至没有找到可能。有人可以帮助我吗?

另一种选择是创建一个“观察者”吊舱,该监视者可以监视给定部署的所有准备情况探针,当我对所有吊舱都失败时,该观察员将负责扩展部署。

但是这种替代方式意味着如果要在K8S中进行开发,我想避免开发。

谢谢:)

1 个答案:

答案 0 :(得分:2)

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

我想到的唯一解决方案就是您所说的,因此拥有一个水平Pod自动定标器,其中的自定义指标指向一个跟踪所有就绪探针的Pod。