Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-cluster: Service graph support with virtual service routing (multiple control plane) #1366

Closed
israel-hdez opened this issue Aug 23, 2019 · 0 comments · Fixed by #1625
Closed
Labels
enhancement This is the preferred way to describe new end-to-end features.

Comments

@israel-hdez
Copy link
Member

In a multi-cluster setup with multiple control planes, it is possible to load balance traffic using virtual services. Load-balancing can route traffic to local and remote services using a VS (see yaml example in #1364).

Currently, under this setup, some connections may be missing in the "Service graph":

image

In this scenario, the graph is generating connections from the productpage local service to the details-small and reviews-small remote services, and to the reviews local service. However, a connection to the details local service is missing, and is wrongly being flagged as unused.

The goal is to adequately and consistently resolve traffic to, both, local and remote services when a VirtualService is involved.

@israel-hdez israel-hdez added the enhancement This is the preferred way to describe new end-to-end features. label Aug 23, 2019
israel-hdez added a commit to israel-hdez/swscore that referenced this issue Aug 29, 2019
It was assumed that MESH_INTERNAL ServiceEntries refer to services in the local cluster. But when Istio is setup in a multi-cluster scenario, MESH_INTERNAL ServiceEntries are also used to route traffic to services in remote clusters.

ServiceEntries that route traffic to remote clusters must have a hostnames configured of the form remote_svc_name.remote_ns_name.global. I.e. always have three entries and last entry is the static string "global". This helps to clearly differentiate ServiceEntries are referring to local services and the ones that are routing traffic to remote clusters. This changes are implementing this logic.

Fixes kiali#1364, kiali#1365, kiali#1366, kiali#1367
jshaughn pushed a commit that referenced this issue Sep 3, 2019
It was assumed that MESH_INTERNAL ServiceEntries refer to services in the local cluster. But when Istio is setup in a multi-cluster scenario, MESH_INTERNAL ServiceEntries are also used to route traffic to services in remote clusters.

ServiceEntries that route traffic to remote clusters must have a hostnames configured of the form remote_svc_name.remote_ns_name.global. I.e. always have three entries and last entry is the static string "global". This helps to clearly differentiate ServiceEntries are referring to local services and the ones that are routing traffic to remote clusters. This changes are implementing this logic.

Fixes #1364, #1365, #1366, #1367
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement This is the preferred way to describe new end-to-end features.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant