localityLBSetting is not working

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: test-llb
spec:
host: ".cluster.local"
trafficPolicy:
outlierDetection:
consecutive5xxErrors: 7
interval: 10s
baseEjectionTime: 30s
maxEjectionPercent: 20
loadBalancer:
localityLbSetting:
distribute:
- from: ap-northeast-2/ap-northeast-2a/

to:
"ap-northeast-2/ap-northeast-2a/": 100
- from: ap-northeast-2/ap-northeast-2b/

to:
"ap-northeast-2/ap-northeast-2b/": 100
- from: ap-northeast-2/ap-northeast-2c/

to:
“ap-northeast-2/ap-northeast-2c/*”: 100

I set up the DestinationRule as above. However, instead of communicating only within the same zone as intended, it also communicates with services in different zones. What could have gone wrong?

Even though there are pods in the same zone, it communicates with pods in a different zone

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: blossomops
namespace: blossomops-dev
spec:
host: “*.cluster.local”
trafficPolicy:
outlierDetection:
consecutiveErrors: 7
interval: 30s
baseEjectionTime: 30s
loadBalancer:
localityLbSetting:
enabled: true

I’ve made these changes, but they are still not being applied. On the node, there are labels topology.kubernetes.io/region=ap-northeast-2 and topology.kubernetes.io/zone=ap-northeast-2c that indicate the region and availability zone

You should check the eds config dump, make sure the endpoint lb weight is set correctly