在Kubernetes中对应用程序进行负载平衡

时间:2019-03-21 13:43:59

标签: kubernetes load-balancing

让我们说我有两个部署,其中包含一个后端应用程序的两个实例。 (而不是一个部署有多个副本,因为它们需要配置不同)。

你们将如何在两者之间进行负载平衡?经典方法是使用两个后端设置HAProxy。在Kubernetes的背景下听起来正确吗?有没有更好的方法可以在单个Ingress Controller资源上公开两个部署?

2 个答案:

答案 0 :(得分:2)

您可以定义由Service确定的labels selectors。对服务的请求将分散在各个部署中(与入口相同)

示例:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: my-deployments
spec:
  ports:
  - port: 80
  selector:
    app: my-deployments

答案 1 :(得分:1)

理想情况下,您应该运行一个具有多个副本的部署。定义服务对象,选择后端容器。服务对象以循环方式自动平衡后端pod的负载。

如果要对多个部署对象进行负载平衡,则为部署分别定义一个服务,即ServiceA和serviceB。您应该正在运行ha-proxy负载平衡ServiceA和serviceB之间的流量。

我们建议您选择第一种方法,除非您有充分的理由考虑采用第二种方法