首页 > 解决方案 > Istio 会话亲和性与加权负载均衡器

问题描述

我正在尝试使用 Istio 加权负载平衡来实现会话粘性,但 Istio 忽略了会话配置。我所做的:

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: test-app-vs
  namespace: demo
spec:
  gateways:
    - test-app-gw
  hosts:
    - "demo-app.test.cloud"
  http:
  - route:
    - destination:
        host: test-app.demo.svc.cluster.local
        subset: v1
      weight: 50
    - destination:
        host: test-app.demo.svc.cluster.local
        subset: v2
      weight: 50
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: test-app-dr
  namespace: demo
spec:
  host: test-app.demo.svc.cluster.local
  subsets:
  - name: v1
    labels:
      version: v1
      app: test-app
    trafficPolicy:
      loadBalancer:
       consistentHash:
         httpCookie:
           name: x-canary-user
           ttl: 0s
  - name: v2
    labels:
      version: v2
      app: test-app
    trafficPolicy:
      loadBalancer:
       consistentHash:
         httpCookie:
           name: x-canary-user
           ttl: 0s

我也尝试设置trafficPolicy到该spec部分,但得到了相同的结果。它设置了 cookie,我可以x-canary-user在我的浏览器请求中看到没有负载平衡影响

标签: kubernetesistio

解决方案


它可能还没有合并到master。https://github.com/istio/istio/pull/6742 我已向您提供了拉取请求的链接,该链接应该涵盖此内容,但测试失败。我们应该等待新版本。


推荐阅读