Cloud Computing & MSA
347개의 글
파드가 ImagePullBackOff로 안 뜰 때
배포 롤아웃이 멈춰 있고 파드가 Running 으로 넘어가질 않는다. 상태를 보면 ErrImagePull 이 잠깐 떴다가 ImagePullBackOff 로 굳어 있다. 신규 서비스를 올릴 때도, 프…
Kafka 4.0에서 KRaft로 브로커 운영하기
Kafka를 몇 년째 ZooKeeper와 함께 운영해 온 입장에서, 4.0 릴리스 노트를 처음 봤을 때 가장 먼저 확인한 건 "우리 ZK 클러스터는 어떻게 되나"였다. 결론은 단순하다. 4.0 브로…
NetworkPolicy로 파드 트래픽 기본 차단하기
클러스터를 한참 운영하다 보면 어느 순간 깨닫는다. 같은 네임스페이스는 물론이고 네임스페이스를 넘어서도 파드끼리 TCP가 다 뚫려 있다는 사실을. 기본 상태의 쿠버네티스는 파드 간 통신을 전혀 막지…
GRR과 NRR을 같이 봐야 하는 이유
NRR 숫자 하나만 강조된 분기 리포트나 투자 자료는 흔하다. 그런데 NRR이 같아도 속사정은 전혀 다를 수 있다. GRR(총 매출 유지율)은 기존 고객에게서 매출이 얼마나 빠져나갔는지만 보는 지표…
AWS Bedrock을 쓰는 이유
AWS 위에서 서비스를 운영하는 팀에 있으면 'Claude 쓰고 싶은데 Anthropic 키 하나 받아서 쓰면 안 되냐'는 질문을 자주 받는다. 반대로 보안팀이나 재무팀에서는 'Bedrock으로 하…
cert-manager로 TLS 인증서 자동 발급하기
쿠버네티스에 서비스를 올리고 나면 꼭 밟는 단계가 TLS다. 예전에는 인증서 만료일을 캘린더에 적어두고 분기마다 갱신하던 시절이 있었는데, 클러스터 안에서는 그런 수동 작업을 cert-manager…
OpenTelemetry 계측은 왜 컨벤션보다 늦나
예전에 Jaeger로 분산 추적을 띄워보는 글 을 쓴 적이 있다. OpenTelemetry 계측을 붙인 서비스를 운영하다 보면 백엔드보다 계측 쪽에서 신경 쓸 일이 더 많다. 마침 OpenTelem…
ingress-nginx 은퇴, Gateway API로 이전하기
몇 년째 클러스터마다 기본으로 깔던 ingress-nginx인데, 이제 손을 떼야 할 때가 왔다. 2025년 11월 쿠버네티스 측에서 이 프로젝트를 은퇴시킨다는 공지가 나왔고, 남은 기간 동안 옮겨…
PSP 대신 Pod Security Admission 쓰기
클러스터를 오래 굴리다 보면 v1.25로 올리는 순간 PodSecurityPolicy(PSP)가 통째로 사라져 있는 걸 만난다. 예전에 PSP로 파드 권한을 조이던 매니페스트가 있었는데, 업그레이드…
Resilience4j로 MSA 장애 전파 막기
MSA로 서비스를 잘게 쪼개고 나면, 하나가 느려질 때 그 지연이 호출한 쪽으로 번지는 상황을 자주 만난다. 결제 서비스가 응답을 못 주면 주문 서비스 스레드가 거기서 대기하고, 그 스레드가 다 물…
External Secrets Operator로 AWS 비밀 동기화
EKS 클러스터를 운영하다 보면 DB 비밀번호나 API 키를 어디에 둘지가 늘 문제로 남는다. AWS Secrets Manager에는 이미 값이 있는데, 파드는 쿠버네티스 Secret 을 읽는다. …
쿠버네티스 파드가 Pending에서 안 뜰 때
새 노드에 파드를 올리거나 매니페스트를 손본 직후, 파드가 Pending 에서 한참을 안 넘어가는 상황은 운영하다 보면 주기적으로 만난다. 급하면 노드부터 하나 더 붙이고 싶어지는데, 원인을 안 보…
NetworkPolicy로 파드 통신 기본 차단하기
클러스터를 새로 받아서 파드를 몇 개 띄워보면 대개 놀란다. 아무 정책도 없는 상태에서는 네임스페이스가 달라도 파드끼리 서로 다 붙는다. 프론트엔드 파드에 셸을 열고 DB 파드 포트로 붙어보면 그냥…
Trivy로 CI 파이프라인에 배포 게이트 걸기
보안 스캔을 붙이자는 말은 어느 팀에서나 나오지만, 막상 도입하면 리포트만 쌓이고 배포는 그대로 나가는 경우를 자주 본다. 스캔 결과가 파이프라인을 멈추지 못하면 사실상 없는 것과 같다. 예전에 t…
RHEL 9에서 Podman rootless 컨테이너 운영하기
사내 서버를 Rocky 9로 올리면서 Docker를 그대로 쓸지 고민하는 상황이 종종 생긴다. RHEL 계열에는 이미 Podman이 기본 저장소에 들어 있고, 데몬을 띄우지 않는 구조라 운영 부담이…
Kafka 스키마를 안전하게 바꾸기 - Schema Registry와 Avro로 호환성 지키고 배포 순서 사고 막기
메시지 스키마에 필드 하나 추가하는 일은 사소해 보인다. 그런데 카프카처럼 프로듀서와 컨슈머가 따로 배포되는 구조에서는 이 사소한 변경이 컨슈머를 멈춰 세우는 원인이 된다. 예전에 JSON 문자열을…
HAProxy L7 로드밸런싱 - balance 알고리즘 고르기, httpchk 헬스체크(기본은 OPTIONS), sticky 세션과 stats 대시보드
서버를 두 대 이상으로 늘리고 나면 그 앞에 뭘 세울지가 다음 고민이 된다. 클라우드 관리형 로드밸런서(ALB, NLB)를 쓰면 편하지만, 온프레미스나 단일 VM 위에서 프로세스를 여러 개 띄워 분…
쿠버네티스에 Argo CD로 GitOps 파이프라인 깔기 - Application, 자동 sync, self-heal로 kubectl apply 손절하기
클러스터를 몇 명이서 나눠 쓰다 보면 어느 순간 아무도 지금 떠 있는 게 Git의 어느 커밋인지 자신 있게 말하지 못하는 상태가 된다. 누군가 급해서 kubectl edit 로 replicas를 바…
Amazon EKS 1.34 표준 지원 종료 메일을 받았다면 - 확장 지원 요금과 업그레이드 선택지
EKS 클러스터를 몇 개라도 굴리고 있으면 요즘 받은편지함에 "[조치 필요] Amazon EKS Kubernetes 1.34 표준 지원 종료" 제목의 AWS Health 알림이 하나 들어와 있을 것…
Jaeger 분산 추적이란 무엇인가 - 동작 원리와 v2 아키텍처, 도커로 띄워보기
마이크로서비스 몇 개만 넘어가면 "어디서 느려졌는지"를 로그만으로 짚기가 어려워진다. 게이트웨이 로그에는 3초가 찍혔는데 각 서비스 로그를 하나씩 열어보면 다들 자기는 빨랐다고 한다. 예전에 이 블…
쿠버네티스 PVC를 파드 중단 없이 온라인으로 확장하기 (EBS CSI, allowVolumeExpansion)
운영하다 보면 스테이트풀셋의 PVC가 어느 날 갑자기 꽉 차 있다. PostgreSQL 데이터 디렉터리든 Prometheus TSDB든, 예전 같으면 새 볼륨 붙이고 데이터 옮기고 파드 재배포하는 …
Datadog은 언제 도입하나 - 클라우드 기본 모니터링의 한계와 요금 정리
모니터링 도구 이야기가 나오면 대체로 두 부류로 갈린다. 클라우드 기본 도구만으로 아직 버티는 팀과, 서비스가 늘면서 확인할 화면이 여기저기 흩어져 곤란해진 팀이다. 예전에 Datadog으로 Kub…
쿠버네티스 v1.37 Garhwal - 새 기능과 업그레이드 전 확인할 변경점
분기마다 쿠버네티스 마이너 릴리스가 나오면 신기능 구경보다 "우리 클러스터에서 뭐가 깨지나"부터 찾게 된다. 클러스터를 몇 개 굴리다 보니 릴리스 노트에서 정작 오래 붙잡고 읽는 쪽은 하이라이트가 …
ingress-nginx EOS, 이제 뭘 써야 하나
커뮤니티 유지보수 ingress-nginx 컨트롤러( kubernetes/ingress-nginx )는 2026년 3월부로 EOS(End of Support, 지원 종료)를 맞았다. 이후 신규 릴리…