【问题标题】:Force Kubernetes to dispatch request over all Pods强制 Kubernetes 在所有 Pod 上分发请求
【发布时间】:2019-08-22 08:43:40
【问题描述】:

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

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

我想强制 Kubernetes 负载均衡器在 Pod 处于“忙碌”状态时将传入请求发送到下一个 Pod。

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

【问题讨论】:

    标签: kubernetes load-balancing


    【解决方案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
    

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

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 1970-01-01
      • 2018-04-29
      • 2018-09-14
      • 2020-10-08
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      相关资源
      最近更新 更多