我的一个微服务正在Kubernetes上运行。 我想在Pod忙时指定K8s负载均衡器,因为我当前无法正常运行。
一个例子:
我有8个Pod正在运行,每个Pod一次可以处理1个请求。每个请求占用分配给Pod的CPU内核的70%至100%。 但是,当我向应用程序发送8个请求时,Kubernetes不会将这些请求分派到8个Pod,而是尝试仅使用一个。而且由于我(通过线程池)阻塞了每个应用程序副本,一次只能使用一个线程,所以请求的请求当然会排队到pod 1。
所以我的问题是:我如何告诉Kubernetes POD 1忙,并且负载均衡器必须将请求2分发到POD 2?
注意:出于开发和测试目的,我在Windows 10和kubectl上使用Docker桌面(适用于Windows的Docker)。
答案 0 :(得分:3)
答案 1 :(得分:2)
正如普罗米修斯建议的那样,您可以使用活动度探针,我也建议将rediness probe
加在一起。
您可以查看官方文档:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
有时,应用程序暂时无法提供流量。例如,在启动时,应用程序首先需要加载大数据或配置文件。
在这种情况下,您不想杀死该应用程序,但也不想将其中的流量发送到Pod。 K8s提供了准备就绪探针以检测和缓解这些情况。装有报告其容器尚未就绪的容器的容器无法通过Kubernetes Services接收流量。