在ASM中安装了Waypoint代理后,您可以使用7层负载均衡实现服务之间按比例分发流量。本文介绍如何为Bookinfo应用配置服务间按比例分发流量。
前提条件
已完成部署示例应用程序并开启ambient实现加密通信中的全部操作。
已部署Waypoint,并配置标签使default命名空间的流量必须经过Waypoint。
操作步骤
Bookinfo应用有三个版本的reviews服务。以下步骤将通过部署虚拟服务来按比例的在v1和v2版本之间分配流量。
配置流量规则,将目标为
reivews
服务的请求90%发往reviews-v1
,10%发往reviews-v2
。kubectl apply -f - <<EOF apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - name: route route: - destination: host: reviews-v1 weight: 90 - destination: host: reviews-v2 weight: 10 EOF
从sleep发起100个请求。
export RESULT=$(kubectl exec deploy/sleep -- sh -c "for i in \$(seq 1 100); do curl -s http://productpage:9080/productpage | grep reviews-v.-; done")
验证流量比例。
由于每次访问Bookinfo应用时,会返回两个相同的reviews版本。因此2中命令的输出数量为200个。
查看reviews-v1的数量。
echo $RESULT|grep reviews-v1 |wc -l
预期输出:
178
查看reviews-v2的数量。
echo $RESULT|grep reviews-v2 |wc -l
预期输出:
22
可以看到reviews-v1和reviews-v2的数量比例大约为9:1,与虚拟服务中配置的权重相同。
该文章对您有帮助吗?