hashicorp / consul

Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
https://www.consul.io
Other
28.39k stars 4.43k forks source link

"in service mesh with proxy and gateway" only shown on service list not service instance list #11872

Open lkysow opened 2 years ago

lkysow commented 2 years ago

Overview of the Issue

Consul 1.11.1

On http://localhost:8500/ui/dc1/services it says in service mesh with proxy and gateway:

image

On instance list page (http://localhost:8500/ui/dc1/services/frontend/instances) it only says in service mesh with proxy. It doesn't say gateway:

image

johncowen commented 2 years ago

Just a small note here, sounds like we need some sort of backend support to be able to do this. Currently discussing some sort of solution to this.

johncowen commented 2 years ago

@msiege2 wasn't sure if this was on your radar or not, so thought I'd give you a quick ping. I didn't want to remove the ui label here as the problem does surface in the UI, even though I think the fix is adding information we don't currently have to the backend HTTP API (as far as I understand it).

Wanted to make sure this was on your radar, as I know often folks see the ui label and leave it for me to pick up. This one is one that someone else will need to pick up. ty!

henriTheSecond commented 2 years ago

Hi everyone,

I might be seeing something related to this issue in the UI. In the screenshot both instances have sidecars running, but the UI does only show "in service mesh with proxy" for the first instance. I added a screenshot below. There is no functional issue: everything works as expected. Requests get loadbalanced to both instances. It seems that this is only something GUI-related.

The /v1/catalog/connect/service6000 api-endpoint returns the following json (and shows that every instance has a proxy associated):

[
    {
        "ID": "6aadc940-f5d8-a338-d21b-d911e72f78f3",
        "Node": "client-1",
        "Address": "172.25.231.150",
        "Datacenter": "dc1",
        "TaggedAddresses": {
            "lan": "172.25.231.150",
            "lan_ipv4": "172.25.231.150",
            "wan": "172.25.231.150",
            "wan_ipv4": "172.25.231.150"
        },
        "NodeMeta": {
            "consul-network-segment": ""
        },
        "ServiceKind": "connect-proxy",
        "ServiceID": "service6000-0-0-sidecar-proxy",
        "ServiceName": "service6000-0-0-sidecar-proxy",
        "ServiceTags": [
            "proxy"
        ],
        "ServiceAddress": "",
        "ServiceTaggedAddresses": {
            "consul-virtual": {
                "Address": "240.0.0.2",
                "Port": 6001
            }
        },
        "ServiceWeights": {
            "Passing": 1,
            "Warning": 1
        },
        "ServiceMeta": {},
        "ServicePort": 6001,
        "ServiceSocketPath": "",
        "ServiceEnableTagOverride": false,
        "ServiceProxy": {
            "DestinationServiceName": "service6000",
            "DestinationServiceID": "service6000-0-0",
            "LocalServiceAddress": "10.254.2.178",
            "LocalServicePort": 80,
            "Mode": "",
            "Config": {
                "envoy_extra_static_clusters_json": "{\"connect_timeout\":\"3.000s\",\"dns_lookup_family\":\"V4_ONLY\",\"lb_policy\":\"ROUND_ROBIN\",\"load_assignment\":{\"cluster_name\":\"collector_cluster_name\",\"endpoints\":[{\"lb_endpoints\":[{\"endpoint\":{\"address\":{\"socket_address\":{\"address\":\"172.25.231.150\",\"port_value\":9411,\"protocol\":\"TCP\"}}}}]}]},\"name\":\"collector_cluster_name\",\"type\":\"STATIC\"}",
                "envoy_prometheus_bind_addr": "0.0.0.0:1999",
                "envoy_tracing_json": "{\"http\":{\"name\":\"envoy.tracers.zipkin\",\"typedConfig\":{\"@type\":\"type.googleapis.com/envoy.config.trace.v3.ZipkinConfig\",\"collector_cluster\":\"collector_cluster_name\",\"collector_endpoint_version\":\"HTTP_JSON\",\"collector_endpoint\":\"/api/v2/spans\",\"shared_span_context\":false}}}",
                "protocol": "http"
            },
            "Upstreams": [
                {
                    "DestinationType": "service",
                    "DestinationName": "whoami",
                    "Datacenter": "",
                    "LocalBindAddress": "0.0.0.0",
                    "LocalBindPort": 21000,
                    "Config": {
                        "protocol": "http"
                    },
                    "MeshGateway": {}
                }
            ],
            "MeshGateway": {},
            "Expose": {
                "Paths": [
                    {
                        "ListenerPort": 6003,
                        "Path": "/",
                        "LocalPathPort": 80
                    }
                ]
            }
        },
        "ServiceConnect": {},
        "CreateIndex": 81,
        "ModifyIndex": 92
    },
    {
        "ID": "6aadc940-f5d8-a338-d21b-d911e72f78f3",
        "Node": "client-1",
        "Address": "172.25.231.150",
        "Datacenter": "dc1",
        "TaggedAddresses": {
            "lan": "172.25.231.150",
            "lan_ipv4": "172.25.231.150",
            "wan": "172.25.231.150",
            "wan_ipv4": "172.25.231.150"
        },
        "NodeMeta": {
            "consul-network-segment": ""
        },
        "ServiceKind": "connect-proxy",
        "ServiceID": "service6000-0-1-sidecar-proxy",
        "ServiceName": "service6000-0-1-sidecar-proxy",
        "ServiceTags": [
            "proxy"
        ],
        "ServiceAddress": "",
        "ServiceTaggedAddresses": {
            "consul-virtual": {
                "Address": "240.0.0.2",
                "Port": 6006
            }
        },
        "ServiceWeights": {
            "Passing": 1,
            "Warning": 1
        },
        "ServiceMeta": {},
        "ServicePort": 6006,
        "ServiceSocketPath": "",
        "ServiceEnableTagOverride": false,
        "ServiceProxy": {
            "DestinationServiceName": "service6000",
            "DestinationServiceID": "service6000-0-1",
            "LocalServiceAddress": "10.254.2.194",
            "LocalServicePort": 80,
            "Mode": "",
            "Config": {
                "envoy_extra_static_clusters_json": "{\"connect_timeout\":\"3.000s\",\"dns_lookup_family\":\"V4_ONLY\",\"lb_policy\":\"ROUND_ROBIN\",\"load_assignment\":{\"cluster_name\":\"collector_cluster_name\",\"endpoints\":[{\"lb_endpoints\":[{\"endpoint\":{\"address\":{\"socket_address\":{\"address\":\"172.25.231.150\",\"port_value\":9411,\"protocol\":\"TCP\"}}}}]}]},\"name\":\"collector_cluster_name\",\"type\":\"STATIC\"}",
                "envoy_prometheus_bind_addr": "0.0.0.0:1999",
                "envoy_tracing_json": "{\"http\":{\"name\":\"envoy.tracers.zipkin\",\"typedConfig\":{\"@type\":\"type.googleapis.com/envoy.config.trace.v3.ZipkinConfig\",\"collector_cluster\":\"collector_cluster_name\",\"collector_endpoint_version\":\"HTTP_JSON\",\"collector_endpoint\":\"/api/v2/spans\",\"shared_span_context\":false}}}",
                "protocol": "http"
            },
            "Upstreams": [
                {
                    "DestinationType": "service",
                    "DestinationName": "whoami",
                    "Datacenter": "",
                    "LocalBindAddress": "0.0.0.0",
                    "LocalBindPort": 21000,
                    "Config": {
                        "protocol": "http"
                    },
                    "MeshGateway": {}
                }
            ],
            "MeshGateway": {},
            "Expose": {
                "Paths": [
                    {
                        "ListenerPort": 6008,
                        "Path": "/",
                        "LocalPathPort": 80
                    }
                ]
            }
        },
        "ServiceConnect": {},
        "CreateIndex": 105,
        "ModifyIndex": 118
    }
]

afbeelding