管理流量

现在我们已经安装了中转代理,我们将学习如何将流量拆分到服务之间。

在服务之间拆分流量

Bookinfo 应用程序有三个版本的 reviews 服务。您可以将流量拆分到这些版本之间,以测试新功能或执行 A/B 测试。

让我们配置流量路由,将 90% 的请求发送到 reviews v1,将 10% 的请求发送到 reviews v2

$ kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: reviews
spec:
  parentRefs:
  - group: ""
    kind: Service
    name: reviews
    port: 9080
  rules:
  - backendRefs:
    - name: reviews-v1
      port: 9080
      weight: 90
    - name: reviews-v2
      port: 9080
      weight: 10
EOF

要确认 100 个请求中大约 10% 的流量会流向 reviews-v2,您可以运行以下命令

$ kubectl exec deploy/curl -- sh -c "for i in \$(seq 1 100); do curl -s http://productpage:9080/productpage | grep reviews-v.-; done"

您会注意到大多数请求都流向 reviews-v1。如果您在浏览器中打开 Bookinfo 应用程序并多次刷新页面,您可以确认这一点。请注意,来自 reviews-v1 的请求没有星级,而来自 reviews-v2 的请求有黑色星级。

后续步骤

本节介绍了环境模式的入门指南。您可以继续到 清理 部分以删除 Istio,或者继续探索 环境模式用户指南,以了解更多关于 Istio 的功能和特性。

此信息是否有用?
您对改进有任何建议吗?

感谢您的反馈!