对于我的一个项目,我正在Kubernetes上部署应用程序。
简而言之,该应用程序(在我的开发机中)部署在Node内的8个Pod(1 / CPU核心)上。 每个Pod一次只能处理一个请求(我用线程池强制限制-CPU是这里的瓶颈)。
我想强制Kubernetes负载平衡器在Pod忙时将传入请求发送到下一个Pod。
你们当中有人知道如何实现吗?
答案 0 :(得分:1)
您可以在IPVS模式下运行Kube-proxy,该模式允许根据一些不同的算法路由服务。您可以在documentation here和this 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
如果您想做比这更复杂的路由-那么我会考虑将服务网格作为一种选择