운영 중 · 2026
K8s 하이브리드 클러스터 확장 (IDC + In-house)
IDC 클러스터에 사내 노드를 연결하고 자원 배치와 네트워크 경로를 조정했습니다.
기간2026 (3월~)
소속래브라도랩스(LabradorLabs)
역할Kubernetes 용량·네트워크 확장 담당
KubernetesWireGuardNAT
작업 요약
2대 → 6대 · Pod 할당 실패 주 70~100건 → 1~5건
왜 클러스터를 늘렸나
기존 Kubernetes 클러스터는 IDC 서버 2대로 운영되고 있었습니다. 80개가 넘는 크롤러가 비슷한 시간에 실행되면 자원이 한꺼번에 소진됐고, 일주일에 70~100건씩 Pod 할당 실패가 쌓였습니다.
기존 클러스터를 처음 설계한 것은 제가 아닙니다. 제가 맡은 일은 이 구조를 계속 운영할 수 있도록 용량과 네트워크 토폴로지를 손보는 것이었습니다.
2대에서 6대로 확장
사내 유휴 서버 4대를 워커로 쓰기로 했습니다. 다만 IDC와 사내망 사이에 NAT가 있어 노드를 그대로 붙일 수 없었습니다.
WireGuard로 양방향 경로를 만들고 kubelet이 VPN IP를 사용하도록 고정했습니다. Kubernetes API, NFS, Pod 네트워크가 터널을 통과하도록 DNAT·MASQUERADE 규칙과 스토리지 ACL도 함께 조정했습니다.
확장 중 발생한 문제와 조치
- x509 인증서 불일치 — API 서버 인증서 SAN에 VPN 주소를 추가하고 인증서를 재발급했습니다.
- Pod 안에서만 API·DB 연결 실패 — 호스트 OUTPUT 규칙만으로는 Pod 트래픽을 잡지 못해 PREROUTING DNAT를 추가했습니다.
- NFS 마운트 Pending — VPN 대역을 NFS export ACL에 추가했습니다.
- Airflow Pod 대량 DNS 실패 — CoreDNS 배치와 upstream DNS, kube-proxy의 clusterCIDR, git-sync 재시도 값을 순서대로 확인해 복구했습니다.
- 클러스터 토큰·인증 만료 — 만료 뒤 처리하는 대신 사전 알림을 붙여 교체 시점을 놓치지 않게 했습니다.
결과
클러스터 규모기존 IDC 2대에 In-house 4대를 추가해 총 6대로 확장
Pod 할당 실패주 70~100건에서 주 1~5건으로 감소
운영 방식만료·DNS·라우팅 문제를 알림과 런북으로 관리
제가 맡은 부분
용량 부족 원인 확인, 확장안과 VPN 토폴로지 설계, 노드 합류, 네트워크·DNS·스토리지 장애 대응을 맡았습니다. 개별 크롤러 코드는 각 담당자가 관리했고, 공통 실행 환경과 클러스터 운영은 제가 책임졌습니다.