管理流量

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

在服务之间分割流量

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

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

  1. $ kubectl apply -f - <<EOF
  2. apiVersion: gateway.networking.k8s.io/v1
  3. kind: HTTPRoute
  4. metadata:
  5. name: reviews
  6. spec:
  7. parentRefs:
  8. - group: ""
  9. kind: Service
  10. name: reviews
  11. port: 9080
  12. rules:
  13. - backendRefs:
  14. - name: reviews-v1
  15. port: 9080
  16. weight: 90
  17. - name: reviews-v2
  18. port: 9080
  19. weight: 10
  20. EOF

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

  1. $ kubectl exec deploy/sleep -- 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 的请求有黑色评星。

下一步

本节总结了 Ambient 模式的入门指南。 您可以继续前往清理部分以删除 Istio, 或继续探索 Ambient 模式用户指南以了解有关 Istio 特性和功能的更多信息。