CoreDNS vs Route53 — Zonal affinity
Scenario A: ClusterIP / Topology Aware Routing. Scenario B: Internal NLB + Route53.
Scenario A — East-west: Pod gọi ClusterIP service (CoreDNS relevant)
Topology Aware RoutingEast-west trafficClusterIP service
CoreDNS role: Resolve
Ai quyết định AZ? kube-proxy — nó giữ bảng endpoint list và dùng
Config cần bật:
CoreDNS trong scenario này không cần thay đổi gì — nó trả ClusterIP như bình thường.
CoreDNS role: Resolve
my-svc.namespace.svc.cluster.local → trả về ClusterIP (là virtual IP, không đổi theo AZ)Ai quyết định AZ? kube-proxy — nó giữ bảng endpoint list và dùng
topology-mode: Auto để ưu tiên endpoint cùng AZConfig cần bật:
service.kubernetes.io/topology-mode: "Auto" trên ClusterIP serviceCoreDNS trong scenario này không cần thay đổi gì — nó trả ClusterIP như bình thường.
Scenario B — Pod gọi Internal NLB (Route53 relevant, không phải CoreDNS)
NLB Zonal AffinityRoute53 levelNorth-south traffic
CoreDNS role: Chỉ là forwarder — nhận DNS query từ Pod, forward lên Route53 resolver (169.254.169.253)
Ai quyết định AZ? Route53 — dựa vào source IP của DNS query (là IP của CoreDNS pod hoặc node) để detect AZ, rồi trả về NLB ENI IP cùng AZ
Caveat quan trọng: Nếu CoreDNS pod chạy ở AZ-a nhưng Pod caller ở AZ-b → Route53 trả ENI AZ-a → vẫn cross-AZ! Đây là lý do cần
Config cần bật:
CoreDNS service không cần thêm topology-mode — nó không route traffic, chỉ forward DNS.
CoreDNS role: Chỉ là forwarder — nhận DNS query từ Pod, forward lên Route53 resolver (169.254.169.253)
Ai quyết định AZ? Route53 — dựa vào source IP của DNS query (là IP của CoreDNS pod hoặc node) để detect AZ, rồi trả về NLB ENI IP cùng AZ
Caveat quan trọng: Nếu CoreDNS pod chạy ở AZ-a nhưng Pod caller ở AZ-b → Route53 trả ENI AZ-a → vẫn cross-AZ! Đây là lý do cần
topologySpreadConstraints cho cả CoreDNS deployment.Config cần bật:
dns_record.client_routing_policy: availability_zone_affinity — trên NLBtopologySpreadConstraints — cho CoreDNS pods phân bổ đều 3 AZCoreDNS service không cần thêm topology-mode — nó không route traffic, chỉ forward DNS.