Istio 如果负载平衡,流量不会通过出口。简单:PASSTHROUGH
我有两个节点的卡夫卡集群。节点1具有ip 1.1.1.1,节点2具有ip 2.2.2.2 所有交通必须通过出口控制器。 如果来自应用程序的客户端使用ip 1.1.1.1对节点进行寻址,那么他应该在不与Istio进行任何平衡的情况下联系该节点 配置: apiVersion:networking.istio.io/v1alpha3 种类:ServiceEntry 元数据: 姓名:卡夫卡 规格: 主持人: -卡夫卡主持人 地址: - 1.1.1.1/32 - 2.2.2.2/32 端口: -电话:9092 姓名:tcp卡夫卡 协议:TCP 位置:外部网格 分辨率:静态 端点: -地址:1.1.1.1 -地址:2.2.2.2 --- apiVersion:networking.istio.io/v13 种类:命运法则 元数据: 姓名:卡夫卡 规格: 主持人:卡夫卡 交通政策: 负载平衡器: 简单:直通#禁用负载平衡器 --- apiVersion:networking.istio.io/v13 种类:网关 元数据: 姓名:卡夫卡 规格: 选择器: istio:istio出口网关 服务器: -端口: 电话:9092 姓名:tcp卡夫卡 协议:TCP 主持人: -卡夫卡主持人 --- apiVersion:networking.istio.io/v13 种类:虚拟服务 元数据: 姓名:卡夫卡 规格: 主持人: -卡夫卡主持人 网关: -网孔 -卡夫卡 tcp: -匹配: -网关: -网孔 目的子网: - 1.1.1.1/32 - 2.2.2.2/32 港口:9092 路线: -目的地: 主机:istio出口网关 端口: 电话:9092 -匹配: -网关: -卡夫卡 港口:9092 路线: -目的地: 主持人:卡夫卡 端口: 电话:9092 体重:100 在出口控制器日志中,流量到达出口控制器而不出:Istio 如果负载平衡,流量不会通过出口。简单:PASSTHROUGH,istio,envoyproxy,Istio,Envoyproxy,我有两个节点的卡夫卡集群。节点1具有ip 1.1.1.1,节点2具有ip 2.2.2.2 所有交通必须通过出口控制器。 如果来自应用程序的客户端使用ip 1.1.1.1对节点进行寻址,那么他应该在不与Istio进行任何平衡的情况下联系该节点 配置: apiVersion:networking.istio.io/v1alpha3 种类:ServiceEntry 元数据: 姓名:卡夫卡 规格: 主持人: -卡夫卡主持人 地址: - 1.1.1.1/32 - 2.2.2.2/32 端口: -电话:90
[Envoy (Epoch 0)] [2020-07-31 13:52:21.351][58][warning][upstream] [external/envoy/source/common/upstream/original_dst_cluster.cc:76] original_dst_load_balancer: No downstream connection or no original_dst.
[2020-07-31T13:52:11.385Z] "- - -" 0 UH "-" "-" 0 0 0 - "-" "-" "-" "-" "-" - - 10.128.19.132:9092 10.128.13.52:47984 - -
附言。
如果在DestinationRule中设置loadBalancer:ROUND_ROBIN或其他,则一切正常,流量流向外部节点。
但无法保证当从应用程序访问ip 1.1.1.1时,流量将流向具有ip 1.1.1.1的外部服务器
Istio v1.1我认为您可以尝试在DestinationRule中为此设置粘性会话 来自istio的示例: 负载平衡器设置 应用于特定目标的负载平衡策略。有关更多详细信息,请参阅特使的负载平衡 例如,以下规则对所有到分级服务的流量使用循环负载平衡策略 以下示例使用用户cookie作为哈希键,为同一个分级服务的分级服务基于哈希的负载平衡器设置粘性会话 这是v1.1的链接
有一个有粘性的会话
希望您觉得这很有用。一致哈希负载平衡策略仅适用于HTTP连接。在我的例子中,tcp连接不需要负载平衡。如果kafka客户端转到节点1.1.1.1,与节点2.2.2.2建立连接,这将很奇怪,因为Istio将平衡负载
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: bookinfo-ratings
spec:
host: ratings.prod.svc.cluster.local
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: bookinfo-ratings
spec:
host: ratings.prod.svc.cluster.local
trafficPolicy:
loadBalancer:
consistentHash:
httpCookie:
name: user
ttl: 0s