【发布时间】:2021-10-05 08:38:27
【问题描述】:
在我的 Kubernetes 集群中,我有一个带有两个容器的 pod(即一个副本):server 和 cache。
我还有一个与我的 pod 匹配的 Kubernetes Service。
如果cache 崩溃,当我尝试通过Service 向server 发送HTTP 请求时,我会收到“503 服务暂时不可用”。
HTTP 请求通过 Nginx Ingress 进入集群,我怀疑问题是当 cache 崩溃时,Kubernetes 会从 Service 负载均衡器中删除我的一个 pod,正如 Kubernetes documentation 中所承诺的那样:
kubelet 使用就绪探测来了解容器何时准备好开始接受流量。当 Pod 的所有容器都准备好时,就认为 Pod 准备好了。此信号的一种用途是控制哪些 Pod 用作服务的后端。当 Pod 未准备好时,它会从服务负载均衡器中移除。
我不喜欢这种行为,因为即使cache 失败,我仍然希望server 能够响应请求。有没有办法获得这种期望的行为?
【问题讨论】:
-
让我们看看你的部署配置
-
分享完整的部署会很多——为了分享的目的,我创建了一个玩具示例。
-
虽然没有活性或就绪性探测
标签: kubernetes kubernetes-pod kubernetes-service