Docker K8s不同部署/复制集之间的负载平衡

Docker K8s不同部署/复制集之间的负载平衡,docker,kubernetes,google-kubernetes-engine,kubernetes-ingress,Docker,Kubernetes,Google Kubernetes Engine,Kubernetes Ingress,我们有一个系统,基于地理位置有两个端点。e、 东边的网址,西边的网址。 我们的一个应用程序需要在这两个URL之间实现负载平衡。在使用者应用程序中,使用相同的映像创建了两个部署,但环境变量不同,例如url=east\u url、url=west\u url 在部署之后,我有以下运行pod,每个pod都有标签:app=consumer app和region=east或region=west 消费者-east-pod-1 消费者-east-pod-2 消费者-west-pod-1 消费者-west-p

我们有一个系统,基于地理位置有两个端点。e、 东边的网址,西边的网址。 我们的一个应用程序需要在这两个URL之间实现负载平衡。在使用者应用程序中,使用相同的映像创建了两个部署,但环境变量不同,例如url=east\u url、url=west\u url

在部署之后,我有以下运行pod,每个pod都有标签:app=consumer app和region=east或region=west

消费者-east-pod-1 消费者-east-pod-2 消费者-west-pod-1 消费者-west-pod-2 当我用selector:app=consumer-app创建clusterIP服务时,不知何故,它只拾取一个复制集。我只是好奇,在kubernates中,是否真的可以允许通过不同的部署备份服务


我能想到的另一种方法是创建2个服务,并让入口控制器对其进行负载平衡,这可能吗?我们使用Kong作为入口控制器。我正在寻找类似openshift的东西,它可以有可选的后端来为路线服务

我丢失了east ReplicaSet的一个标签,在我添加了app:consumerAPP之后,它现在可以正常工作了。 谢谢

TL;医生:使用ISTIO

使用,您可以创建:

VirtualService定义了一组流量路由规则,以便在 一个主机被寻址。每个路由规则定义了每个路由的匹配条件 特定协议的通信量。如果流量匹配,则为 发送到指定的目标服务或其定义的子集/版本 在登记处

VirtualService将允许您根据URI向不同的后端发送流量

现在,如果您计划像A/B测试一样执行,那么可以使用ISTIO的目标规则:[

DestinationRule定义应用于计划用于 路由后的服务已发生

可以通过定义命名子集来指定特定于版本的策略 以及覆盖在服务级别指定的设置

1.-如果您使用的是GKE,可以在


2.-如果您使用的是在虚拟机上运行的K8s,则可以找到安装过程

您也可以使用两个独立的服务,都支持相同的入口。这样,east的流量将流向east pods,west流向west pods。如果它们都使用相同的服务,则它们都将接收混合在一起的流量,因此没有geo location@PatrickW是否可以创建一个指向2个url或ip的k8s服务,并能够在端点上定义活动性检查?每个入口可以有多个url