kmesh-net / kmesh

High Performance ServiceMesh Data Plane Based on Programmable Kernel
https://kmesh.net
Apache License 2.0
361 stars 46 forks source link

EDS ACK should contains all eds cluster names #453

Closed hzxuzhonghu closed 6 days ago

hzxuzhonghu commented 1 week ago

What happened:

Istio can incrementally push eds, when a specific endpoints updated because of scale in/out

In this case scaling httpbin application we can see curl pilotIP:8080/debug/adsz?proxyID=kmesh |jq

The watched eds changed:

 "watches": {
        "type.googleapis.com/envoy.config.cluster.v3.Cluster": [],
        "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment": [
          "outbound|443||kubernetes.default.svc.cluster.local",
          "outbound|53||kube-dns.kube-system.svc.cluster.local",
          "outbound|9153||kube-dns.kube-system.svc.cluster.local",
          "outbound|80||sleep.default.svc.cluster.local",
          "outbound|8000||httpbin.default.svc.cluster.local",
          "outbound|15010||istiod.istio-system.svc.cluster.local",
          "outbound|15012||istiod.istio-system.svc.cluster.local",
          "outbound|443||istiod.istio-system.svc.cluster.local",
          "outbound|15014||istiod.istio-system.svc.cluster.local"
        ],
        "type.googleapis.com/envoy.config.listener.v3.Listener": []

changed to

"watches": {
        "type.googleapis.com/envoy.config.cluster.v3.Cluster": [],
        "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment": [
          "outbound|8000||httpbin.default.svc.cluster.local"
        ],
        "type.googleapis.com/envoy.config.listener.v3.Listener": []
      }

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

Environment: