我在使用istio的金丝雀部署中遇到了pod到pod之间的通信问题。我能够使用虚拟服务中的源标签和目的地规则处理到达istio的外部流量,但如何处理内部pod到pod流量应该针对同一版本的pod。Pod到Pod的流量应适用于相同版本的Pod
fumotvh31#
如果设置正确,您应该有两个不同的部署,因为Kubernetes中的金丝雀部署将使用两个Deployment完成。一个具有标签version: v1,另一个具有标签version: v2,您可能在DestinationRule.Alos中的 spec.subsets 字段中使用了它。在virtual service中,它的配置包括一个目的地路由规则,该规则将X%的流量发送到版本v1(生产构建)和到版本v2(金丝雀构建)的流量的Y%。这在spec:http:route:weight规范中可以看到。Pod到Pod的通信将自动遵循Istio DestinationRules中定义的规则。
version: v1
version: v2
virtual service
spec:http:route:weight
1条答案
按热度按时间fumotvh31#
如果设置正确,您应该有两个不同的部署,因为Kubernetes中的金丝雀部署将使用两个Deployment完成。
一个具有标签
version: v1
,另一个具有标签version: v2
,您可能在DestinationRule.Alos中的 spec.subsets 字段中使用了它。在virtual service
中,它的配置包括一个目的地路由规则,该规则将X%的流量发送到版本v1(生产构建)和到版本v2(金丝雀构建)的流量的Y%。这在spec:http:route:weight
规范中可以看到。Pod到Pod的通信将自动遵循Istio DestinationRules中定义的规则。