BRIEFING
Kubernetes를 홈랩·소규모 환경에 쓰는 것은 과한가
Kubernetes를 홈랩·소규모 환경에 쓰는 것은 과한가
Scope
핵심 질문
소규모 서버 환경에서 Kubernetes의 이점이 운영복잡도를 정당화하는 조건은 무엇인가?
Research
핵심 근거
- Kubernetes는 multi-node scheduling, self-healing, declarative rollout, service discovery와 ecosystem을 제공한다.
- 작은 환경에서는 control plane, CNI, storage, ingress, certificate, RBAC 등의 운영비용이 workload 자체보다 커질 수 있다.
- 학습 목적과 실제 운영효율 목적을 분리해야 한다.
참고 자료
- Kubernetes docs: https://kubernetes.io/docs/
Draft
Kubernetes가 소규모 환경에 과한지는 서버 개수보다 필요한 기능과 운영목표로 판단해야 한다.
과할 가능성이 높은 경우
서비스가 몇 개뿐이고 한두 대 서버에서 Docker Compose로 충분하며 장애 시 수동복구가 가능하다면 Kubernetes가 추가하는 control plane, CNI, ingress, storage class, RBAC 관리가 더 큰 부담일 수 있다.
가치가 생기는 경우
여러 노드 사이에 workload를 자동배치하고 node 장애 시 재배치해야 하거나, GitOps와 declarative deployment를 모든 서비스에 공통 적용하고 싶다면 규모가 작아도 Kubernetes의 가치가 생긴다.
숨은 비용
Cluster를 설치하는 것보다 upgrades, certificate, persistent volume, backup, observability와 networking 문제를 계속 관리하는 비용이 더 크다.
대안
단일 host는 Docker Compose, 간단한 multi-node scheduler는 Nomad, deployment UX가 목적이면 self-hosted PaaS가 더 낮은 복잡도로 요구를 충족할 수 있다.
결론
Kubernetes는 서버가 세 대라서 과한 것이 아니라 필요한 기능보다 추상화와 운영계층이 더 많을 때 과하다.