개요
- 공식 사이트 / GitHub
- Kubernetes를 커널로 사용하는 클라우드 네이티브 분산 운영 체제
- 멀티 테넌트 컨테이너 플랫폼 — 풀 스택 IT 운영 자동화 + DevOps 워크플로우 통합
- 플러그 앤 플레이 아키텍처 — 써드파티 도구를 생태계에 원활하게 통합
- 벤더 중립 오픈소스, 퍼블릭 클라우드·온프레미스·하이브리드 환경 모두 지원
| 대상 |
제공 가치 |
| 인프라팀 |
클러스터 자동 설치·확장·업그레이드, 멀티 클러스터 관리, 스토리지·네트워크 통합 |
| 개발팀 |
S2I / B2I 이미지 빌드, Helm 앱 배포, 그레이스케일 릴리스, HPA |
| 운영팀 |
CI/CD 파이프라인, 중앙 집중식 로그·모니터링·경보·감사, 서비스 메시 |
| 사용자 |
원클릭 앱 배포, 앱 스토어, 리소스 측정 및 청구 |
아키텍처
- 클라우드 네이티브 애플리케이션 — 표준 REST API 제공, 모든 Kubernetes 위에 배포 가능
- 3계층 권한 구조: 플랫폼(Cluster) → 워크스페이스(Workspace) → 프로젝트(Project/Namespace)
- 주요 백엔드 컴포넌트
ks-apiserver: 통합 API 게이트웨이, Kubernetes API 집계 및 확장
ks-controller-manager: 비즈니스 로직 컨트롤러 (워크스페이스, 네트워크 정책 등)
ks-console: Vue.js 기반 웹 UI
- 플러그인 방식으로 기능 활성화 — 서비스 메시(Istio), DevOps(Jenkins), 로깅(EFK), 모니터링(Prometheus) 등 선택 설치
주요 기능
| 기능 영역 |
세부 내용 |
| K8s 리소스 관리 |
Deployment, StatefulSet, DaemonSet, Job, CronJob, HPA, PVC, ConfigMap, Secret 등 UI 관리 |
| 멀티 클러스터 |
호스트-멤버 구조, 직접 연결 / 에이전트 연결, 중앙 컨트롤 플레인 |
| 멀티 테넌시 |
RBAC 기반 3단계 권한, LDAP/AD 통합, SSO 지원 |
| DevOps (CI/CD) |
Jenkins 기반 파이프라인, Jenkinsfile, 그래픽 편집, S2I / B2I, SonarQube 통합 |
| 서비스 메시 |
Istio 기반 — 카나리·블루그린·트래픽 미러링·서킷 브레이커·분산 추적 |
| 관측 가능성 |
Prometheus 모니터링, EFK 로그, 이벤트·감사 로그, 커스텀 메트릭 대시보드 |
| 경보 & 알림 |
커스텀 경보 정책, Alertmanager, Notification Manager (메일·Slack·웹훅) |
| 앱 스토어 |
Helm Chart 기반 앱 수명 주기 관리, 앱 리포지토리 추가 |
| 스토리지 |
GlusterFS, CephRBD, NFS, CSI 드라이버 지원 |
| 네트워크 |
Calico, Flannel, Porter (베어메탈 LB), 네트워크 격리 정책 |
| 보안 |
감사 로그, PodSecurityPolicy, 네트워크 격리, 세분화된 RBAC |
설치
사전 요구사항
| 항목 |
최소 권장 |
| CPU |
4 Core |
| Memory |
8 GB |
| Disk |
100 GB |
| K8s |
v1.21 ~ v1.30 |
kubectl로 기존 K8s 클러스터에 설치
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/kubesphere-installer.yaml
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/cluster-configuration.yaml
-
설치 로그 확인
kubectl logs -n kubesphere-system \
$(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
-
설치 완료 후 콘솔 주소 확인
kubectl get svc/ks-console -n kubesphere-system
KubeKey로 K8s + KubeSphere 동시 설치
# KubeKey 바이너리 다운로드
curl -sfL https://get-kk.kubesphere.io | sh -
# 기본 설치 (K8s + KubeSphere)
./kk create cluster --with-kubernetes v1.28.8 --with-kubesphere v3.4.1
# 설정 파일 생성 후 커스텀 설치
./kk create config --with-kubesphere v3.4.1
./kk create cluster -f config-sample.yaml
기본 로그인 정보
- 기본 계정:
admin / P@88w0rd
- 초기 로그인 후 비밀번호 변경 필수
삭제
# 삭제 스크립트 실행
curl -sfL https://raw.githubusercontent.com/kubesphere/ks-installer/v3.4.1/scripts/kubesphere-delete.sh | bash
멀티 테넌트 흐름
- 쿠버네티스 클러스터 등록 → 워크스페이스 생성(클러스터 선택) → 프로젝트 생성(네임스페이스) → 워크로드 배포
- 3단계 권한 계층
| 계층 |
주요 역할 |
| 플랫폼(Cluster) |
cluster-admin — 클러스터·워크스페이스 전체 관리 |
| 워크스페이스 |
workspace-admin — 프로젝트·앱·DevOps 관리 |
| 프로젝트 |
operator — 워크로드·서비스·설정 관리 |
클러스터 관리
멀티 클러스터 관리
- 중앙 컨트롤 플레인(호스트 클러스터) + 멤버 클러스터 구조
- 직접 연결: 호스트↔멤버 간 직접 API 통신 (네트워크 연결 필요)
- 에이전트 연결: 멤버 클러스터에 에이전트 설치 → 방화벽/NAT 환경에서 사용
- 중앙에서 멀티 클러스터 모니터링·로그·이벤트·감사 통합 조회
- 멤버 클러스터는 다른 멤버 클러스터 리소스를 직접 조회 불가 (보안 격리)
워크스페이스
- 프로젝트 및 DevOps 프로젝트를 구성하는 최소 테넌트 단위
- 클러스터와 프로젝트 사이의 논리적 격리 계층
- 네트워크 격리: 기본 인그레스 거부, 이그레스 허용 (Calico NetworkPolicy 기반)
- 리소스 할당량: 워크스페이스 단위 CPU / Memory 총량 제한
- 앱 저장소: Helm Chart 업로드 또는 외부 Helm 리포지토리 추가
- 앱 저장소
- 헬름 차트 업로드
- 앱 리포지토리
- 테스트 및 개발을 위한 자체 앱 저장소 제공
프로젝트
그레이스케일 릴리스 (Istio 기반)
- 블루-그린 배포: 구버전·신버전 동시 운영, 즉시 라우팅 전환 및 롤백
- 카나리 릴리스: 트래픽 비율을 점진적으로 신버전으로 이동, 실사용자 소수에게 먼저 검증
- 트래픽 미러링: 실 트래픽을 복사해 신버전으로 무중단 테스트
Image Builder
- S2I (Source-to-Image): 소스 코드 → 이미지 자동 빌드 → K8s 배포 (Dockerfile 없이)
- B2I (Binary-to-Image): JAR / WAR / 바이너리 → 이미지 빌드
- Webhook으로 코드 저장소 이벤트 → 자동 트리거
Alerting
Custom Application Monitoring
- Prometheus + Grafana 기반 커스텀 메트릭 대시보드 프로젝트 단위 구성
DevOps
- Jenkins 기반 CI/CD 환경 내장 — KubeSphere DevOps 프로젝트로 권한 격리
- 파이프라인: Jenkinsfile 기반 또는 그래픽 편집기로 파이프라인 정의
- S2I (Source-to-Image): 소스 코드 → 컨테이너 이미지 → K8s 자동 배포 (Dockerfile 불필요)
- B2I (Binary-to-Image): JAR / WAR / 바이너리 → 컨테이너 이미지 자동 빌드
- SonarQube 통합: 파이프라인 스텝으로 코드 품질·취약점 검사
- Webhook 트리거: 코드 저장소(GitHub / GitLab / Bitbucket) 이벤트로 자동 빌드
- 크리덴셜 관리: 파이프라인에서 사용하는 시크릿(SSH 키, 토큰 등) 안전 보관
액세스 제어 및 계정 관리
- RBAC 기반 3계층 권한 — 클러스터 → 워크스페이스 → 프로젝트
- 외부 인증 연동: LDAP / Active Directory, OIDC (GitHub, GitLab, Dex 등), SAML
- SSO (Single Sign-On): 플랫폼 단일 계정으로 모든 테넌트 접근
- 감사 로그: 사용자 행동을 시간순으로 기록, 특정 규칙으로 경보 생성 가능
- 네트워크 격리: 워크스페이스·프로젝트 단위로 NetworkPolicy 자동 적용
앱 스토어
- Helm Chart 기반 엔터프라이즈 앱 수명 주기 관리 (구 OpenPitrix)
- 앱 배포 방식: Template-Based Apps (Helm Chart) / Composed Apps (마이크로서비스 조합)
- 앱 리포지토리: 외부 Helm 리포지토리(AWS S3, GitHub Pages 등) 추가
- 자체 앱 스토어: 워크스페이스 단위 내부 Helm Chart 업로드·공유
- 앱 수명 주기: 초안 → 검토 → 릴리스 → 업그레이드 → 중단 단계 관리
- 릴리즈
- 업그레이드
- 로그 쿼리: 테넌트 격리 기반 로그 검색 (자신의 프로젝트 로그만 조회 가능) — Kibana 대비 멀티테넌트 보안 강화
- 이벤트 쿼리: K8s 이벤트(클러스터 내부 상태 변화)를 UI에서 조회
- 감사 로그: 사용자·관리자 행동 시간순 기록, 이벤트 → 경보 생성 규칙 설정 가능
- 측정 및 청구: 클러스터·워크스페이스·프로젝트 단위 CPU·Memory·스토리지 사용량 추적 및 비용 산정
- Web Kubectl: 브라우저에서
kubectl 명령 실행 (별도 kubeconfig 설정 불필요)
유사 플랫폼 비교
| 플랫폼 |
특징 |
주요 차이점 |
| KubeSphere |
멀티테넌시·DevOps·서비스메시 통합, 엔터프라이즈급 UI |
풀 스택 올인원, 플러그인 방식 |
| Rancher |
멀티 클러스터 관리 강점, 경량 UI |
DevOps·앱스토어 기능 상대적으로 빈약 |
| OpenShift |
Red Hat 엔터프라이즈, S2I 자체 지원, 강력한 보안 |
유료(상용), 커스터마이징 제한 |
| Lens (OpenLens) |
데스크톱 K8s IDE, 가볍고 빠름 |
서버 없음, 멀티테넌시·DevOps 없음 |
| Portainer |
컨테이너·K8s UI 관리, 간단한 설치 |
대규모 멀티클러스터·DevOps 기능 제한 |
관련 포스트