# DNS resolution 재현 — variant=strict mode=mode2 **Date:** 2026-07-01_195854 · **ns:** dns-lab · **cluster:** homelab · backend-a=10.250.147.30 backend-b=10.250.27.55 > 초안(construction 로그). 기대 vs 실제 판정표가 아니라 '무엇을 어떻게 했고 그때 무엇이 보였나' 기록. ## 1. 변형 적용 적용: SE=strict, VS=80to443(no-retry), DR=tls(no-outlier) ## 2. BEFORE (gslb -> A,B 둘 다; STRICT는 endpoint 2개) ### before ``` dig : 10.250.27.55 -- endpoints -- ENDPOINT STATUS OUTLIER CHECK CLUSTER 10.250.27.55:443 HEALTHY OK outbound|443||gslb.lab.internal -- stats -- [cluster|443 cx] .membership_change: 5 .upstream_cx_active: 0 .upstream_cx_connect_fail: 0 .upstream_cx_destroy: 8 .upstream_cx_destroy_local: 4 .upstream_cx_destroy_local_with_active_rq: 0 .upstream_cx_destroy_remote: 4 .upstream_cx_destroy_remote_with_active_rq: 0 .upstream_cx_destroy_with_active_rq: 0 .upstream_cx_total: 8 [endpoint|443 cx] 10.250.27.55:443::cx_active::0 10.250.27.55:443::cx_total::0 10.250.27.55:443::rq_total::0 10.250.27.55:443::health_flags::healthy ``` ## 3. backend-a kill (DNS엔 A 잔존 = 죽은 IP) ### 3a. no-outlier/no-retry 구간 유실 10:59:08 who=backend-b code=200 10:59:08 who=backend-b code=200 10:59:09 who=backend-b code=200 10:59:09 who=backend-b code=200 10:59:09 who=backend-b code=200 10:59:10 who=backend-b code=200 10:59:10 who=backend-b code=200 10:59:11 who=backend-b code=200 10:59:11 who=backend-b code=200 10:59:12 who=backend-b code=200 10:59:12 who=backend-b code=200 10:59:12 who=backend-b code=200 10:59:13 who=backend-b code=200 10:59:13 who=backend-b code=200 10:59:14 who=backend-b code=200 10:59:14 who=backend-b code=200 10:59:14 who=backend-b code=200 10:59:15 who=backend-b code=200 10:59:15 who=backend-b code=200 10:59:16 who=backend-b code=200 10:59:16 who=backend-b code=200 10:59:17 who=backend-b code=200 10:59:17 who=backend-b code=200 10:59:17 who=backend-b code=200 10:59:18 who=backend-b code=200 10:59:18 who=backend-b code=200 10:59:19 who=backend-b code=200 10:59:19 who=backend-b code=200 10:59:19 who=backend-b code=200 10:59:20 who=backend-b code=200 10:59:20 who=backend-b code=200 10:59:21 who=backend-b code=200 10:59:21 who=backend-b code=200 10:59:22 who=backend-b code=200 10:59:23 who=backend-b code=200 ## 4. 복구: outlier(DR44) + retry(VS45) 적용 ### 4a. 복구 후 구간 10:59:32 who=backend-b code=200 10:59:32 who=backend-b code=200 10:59:33 who=backend-b code=200 10:59:33 who=backend-b code=200 10:59:33 who=backend-b code=200 10:59:34 who=backend-b code=200 10:59:34 who=backend-b code=200 10:59:35 who=backend-b code=200 10:59:35 who=backend-b code=200 10:59:36 who=backend-b code=200 10:59:36 who=backend-b code=200 10:59:36 who=backend-b code=200 10:59:37 who=backend-b code=200 10:59:37 who=backend-b code=200 10:59:38 who=backend-b code=200 10:59:38 who=backend-b code=200 10:59:38 who=backend-b code=200 10:59:39 who=backend-b code=200 10:59:39 who=backend-b code=200 10:59:40 who=backend-b code=200 10:59:40 who=backend-b code=200 10:59:41 who=backend-b code=200 10:59:41 who=backend-b code=200 10:59:41 who=backend-b code=200 10:59:42 who=backend-b code=200 10:59:42 who=backend-b code=200 10:59:43 who=backend-b code=200 10:59:43 who=backend-b code=200 10:59:43 who=backend-b code=200 10:59:44 who=backend-b code=200 10:59:44 who=backend-b code=200 10:59:45 who=backend-b code=200 10:59:45 who=backend-b code=200 10:59:46 who=backend-b code=200 10:59:46 who=backend-b code=200 10:59:46 who=backend-b code=200 ## 5. AFTER ### after ``` dig : 10.250.147.30 10.250.27.55 -- endpoints -- ENDPOINT STATUS OUTLIER CHECK CLUSTER 10.250.147.30:443 HEALTHY OK outbound|443||gslb.lab.internal 10.250.27.55:443 HEALTHY OK outbound|443||gslb.lab.internal -- stats -- [cluster|443 cx] .membership_change: 6 .upstream_cx_active: 0 .upstream_cx_connect_fail: 0 .upstream_cx_destroy: 8 .upstream_cx_destroy_local: 4 .upstream_cx_destroy_local_with_active_rq: 0 .upstream_cx_destroy_remote: 4 .upstream_cx_destroy_remote_with_active_rq: 0 .upstream_cx_destroy_with_active_rq: 0 .upstream_cx_total: 8 [endpoint|443 cx] 10.250.147.30:443::cx_active::0 10.250.147.30:443::cx_total::0 10.250.147.30:443::rq_total::0 10.250.147.30:443::health_flags::healthy 10.250.27.55:443::cx_active::0 10.250.27.55:443::cx_total::0 10.250.27.55:443::rq_total::0 10.250.27.55:443::health_flags::healthy ``` ## 6. 읽는 법: 3a에서 code!=200(연결실패=유실) 비율 vs 4a에서 0 수렴. ## 원상복구 힌트 ``` kubectl -n dns-lab scale deploy/backend-a --replicas=1 kubectl -n dns-lab apply -f /home/jinsoo/Documents/kakaopay/istio/scenarios/50-dns-resolution/42-virtualservice-80to443.yaml -f /home/jinsoo/Documents/kakaopay/istio/scenarios/50-dns-resolution/43-destinationrule-tls.yaml ```