Skip to content

Gateway locality not observed with multi-cluster / multi-network mesh #18671

@ayj

Description

@ayj

I'm trying to setup a mesh with three clusters on two networks. The simpler two-cluster/two-network and two-cluster/same-network mostly work. When combining the two configurations into a single mesh I've observed that the gateways are sometimes routing to other gateways when local endpoints are available.

For example, Cluster A's ingress gateway routes to Cluster B's ingress even though they're on the same network. Or Cluster's ingress is routed to Cluster C on a different network even though Cluster A/B have local endpoints ready.

Setup:

Cluster A and B are on vpc0. Cluster C is on vpc1. The control plane is replicated in each cluster. The meshnetwork are almost identical in each cluster (see below) with one exception - the local kube-apiserver is always named Kubernetes instead of cluster's unique ID. I've also plumbed through the network name to the ingress and sidecar proxies.

      # ClusterA's version
      meshNetworks:
        networks:
          vpc0:
            endpoints:
            - fromRegistry: Kubernetes
            - fromRegistry: <clusterB ID>
            gateways:
            - address: <ClusterA ingress IP>
              port: 443
            - address: <ClusterB ingress IP>
              port: 443
          vpc1:
            endpoints:
            - fromRegistry: <clusterC ID>
            gateways:
            - address: <ClusterC ingress IP>
              port: 443

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions