[K8s] 수십 개의 클러스터를 하나처럼 관리하기: 멀티 클러스터와 Cluster API
·
▣ Infra & DevOps/Kubernetes🚢
이번 글에서는 멀티 클러스터 전략과, 클러스터 자체를 YAML로 선언하여 관리하는 Cluster API에 대해 다룹니다.1. 왜 멀티 클러스터인가?단일 클러스터의 한계는 규모가 커질수록 뚜렷해집니다.요구 사항단일 클러스터멀티 클러스터재해 복구 (DR)리전 장애 시 전체 서비스 중단다른 리전 클러스터가 트래픽 인수환경 격리네임스페이스 수준 격리 (논리적)클러스터 수준 격리 (물리적)규정 준수데이터가 해외 리전에 저장될 위험국가별 클러스터로 데이터 주권 보장벤더 종속특정 클라우드에 100% 종속AWS + GCP 등 멀티 클라우드 전략Blast Radius설정 실수가 전체 서비스에 영향영향 범위를 단일 클러스터로 제한2. Cluster API: 클러스터를 YAML로 선언하다K8s에서는 Pod, Service,..
[Kafka] 제휴사가 10곳이면 컨슈머 그룹도 10개일까? [택배 추적 파이프라인 설계]
·
▣ Infra & DevOps/Kafka🐦‍🔥
실시간 택배 추적 파이프라인으로 배우는 Kafka 팬아웃 설계.1편은 문제 제기와 "컨슈머 그룹이 원래 무엇을 위한 물건인지"까지 간다.이런 시스템을 만든다고 해보자택배사에서 일한다고 상상해보자. 허브에서 택배 상자가 스캔될 때마다 이벤트가 생긴다. "집화 완료", "허브 도착", "배송 출발", "배송 완료". 이 이벤트를 트래킹 제휴사들에게 실시간으로 밀어줘야 한다. 네이버 같은 포털에서 배송 조회하면 실시간으로 상태가 갱신되는 것, 그 뒷단이 바로 이 파이프라인이다. 요구사항을 정리하면:스캔 이벤트는 운송장별로 순서가 보장되어야 한다. "배송 완료"가 먼저 가면 사고다.서로 다른 운송장끼리는 아무 상관이 없다. 내 택배가 늦는다고 남의 택배 조회가 멈추면 안 된다.제휴사는 여러 곳이고(10곳이라 하..
[KubeCon Japan 2026] 지속 가능한 멀티클러스터 운영 : GIST의 실패담이 더 값졌던 세션🧪
·
▣ Infra & DevOps/KubeCon Japan 2026⚓
첫날 오후 2시 10분, 메인홀 세션입니다. 한국 대학원 연구실 사례인데 조직 규모와 무관하게 통하는 문제를 다뤄서 끝까지 집중해서 들었습니다. Towards Sustainable Multi-Cluster Management in Real-World Academic InfrastructureJinwang Mok, ChangHyeon Im (GIST, 광주과학기술원)🎓 문제 정의부터 정확했다연구실에 새 구성원이 들어옵니다. 졸업생 장비를 물려받거나 새 장비를 사서 자기 실험에 맞게 씁니다. 노드가 한 사람 것일 때는 문제가 없습니다. 공유하는 순간 달라집니다. kubeadm이나 kubespray로 클러스터를 세우는 건 어렵지 않습니다. 문제는 그다음입니다. 학생 A와 B가 공유 인프라에서 kubectl과..
[KubeCon Japan 2026] AIOps로 롤백 판단하기 : PromQL을 LLM으로 대체한다면🤖
·
▣ Infra & DevOps/KubeCon Japan 2026⚓
첫날 점심 직전, 4층 414+415호에서 들은 세션입니다. 발상이 단순해서 오히려 설득력이 있었습니다. AIOps: (near) Zero-Touch Production Rollout FixesKevin Dubois (IBM, CNCF Developer Experience TAG 테크 리드), Carlos Sanchez (Adobe)🚨 왜 프로그레시브 딜리버리인가발표는 CrowdStrike 장애 이야기로 시작했습니다. 사후 분석에서 나온 개선점 중 하나가 전 세계 동시 배포 대신 단계적 롤아웃이었다는 점을 짚었습니다. GitOps는 Git이 단일 진실 공급원이라는 장점이 있지만 기본은 all-or-nothing 릴리스입니다. 여기에 Argo Rollouts나 Flagger를 얹으면 단계를 정의할 수 있..
[도서리뷰] 사용자 입장에서 생각하세요 - 지표는 멀쩡한데, 왜 사용자는 조용히 떠날까?
·
◈ 공부모임/나는 리뷰어다🌾
한빛미디어 서평단 활동을 위해서 책을 협찬 받아 작성된 서평입니다. 서버는 200 OK를 돌려줬는데, 사용자는 왜 조용히 떠날까? 백엔드 개발자로 일하다 보면 사용자를 만날 일이 거의 없습니다. 제가 매일 마주하는 것은 사용자가 아니라 요청 로그와 응답 코드, 대시보드의 그래프입니다. 그런데 장애 알림도 없고 에러율도 낮은데 이탈 지표가 슬금슬금 올라갈 때가 있습니다. 이럴 때는 어디서부터 봐야 할지 막막해집니다. 로그에는 찍히지 않는 문제이기 때문입니다. 그러면서도 회의실에서는 "사용자 입장에서는 이게 낫지 않을까요?"라는 말을 참 쉽게 씁니다. 이 책은 바로 그 지점을 찌릅니다. 우리가 말하는 '사용자 입장'이 사실은 서비스 구조를 다 꿰고 있는 설계자의 시선에 갇힌 상상 아니냐고요. 첫 장을 넘기..
[오늘가챠] 데이터 접근 기술 전환: JPA의 한계와 MyBatis 마이그레이션
·
◈ Yermi Project/오늘가챠🃏
'오늘가챠'는 초기 생산성을 위해 스프링 진영의 표준 ORM인 Spring Data JPA를 채택하여 시작했습니다. 하지만 서비스의 덩치가 커지고 복잡한 비즈니스 룰이 쏟아지자, ORM의 강점이 오히려 독으로 돌아오기 시작했습니다. 과감하게 JPA를 걷어내고 MyBatis로 전면 전환하게 된 고군분투기입니다.1. 첫 번째 피로도: N+1 방어와 즉시/지연 로딩의 딜레마TCG 게임 도메인 특성상, 인벤토리(Card)를 조회하면 소유한 사진(Photo) 정보와 유저(User) 프로필이 항상 엮여서 호출되어야 했습니다. 이를 위해 연관 관계를 FetchType.LAZY로 묶어두었는데, 리스트 화면을 그릴 때마다 수십 개의 단건 쿼리가 나가는 악명 높은 N+1 문제가 발생했습니다.이를 방어하기 위해 도메인 곳곳..
[KubeCon Japan 2026] OCI is not Git : GitOps의 진실 공급원을 다시 묻다🗂️
·
▣ Infra & DevOps/KubeCon Japan 2026⚓
첫날 오후 첫 브레이크아웃으로 5층 501호에서 열린 세션입니다. 제목은 도발적인데 내용은 훨씬 균형 잡혀 있었습니다. OCI is not Git: Rethinking the GitOps Source of Truth for a Kubernetes-Native WorldMichael Crenshaw (Intuit / Argo CD 리드 메인테이너), Robin Lieb (Independent)🥊 회의론자와 실사용자가 함께 무대에 서다발표자 두 명의 입장이 다릅니다. Crenshaw는 Argo CD 리드 메인테이너이면서 스스로를 "OCI 회의론자" 라고 소개하고, Lieb는 1년 넘게 OCI를 GitOps 소스로 써온 실사용자입니다. 두 사람이 KubeCon EU에서 나눈 대화가 이 세션의 출발점이었다고 ..