IT/기타 24

새벽 3시, CoreDNS NXDOMAIN 폭주로 잠을 못 잤다

처음엔 외부 API를 의심했다새벽 3시 12분. 슬랙 알림이 한 번에 17개 쌓였다. P99 외부 API 호출 latency가 평소 80ms에서 4초까지 튀었다. 처음엔 SaaS 벤더 쪽 장애인가 싶었는데, 우리 쪽 다른 서비스들도 다 같이 느려지고 있었다. 멘탈이 한번 나가고, 노트북을 켰다.결론부터 말하면 CoreDNS NXDOMAIN 폭주였다. 솔직히 DNS 문제는 항상 의심해야 한다는 걸 머리로는 알았는데, 실제로 새벽에 당해보니 또 한 번 새겼다. 우리 팀이 운영하는 EKS 클러스터, 노드 38대, 워크로드 약 400개 정도 되는 규모다.알림 내용은 단순했다. httpClient.get 호출 P99가 폭증 중이라는 거. 외부 결제 SaaS 호출이 대부분이라 벤더 status 페이지부터 봤다. 다..

IT/기타 2026.06.20

사실 내부적으로는 — Istio ambient mode ztunnel과 waypoint가 동작하는 방식

ambient mode가 Istio 1.24에서 GA된 게 2024년 말이다. 지난주에 우리 팀도 일부 네임스페이스를 sidecar에서 ambient로 옮기는 작업을 마무리했다. 옮기고 나서 가장 많이 받은 질문이 "그래서 mTLS는 누가 거는 거냐", "L7 정책은 어디서 검사되냐"였다. 문서를 봐도 그림 한 장으로 퉁쳐버리니까 막상 트러블슈팅을 시작하면 답답하다.그래서 이 글은 패킷이 Pod A에서 떠나서 Pod B에 도착할 때까지, 정확히 어떤 컴포넌트가 어떤 순서로 끼어드는지를 우리 팀이 확인하면서 정리한 내용이다. Istio 공식 문서가 적당히 추상화한 부분을 한 단계 더 내려가서 본다.sidecar 없는 데이터플레인이라는 말의 진짜 의미ambient mode의 가장 큰 광고 문구는 "sidec..

IT/기타 2026.06.19

cert-manager HTTP-01 challenge가 자꾸 timeout 나면 1.17 확인해보세요

한 줄 요약cert-manager 1.17부터 ACME challenge authorization timeout이 1분 → 2분으로 늘었다. 그동안 가끔씩 사라지던 그 timeout, 1.17 올리면 꽤 줄어든다.어떤 상황에서 만났나우리 팀 클러스터 중 하나가 EKS이고, NLB 뒤에 ingress-nginx, 그 뒤에 cert-manager로 Let's Encrypt 인증서를 발급받는 흔한 구성이다. 그런데 한 달에 한두 번 정도 갱신 시점에 이런 로그가 떴다.Failed to wait for order resource to become ready: order is in "errored" state:Failed to wait for authorization: context deadline exceede..

IT/기타 2026.06.14

Istio Ambient mode 내부 동작 - ztunnel과 waypoint proxy는 실제로 어떻게 패킷을 주고받는가

올해 KubeCon EU에서 가장 많이 들었던 단어 중 하나가 ambient mode였다. 사이드카 없이 mesh를 한다는 컨셉은 매력적이지만, "사이드카가 사라진 자리에서 트래픽은 도대체 어떤 경로를 타는가?"가 제대로 그려지지 않으면 운영이 어렵다. 우리 팀도 4월부터 스테이징 클러스터에 ambient mode를 깔고 한 달 넘게 트래픽 흐름을 들여다봤는데, 사실 내부적으로는 생각보다 단순하지 않다.이 글은 그 한 달 동안 tcpdump와 ztunnel 로그를 번갈아 보면서 정리한 내용이다. 1.24 기준이고, 일부는 1.25-rc 노트도 섞여 있다.ztunnel이 뜨는 순간 노드에서 일어나는 일ambient를 활성화하면 DaemonSet으로 ztunnel이 노드마다 한 개씩 깔린다. 그런데 ztun..

IT/기타 2026.06.13

ndots:1 한 줄 바꿨다가 클러스터 내부 DNS가 깨진 이야기

ndots가 뭐길래지난주 화요일이었다. 외부 API 호출이 많은 워크로드 하나가 P99 레이턴시가 갑자기 700ms를 넘기 시작했다. APM 그래프를 보니 외부 API 자체는 멀쩡한데 우리 쪽 클라이언트에서 응답을 받기 전까지의 시간이 길었다. 처음엔 또 NAT Gateway냐 싶었는데, 그건 아니었다.원인은 결국 DNS였다. 정확히는 ndots:5 였다. 그리고 그걸 ndots:1로 내리는 한 줄짜리 패치를 만들었다가, 다음날 아침에 멘탈이 나갔다.쿠버네티스에서 파드가 뜨면 /etc/resolv.conf에 기본적으로 이런 게 들어간다.search default.svc.cluster.local svc.cluster.local cluster.localnameserver 10.96.0.10options nd..

IT/기타 2026.06.11

Cilium vs Calico, eBPF 시대에 우리가 다시 고른 CNI

CNI 교체는 사실 자주 할 일이 아니다. 한 번 들어가면 클러스터 수명 내내 같이 가는 컴포넌트라 잘못 고르면 두고두고 후회한다. 우리 팀은 작년 4분기에 Calico로 운영하던 프로덕션 클러스터 3개를 Cilium으로 옮겼고, 그 후 약 8개월을 양쪽 다 운영해봤다. 아직 일부 레거시 클러스터는 Calico를 그대로 두고 있어서 비교가 가능한 상황이다.이번 KubeCon EU에서도 Cilium 세션이 절반은 되더라. CNCF 2025 연간 서베이에서 Cilium이 Calico랑 Flannel을 제치고 프로덕션 CNI 1위를 먹었다는 발표가 있었는데, 우리 팀이 옮길 때만 해도 그 정도까진 아니었다. 1년 사이에 분위기가 꽤 바뀐 셈이다.왜 옮겼는가솔직히 처음부터 옮길 생각은 없었다. Calico는 안..

IT/기타 2026.06.05

ingress-nginx EOL, Gateway API로 옮기는 실전 가이드

마이그레이션 전에 점검할 것ingress-nginx가 결국 작년 3월에 EOL됐다. 깃허브 저장소는 archived 처리됐고, 보안 패치도 더 이상 안 나온다. 그동안 미루고 미뤘는데 이제는 정말 도망갈 데가 없다. 우리 팀도 6월 들어서야 본격적으로 Gateway API 마이그레이션을 시작했고, 이 글은 그 과정에서 정리한 가이드다.처음에는 막막했다. Ingress 리소스가 200개가 넘는데 이걸 일일이 손으로 옮긴다고? 다행히 SIG-Network에서 올해 3월에 ingress2gateway 1.0을 정식 릴리스했다. 이걸 쓰면 대부분의 Ingress 리소스가 자동으로 변환된다. 물론 자동 변환이 모든 걸 해결해주지는 않는다는 게 함정이지만.본격적으로 시작하기 전에 두 가지를 먼저 확인했다.첫 번째는..

IT/기타 2026.06.03

Istio sidecar에서 ambient로 옮기다 일주일을 날렸다

왜 옮겼나지난주 얘기다. 우리 팀 서비스 메시를 Istio sidecar mode에서 ambient mode로 옮기다가, 새벽 2시에 사내 메신저가 폭주했다. 일주일 정도 마이그레이션 준비를 한 줄 알았는데, 사실은 그때부터가 진짜 시작이었다.이번 KubeCon Europe 2026(암스테르담)에서 Ambient Multicluster Beta가 발표된 걸 보고 팀에서 좀 들떴다. 우리는 클러스터가 4개라 진작에 ambient를 보고 있었는데, 멀티클러스터까지 시야에 들어오니 "지금 single cluster부터 옮겨두면 나중에 편하겠다"는 분위기였다. 그래서 진행한 건데, 결론부터 말하면 마이그레이션 자체는 책 그대로 됐다. 문제는 책에 안 나온 부분이었다.직접적인 이유는 메모리였다. 노드당 envoy..

IT/기타 2026.05.30

Linkerd 2.18을 다시 봤지만, 결국 옮기지 않은 이유

분기 OKR 중에 "Service Mesh 운영 단순화" 항목이 있었다. 우리 팀은 Istio Ambient를 작년 가을부터 운영 중인데, ztunnel 업그레이드 때마다 신경 쓸 게 많고, waypoint를 namespace 단위로 풀 때 라우팅 정책 디버깅이 여전히 만만치 않다. 작년에 Linkerd가 stable 보안 모델로 가는 동안 우리는 "Istio가 ambient만 잘 굴리면 Linkerd보다 가벼울 거다"라고 베팅했었다.그런데 4월에 Linkerd 2.18이 나오면서 동료 한 명이 "이제 GitOps 친화적으로 multicluster가 된다는데, 우리 멀티 리전 셋업이랑 잘 맞을 것 같지 않아?"라고 슬랙에 던졌다. 솔직히 한 번 더 비교해보지 않으면 찝찝할 것 같았다. 그래서 2주 정도 ..

IT/기타 2026.05.25

Istio Sidecar에서 Ambient로 점진적 마이그레이션, 우리 팀은 이렇게 했다

1. Ambient로 옮기기 전에 확인할 것Ambient mode가 Istio 1.24에서 GA로 찍힌 게 작년 말이다. 그동안 1.25, 1.26을 거치면서 production 사용 사례도 꽤 쌓였고, 2026년 초부터는 "이제 슬슬 옮겨도 되겠다"는 분위기가 우리 팀 안에서도 잡혔다. 사이드카가 안 좋아서가 아니라, Pod 하나당 envoy 컨테이너 하나씩 붙는 모델이 노드 수 200대 넘어가면서 점점 답답해졌다. 메모리 사용량의 상당 부분이 사이드카 envoy였고, 무엇보다 사이드카 버전 올릴 때마다 전체 Pod restart가 필요한 게 가장 큰 문제였다.이 글은 "Ambient 좋다, 옮겨라"는 류의 이야기는 아니다. 어떻게 끊김 없이 옮길지에 대한 실전 절차를 정리한다. 단번에 바꾸지 않는다...

IT/기타 2026.05.17