5 분 소요

개요

  • 공식 사이트 / 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 — 워크로드·서비스·설정 관리


클러스터 관리

  • 노드 관리, 클러스터 상태 모니터링, 애플리케이션 리소스 모니터링, 볼륨 관리, 경보·알림, 클러스터 설정을 UI에서 통합 관리
  • 경보 아키텍처: Prometheus / kube-events / kube-auditing → Alertmanager → Notification Manager → 메일·Slack·웹훅
  • 게이트웨이: 클러스터 범위 Ingress 게이트웨이 제공 (NGINX Ingress Controller)
  • 로그 수신기: Elasticsearch / Kafka / Fluentd 중 선택하여 중앙 수집

  • 노드 관리
  • 클러스터 상태 모니터링
  • 어플리케이션 리소스 모니터링
  • 볼륨
  • 경고와 알림
    • Alertmanager
      • Prometheus, kube-events, kube-auditing, … 등이 보낸 경고를 받아서 Notification Manager를 통해 알림
  • 경고 정책
  • 경고 메세지
  • 클러스터 설정
    • 하나의 클러스터를 여러 워크스페이스에 할당하거나 하나의 워크스페이스에 여러 클러스터 할당 가능
    • 게이트웨이
      • 클러스터 범위의 게이트웨이 제공
    • 로그 수신기
      • Elasticsearch, Kafka, Fluentd를 수신기로 추가하여 로그 수신 가능


멀티 클러스터 관리

  • 중앙 컨트롤 플레인(호스트 클러스터) + 멤버 클러스터 구조
  • 직접 연결: 호스트↔멤버 간 직접 API 통신 (네트워크 연결 필요)
  • 에이전트 연결: 멤버 클러스터에 에이전트 설치 → 방화벽/NAT 환경에서 사용
  • 중앙에서 멀티 클러스터 모니터링·로그·이벤트·감사 통합 조회
  • 멤버 클러스터는 다른 멤버 클러스터 리소스를 직접 조회 불가 (보안 격리)


워크스페이스

  • 프로젝트 및 DevOps 프로젝트를 구성하는 최소 테넌트 단위
  • 클러스터와 프로젝트 사이의 논리적 격리 계층
  • 네트워크 격리: 기본 인그레스 거부, 이그레스 허용 (Calico NetworkPolicy 기반)
  • 리소스 할당량: 워크스페이스 단위 CPU / Memory 총량 제한
  • 앱 저장소: Helm Chart 업로드 또는 외부 Helm 리포지토리 추가
  • 앱 저장소


프로젝트

  • Kubernetes 네임스페이스에 대응하는 KubeSphere 논리 격리 단위
  • 컨테이너 제한: LimitRange로 CPU / Memory 기본값·최대값 설정
  • 게이트웨이: 프로젝트 범위 NGINX Ingress controller
  • 로그 수집: 사이드카 방식 온디스크 로그 수집 지원

  • 로그 수집

그레이스케일 릴리스 (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 업로드·공유
  • 앱 수명 주기: 초안 → 검토 → 릴리스 → 업그레이드 → 중단 단계 관리
  • 릴리즈
  • 업그레이드


Toolbox

  • 로그 쿼리: 테넌트 격리 기반 로그 검색 (자신의 프로젝트 로그만 조회 가능) — 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 기능 제한


관련 포스트