Hi,
I have a multi-cluster setup using the multiple control plane approach as described in https://istio.io/docs/setup/kubernetes/install/multicluster/gateways/.
I played a little in how to setup the ServiceEntries and Deployments. I ended with this:
In a “ClusterA”:
- A traffic generator deployment making requests to httpbin.bar.global. This deployment is in namespace “bookinfo” (nothing related to the bookinfo sample, I just reused the namespace).
- A ServiceEntry to capture requests to httpbin.bar.global and routing traffic to a remote cluster (let’s name it “ClusterB”). This service entry is created in the “test” namespace.
In ClusterB:
- I created the httpbin service using the samples/httpbin/httpbin.yaml file. I applied this file in the “bar” namespace.
All is working fine. Traffic is flowing good. But I have a question about the telemetry. In ClusterB, timeseries are being recorded like this:
istio_requests_total{
connection_security_policy="mutual_tls",
destination_app="httpbin",
destination_principal="cluster.local/ns/bar/sa/default",
destination_service="httpbin.bar.global",
destination_service_name="httpbin.bar.global",
destination_service_namespace="test",
destination_version="v1",
destination_workload="httpbin",
destination_workload_namespace="bar",
instance="172.17.0.18:42422",
job="istio-mesh",
permissive_response_code="none",
permissive_response_policyid="none",
reporter="destination",
request_protocol="http",
response_code="200",
response_flags="-",
source_app="unknown",
source_principal="cluster.local/ns/bookinfo/sa/default",
source_version="unknown",
source_workload="unknown",
source_workload_namespace="unknown"}
A want to emphasize that this is telemetry at ClusterB (the destination of the traffic). What I think is weird is that the destination_service_namespace label has “test” value. I want to ask if this is the intended behavior.
It’s weird because this is telemetry at ClusterB. I was expecting to see values from a point of view of ClusterB and since traffic is hitting the “httpbin” service in “bar” namespace, I was expecting a destination_service_namespace=“bar” label. I know that “default” “test” is the namespace of the ServiceEntry, but that is ClusterA.
Telemetry at ClusterA looks consistent.