在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,與虛擬服務中配置的權重相同。