迫使Kubernetes在所有Pod上调度请求

时间:2019-08-22 08:43:40

标签: kubernetes load-balancing

对于我的一个项目,我正在Kubernetes上部署应用程序。

简而言之,该应用程序(在我的开发机中)部署在Node内的8个Pod(1 / CPU核心)上。 每个Pod一次只能处理一个请求(我用线程池强制限制-CPU是这里的瓶颈)。

我想强制Kubernetes负载平衡器在Pod忙时将传入请求发送到下一个Pod。

你们当中有人知道如何实现吗?

1 个答案:

答案 0 :(得分:1)

您可以在IPVS模式下运行Kube-proxy,该模式允许根据一些不同的算法路由服务。您可以在documentation herethis blog中找到更多信息。来自博客:

  • 您将需要运行带有标志--proxy-mode=ipvs的Kube代理
  • 并添加标志--ipvs-scheduler以选择选项之一

    rr: round-robin

    lc: least connection

    dh: destination hashing

    sh: source hashing

    sed: shortest expected delay

    nq: never queue

作为先决条件,节点将需要安装以下模块:

ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4

如果您想做比这更复杂的路由-那么我会考虑将服务网格作为一种选择