가상 클러스터는 물리적 호스트 클러스터 내에 중첩된 완전한 기능을 갖춘 Kubernetes 클러스터로, 멀티 테넌시를 지원하기 위한 더 나은 격리와 유연성을 제공합니다. 여러 팀이 동일한 물리적 인프라 내에서 독립적으로 운영되면서 충돌을 최소화하고 자율성을 극대화하며 비용을 절감할 수 있습니다.
가상 클러스터는 호스트 클러스터 네임스페이스 내에서 실행되지만 자체 API 서버, 제어 플레인, 동기화 장치 및 리소스 세트를 갖춘 별도의 Kubernetes 클러스터로 작동합니다. 가상 클러스터는 호스트 클러스터의 물리적 리소스(예: CPU, 메모리, 스토리지)를 공유하는 동시에 해당 리소스를 독립적으로 관리하므로 효율적인 활용과 확장이 가능합니다.
가상 클러스터는 리소스 예약 및 네트워킹을 위해 호스트 클러스터와 상호 작용하지만 가상 클러스터 내의 작업이 호스트 클러스터의 전역 상태에 직접적인 영향을 미치지 않도록 추상화 수준을 유지합니다.
⭐️ Vcluster를 좋아하시나요? 스타와 함께 프로젝트를 지원하세요 ⭐️
가상 클러스터는 대규모 Kubernetes 배포 및 다중 테넌트에 엄청난 이점을 제공합니다.
세분화된 권한: vCluster 사용자는 호스트 클러스터에서 최소화된 권한으로 작업하므로 권한 있는 액세스 오용 위험이 크게 줄어듭니다. vCluster 내에서 사용자는 관리자 수준의 제어 권한을 갖고 있어 CRD, RBAC 및 기타 보안 정책을 독립적으로 관리할 수 있습니다.
격리된 제어 플레인: 각 vCluster에는 자체 전용 API 서버 및 제어 플레인이 함께 제공되어 강력한 격리 경계를 생성합니다.
사용자 정의 가능한 보안 정책: 테넌트는 기본 물리적 호스트 클러스터의 기존 정책 및 보안 조치 외에도 OPA 정책, 네트워크 정책, 리소스 할당량, 제한 범위 및 승인 제어를 포함한 추가적인 vCluster별 거버넌스를 구현할 수 있습니다.
향상된 데이터 보호: 내장된 SQLite, etcd 또는 외부 데이터베이스를 포함한 별도의 백업 저장소 옵션을 통해 가상 클러스터는 격리된 데이터 관리를 허용하여 테넌트 간의 데이터 유출 위험을 줄입니다.
테넌트별 전체 관리자 액세스: 테넌트는 CRD를 자유롭게 배포하고, 네임스페이스, 오염 및 레이블 노드를 생성하고, 일반적으로 표준 Kubernetes 네임스페이스로 제한되는 클러스터 범위 리소스를 관리할 수 있습니다.
격리되었지만 통합된 네트워킹: 자동 격리를 보장하는 동시에(예: 서로 다른 가상 클러스터의 포드는 기본적으로 통신할 수 없음) vCluster는 구성 가능한 네트워크 정책 및 서비스 공유를 허용하여 필요에 따라 분리와 공유를 모두 지원합니다.
노드 관리: 특정 가상 클러스터에 정적 노드를 할당하거나 여러 가상 클러스터 간에 노드 풀을 공유하여 리소스 할당에 유연성을 제공합니다.
경량 인프라: 가상 클러스터는 물리적 클러스터보다 훨씬 더 가벼우며 몇 초 만에 회전할 수 있습니다. 이는 EKS와 같은 환경에서 종종 볼 수 있는 긴 프로비저닝 시간(~45분)과 뚜렷한 대조를 이룹니다.
리소스 효율성: 기본 호스트 클러스터의 리소스를 공유함으로써 가상 클러스터는 추가 물리적 인프라의 필요성을 최소화하여 비용과 환경에 미치는 영향을 줄입니다.
단순화된 관리: 통합 CoreDNS 옵션과 함께 단일 포드 내에서 실행되는 vCluster 제어 평면은 운영 오버헤드를 최소화하여 가상 클러스터를 대규모 배포 및 멀티 테넌시 시나리오에 특히 적합하게 만듭니다.
다양한 Kubernetes 환경: vCluster는 다양한 Kubernetes 버전 및 배포판(K8s, K3s, K0s 포함)을 지원하므로 버전 차이가 허용됩니다. 이를 통해 다른 클러스터에 영향을 주지 않고 각 가상 클러스터를 특정 요구 사항에 맞게 조정할 수 있습니다.
적응형 백업 저장소: 경량(SQLite)부터 엔터프라이즈급 옵션(내장형 etcd, Global RDS와 같은 외부 데이터 저장소)까지 다양한 확장성 및 내구성 요구 사항을 충족하는 다양한 데이터 저장소 중에서 선택합니다.
어디서나 실행 가능: 가상 클러스터는 EKS, GKE, AKS, OpenShift, RKE, K3s, 클라우드, 엣지 및 온프레미스에서 실행될 수 있습니다. K8s 클러스터라면 그 위에서 가상 클러스터를 실행할 수 있습니다.
API 서버 로드 감소: 각각 전용 API 서버가 있는 가상 클러스터는 요청을 내부적으로 격리하고 처리하여 호스트 클러스터의 Kubernetes API 서버의 운영 로드를 크게 줄입니다.
충돌 없는 CRD 관리: 각 가상 클러스터 내의 CRD를 독립적으로 관리하면 CRD 충돌 및 버전 불일치 가능성이 제거되므로 사용자 기반이 확장됨에 따라 운영이 원활해지고 확장이 쉬워집니다.
셀프 서비스 Kubernetes로 개발자 역량 강화: 셀프 서비스 가상 클러스터를 통해 개발자의 Kubernetes 액세스를 단순화하고, 보안 및 규정 준수 요구 사항을 손상시키지 않으면서 인적 오류를 줄이고 개발자 자율성을 강화합니다.
임시 Kubernetes 클러스터로 CI/CD 가속화: 풀 요청마다 깨끗한 새 가상 Kubernetes 클러스터를 즉시 생성하여 대기 시간과 공유 테스트 환경의 어려움 없이 빠르고 격리된 테스트와 PR 미리 보기를 가능하게 합니다.
고객별 전용 클러스터로 ISV 서비스 향상: 엄격한 테넌트 격리와 원활한 확장성을 갖춘 가상 클러스터에서 각 고객을 호스팅하는 동시에 필수 도구를 여러 테넌트에 서비스를 제공하는 통합 플랫폼 스택으로 통합합니다.
동급 최고의 원가와 높은 마진으로 관리형 Kubernetes 서비스 구축: 고객이 전용 가상 Kubernetes 클러스터에 직접 액세스할 수 있도록 지원하고 노드 및 리소스 할당을 간소화하여 업계 최고의 효율성과 비교할 수 없는 확장성을 제공합니다.
첫 번째 vCluster를 배포하려면 빠른 시작 가이드를 참조하세요!
기여에 관심을 가져주셔서 감사합니다! 지침은 CONTRIBUTING.md를 참조하세요.
Apache 라이센스 버전 2.0("라이센스")에 따라 라이센스가 부여되었습니다. 라이센스를 준수하는 경우를 제외하고는 이 파일을 사용할 수 없습니다. 다음에서 라이센스 사본을 얻을 수 있습니다.
http://www.apache.org/licenses/LICENSE-2.0
해당 법률에서 요구하거나 서면으로 동의하지 않는 한, 라이선스에 따라 배포되는 소프트웨어는 명시적이든 묵시적이든 어떠한 종류의 보증이나 조건 없이 "있는 그대로" 배포됩니다. 라이선스에 따른 허가 및 제한 사항을 관리하는 특정 언어는 라이선스를 참조하세요.