负载均衡 Kubernetes 中的应用程序
Load Balancing an application in Kubernetes
假设我有两个部署,其中包含后端应用程序的两个实例。 (而不是让一个部署有多个副本,因为它们需要进行不同的配置)。
你们如何在两者之间进行负载平衡?经典的方法是使用两个后端设置 HAProxy。这在 Kubernetes 的上下文中听起来正确吗?有没有更好的方法在单个 Ingress Controller 资源上公开两个部署?
您可以定义一个Service that will be determined by labels selectors。对服务的请求将分布在部署中(与入口相同)
示例:
apiVersion: v1
kind: Service
metadata:
labels:
app: my-deployments
spec:
ports:
- port: 80
selector:
app: my-deployments
理想情况下,您应该 运行 一个具有多个副本的部署。定义选择后端的服务对象 pods。服务对象以循环方式自动负载平衡后端 pods。
如果您想对多个部署对象进行负载平衡,则为部署定义一个服务,ServiceA 和 serviceB。您应该 运行 ha-proxy 负载平衡 ServiceA 和 serviceB 之间的流量。
我们建议您选择第一种方法,除非您有充分的理由考虑第二种方法
假设我有两个部署,其中包含后端应用程序的两个实例。 (而不是让一个部署有多个副本,因为它们需要进行不同的配置)。
你们如何在两者之间进行负载平衡?经典的方法是使用两个后端设置 HAProxy。这在 Kubernetes 的上下文中听起来正确吗?有没有更好的方法在单个 Ingress Controller 资源上公开两个部署?
您可以定义一个Service that will be determined by labels selectors。对服务的请求将分布在部署中(与入口相同)
示例:
apiVersion: v1
kind: Service
metadata:
labels:
app: my-deployments
spec:
ports:
- port: 80
selector:
app: my-deployments
理想情况下,您应该 运行 一个具有多个副本的部署。定义选择后端的服务对象 pods。服务对象以循环方式自动负载平衡后端 pods。
如果您想对多个部署对象进行负载平衡,则为部署定义一个服务,ServiceA 和 serviceB。您应该 运行 ha-proxy 负载平衡 ServiceA 和 serviceB 之间的流量。
我们建议您选择第一种方法,除非您有充分的理由考虑第二种方法