Upstream Kubernetes
Upstream Kubernetes는 Cloud Native Computing Foundation(CNCF)가 관리하는 공식 Kubernetes 오픈소스 프로젝트를 의미한다. 여기서 ‘Upstream’이란 커뮤니티에서 개발 중인 원본 코드와 기능, 즉 공식 릴리즈 전의 기준 브랜치(master/main)와 그것을 기반으로 하는 생태계를 포괄하는 개념이다.
Red Hat OpenShift, Amazon EKS, Google GKE, Rancher RKE2 등은 모두 이 Upstream Kubernetes를 기반으로 다양한 기능을 추가하거나 운영 편의성을 강화한 Downstream 배포판에 해당한다.
주요 특징
- 표준화된 오픈소스 프로젝트: CNCF 산하에서 전 세계 커뮤니티에 의해 개발되고 유지됨
- 모듈형 구조: kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy 등 핵심 컴포넌트로 구성됨
- 선언형 구성 방식: YAML 리소스를 통해 인프라 및 워크로드를 선언적으로 정의
- 버전 주기 관리: 일반적으로 분기별(3개월 주기)로 새로운 릴리즈가 배포되며, 안정성과 기능이 점차 진화됨
- 확장성과 유연성: CRD, Operator, Admission Controller 등 커스터마이징이 용이한 구조
장점
- 기술 표준에 가장 가까운 코드베이스: 클라우드/벤더 중립적인 형태로 제공됨
- 최신 기능 반영: Sidecar-free 통신, Gateway API, KubeVirt 등 다양한 실험적 기능이 가장 먼저 도입됨
- 자유로운 커스터마이징 가능: Vendor 제약 없이 원하는 기능을 직접 개발하여 반영 가능
- 생태계 친화성: Helm, Argo, Istio, Prometheus 등 주요 클라우드 네이티브 툴과 최적 호환
- 클라우드 이전 용이성: 특정 벤더 종속 없이 멀티 클라우드 또는 온프레미스 환경으로 전환 가능
관련 용어
- Downstream Kubernetes: Upstream Kubernetes를 기반으로 각 기업이 패키징하여 제공하는 배포판(OpenShift, GKE 등)
- Kubernetes SIG(Special Interest Group): Kubernetes 기능별로 분화된 공식 개발 커뮤니티 조직
- Kubernetes Enhancement Proposal(KEP): Kubernetes에 기능을 제안하고 논의하기 위한 문서 체계
- CNCF Landscape: Kubernetes 기반의 오픈소스 및 상용 생태계 도구들의 지도
- Release Candidate(RC): 공식 릴리즈 직전의 테스트용 후보 버전
주요 솔루션 및 사용 사례
- 주요 솔루션
- Minikube: 로컬 환경에서 Upstream Kubernetes를 실행할 수 있는 경량화 툴
- Kubeadm: 순정 Kubernetes를 간단히 설치할 수 있도록 제공되는 배포 도구
- kind (Kubernetes IN Docker): 테스트 및 개발용으로 Docker 위에 Kubernetes 클러스터를 구축
- k3s: Upstream Kubernetes 기반의 경량화 버전으로 엣지 환경 등에 적합
- Kubernetes Hardening Guide: NSA/CISA에서 배포한 보안 가이드라인도 Upstream 기반을 따름
- 사용 사례
- 벤더 독립적 환경 구축: 클라우드 종속성을 탈피하기 위한 베어메탈 + Upstream Kubernetes 기반 인프라 구성
- 커스터마이징 테스트베드: 새로운 CRD나 Admission Webhook을 개발하여 테스트할 때 기본 코드 활용
- 교육 및 실습용 환경: 쿠버네티스 교육에서 가장 표준적인 학습 대상
- 클러스터 업그레이드 시뮬레이션: 새로운 Kubernetes 버전의 기능/버그를 테스트하기 위한 실험 환경
- 멀티 클라우드 전략 수립: 다양한 클라우드 환경에 이식 가능한 중립적인 플랫폼 기반 확보