관리자 가이드 (Admin Guide)

Clustara(Kubernetes 운영 허브) 어드민 UI(http://<host>:9090/admin)의 메뉴별 사용법입니다. 모든 화면은 동일한 이름의 REST API(/admin/k8s/*)로도 자동화할 수 있습니다. API 상세·클러스터 등록은 K8s 운영 허브 가이드 를 참고하세요.

접속과 권한

계정 비밀번호 관리

관리자 접속 IP 허용 정책

메뉴 구성

내 영역(내 홈·내 업무 캘린더·개인 키 관리·나의 외부 연동·개인화 설정) · 서비스 플랫폼(서비스 홈·카탈로그·내/전체 서비스·Jupyter·DB·WAS/앱·작업 이력·템플릿) · 운영(운영 홈·클러스터·수집 상태·리소스 전체·워크로드·네트워크·스토리지·구성요소·개발자 도구·인증/권한·Pod 관리·노드 관리·앱 배포·YAML 변경·Harbor 레지스트리·Harbor Robot·앱 런처·런칭 이력·GitOps 변경관리·변경 타임라인·장애 분석·장애 워룸·리소스 그래프·연결성 점검·액션 승인함·용량·자동확장·그룹·오너십·AI 분석·리포트 센터·SLO 센터) · 비용 · 보안 · 정책 센터 · 운영 설정 · 외부연동 설정 · 설정(시스템 설정·런타임 설정·SSO·시스템 오류·설정 롤백 센터).

서비스 플랫폼

서비스 플랫폼은 PostgreSQL, Redis, Tomcat, Spring Boot, JupyterLab/JupyterHub를 Kubernetes 객체 묶음이 아닌 하나의 서비스로 생성·조회·운영합니다. 생성 마법사는 이미지·환경·자원 프로파일을 검증하고 기존 Application Stack 초안을 만듭니다. 재시작·확장은 기존 Action Center 승인 요청으로 연결됩니다. 서비스 상세의 상태 동기화·검증은 Stack과 실제 Kubernetes 인벤토리를 대조해 구성요소, Endpoint, Health Score, 비용을 표시하며 접속정보는 Secret 원문이 아닌 이름/key 참조만 관리합니다. 자세한 흐름과 capability는 서비스 플랫폼 가이드를 참고하세요.

Kubernetes 비용 화면은 CPU·Memory·nvidia.com/gpu request와 PVC storage request 기반 월 기준 추정치, 최신 CPU·Memory 실사용에 30% 안정성 headroom을 적용한 조정 시나리오를 분리합니다. GPU는 Pod의 spec.nodeName으로 노드 관리에서 수집한 product label/DCGM 장비 모델을 연결해 L40S·H100·H200·B200·B300별 단가를 적용하고, 미식별 장비만 일반 GPU fallback 단가를 사용합니다. USD/KRW, 모델별 USD/GPU·시간, fallback GPU/GPU·월, Disk GB·월 단가는 운영 환경의 실제 약정가로 변경할 수 있습니다. 24시간 누적 환산, 최근 30일 일별 스냅샷, 최근 12개월 월말 스냅샷 추세와 Namespace별 비용 비중을 제공하며, Metric·Request coverage로 추정 신뢰도를 표시합니다. 자동 스냅샷은 기본 활성·24시간 주기로 서버 시작 후 동작하고 클러스터별 Namespace 합계를 기록하며, 동일 날짜 재실행은 upsert됩니다. 수동 기록은 자동화 오류 복구용으로 유지합니다. 네트워크 egress·LoadBalancer·StorageClass별 차등·라이선스·약정 할인은 별도 비용입니다.

서비스 플랫폼 상단의 전용 소메뉴는 각 영역의 목적과 현재 건수를 함께 표시합니다. 현재 화면은 파란 활성 카드와 현재/전체 위치로 구분되며, 권한이 없는 메뉴는 렌더링하지 않습니다. 좁은 화면에서는 메뉴가 여러 줄로 무너지지 않고 가로 스크롤로 전환되며 현재 메뉴가 자동으로 중앙에 노출됩니다.

메뉴가 화면 너비를 넘으면 우측에 이전·다음 버튼이 나타나고 스크롤 시작·끝에서는 해당 버튼이 비활성화됩니다. 키보드 사용자는 서비스 메뉴에 focus한 뒤 좌우 방향키로 인접 메뉴, HomeEnd로 처음·마지막 허용 메뉴로 이동하고 Enter로 선택할 수 있습니다.

서비스 홈은 전체 서비스의 Ready 비율과 정상·위험·승인 대기·수집/중지 상태를 먼저 보여줍니다. Jupyter·AI, 데이터베이스, WAS·앱 카드에서 유형별 정상률을 확인하고 우선 조치 큐에서 Failed, Degraded, 승인 대기, 만료 순으로 확인합니다. 실행 버튼은 현재 capability가 허용하는 경우에만 표시되며 조회 역할에는 조회 전용 안내만 제공합니다.

서비스 홈의 서비스 상태 자동 동기화 카드에서 worker 주기·최근 성공·수집 대기·오류를 확인하고 Dry-run 또는 즉시 동기화를 실행할 수 있습니다. 인벤토리가 없거나 설정된 신선도 기준보다 오래되면 실제 장애로 확정하지 않고 collecting으로 구분합니다. PostgreSQL 상세의 논리 백업 요청은 별도 Bound PVC와 등록된 Secret 참조로 Job 초안을 만들고 기존 Manifest Change Studio 승인 흐름으로 연결합니다.

서비스 상세의 백업 요청에서는 PostgreSQL SQL dump, Redis RDB, JupyterLab/JupyterHub 작업공간 아카이브, CSI VolumeSnapshot을 선택할 수 있습니다. JupyterHub 상세은 표준 사용자·배포 라벨과 Notebook Pod의 PVC mount를 결합해 사용자, PVC, 활성 상태, 용량과 매핑 근거를 보여줍니다. 사용자 Pod가 active이거나 사용자/PVC가 conflict이면 백업·복구를 차단하며, 백업 당시 사용자 소유권과 복구 대상 사용자도 일치해야 합니다. Jupyter 복구는 기존 파일을 덮어쓰지 않고 .clustara-restore staging 경로에 해제하며 경로 이탈·링크·특수 파일을 차단합니다.

JupyterHub 서비스 상세의 JupyterHub API 설정에서 서비스 계정 URL·토큰과 유휴 기준을 저장하고 연결을 검증할 수 있습니다. 토큰은 서비스 범위로 암호화되며 다시 표시되지 않습니다. Named Server 시작·중지는 Action Center 승인 요청으로 생성되고, 자동 유휴 정책도 즉시 종료 대신 승인 요청만 만듭니다. 승인 후 실행 시 마지막 활동을 다시 조회하므로 그 사이 사용자가 복귀한 서버는 종료하지 않습니다.


0. 내 영역 (#/me, #/my-calendar, #/mykeys, #/my-integrations, #/my-profile)

로그아웃 메뉴 위의 개인 메뉴와 상단 내 영역 그룹에서 현재 사용자 기준 기능을 모아 봅니다.

1. 운영 홈 (#/k8s-home)

수집 최신성·Agent stale·중대 장애 후보를 먼저 강조하고, 장애 파악·변경 추적·용량 점검·승인 작업으로 바로 이동하는 빠른 작업 카드를 제공합니다. 운영 홈 가이드 모달에서 데이터 신뢰도 확인부터 증거 이동, 승인형 조치까지의 권장 순서를 확인할 수 있습니다.

위험 범위는 기본적으로 애플리케이션을 표시하며 kube-system·openshift-*·service mesh·GitOps 등 플랫폼 관리 namespace는 K8s·플랫폼 관리 범위로 분리합니다. 모두 표시로 합쳐 볼 수 있고 Node처럼 클러스터 범위의 중요 신호는 기본 목록에도 유지됩니다. Job/CronJob Pod의 완료·재시도는 RestartStorm·일반 Pod 위험에서 제외하고 Job Condition·backoffLimit·deadline·CronJob missed schedule로 판정합니다.

장애 워룸은 기본으로 open 상태만 표시하고 해결된 이력 포함을 선택할 때만 이력을 합쳐 보여줍니다. 이전 버전이 남긴 Job/CronJob RestartStorm은 open·resolved 목록 모두에서 기본 숨김 처리하며 실제 JobFailing은 유지합니다.

전 클러스터를 가로질러 클러스터 위험 TOP5 · 장애 후보 TOP10 · 최근 변경 TOP10 · 비용 TOP10을 한 화면에 모읍니다. 각 항목에서 해당 리소스의 변경 타임라인/Diff로 딥링크됩니다. 하루 운영을 여기서 시작하세요.

2. 클러스터 (#/k8s)

클러스터 등록/목록, 연결 테스트, 수집을 수행합니다.

3. 수집 상태 (#/k8s-collector)

실시간 Collector Agent의 heartbeat와 watch 상태를 확인합니다.

3-1. 리소스 카테고리 (#/k8s-resources)

Pod 상세 진단과 별개로 전체 Kubernetes 인벤토리를 운영 도메인별로 탐색합니다. 리소스 전체는 카테고리별 자산 수와 high 이상 위험 리소스를 보여주고, 각 카테고리 화면은 같은 /admin/k8s/inventory 원천 데이터를 필터링해 상태, Kind, namespace, cluster, spec 요약, 관측/수정 시각, YAML 변경, 타임라인, 리소스 그래프 진입점을 제공합니다.

4. Pod 관리 (#/k8s-pods)

Pod 목록·상세·로그·로그 분석·증적 번들·Golden Pod Diff·Health Replay·조치 안전성·플레이북·정책 기반 exec 세션 요청·Debug Container 요청을 한 화면에서 확인합니다. CrashLoop/OOM/ImagePull/Pending/Evicted 계열 Pod, 최근 restart 신호가 있는 Pod, 최근 Warning 이벤트가 붙은 Pod를 빠르게 찾는 데 초점을 둡니다.

5. 변경 타임라인 (#/k8s-timeline)

리소스의 spec 리비전·이벤트·액션을 시간축으로 병합해 장애 전후 변화를 추적합니다.

5-1. YAML 변경 (#/k8s-manifest-changes)

kubectl edit 대신 Clustara 안에서 단일 Kubernetes 리소스 YAML을 변경 요청으로 관리합니다. live manifest를 불러와 수정하고, 요청을 생성한 뒤 검증 → 승인 → Server-Side Apply → 사후 검증 → 증적/patch export 흐름으로 처리합니다.

5-2. Harbor 앱 런칭 (#/harbor, #/harbor-robots, #/app-launcher)

Harbor 기반 애플리케이션 런칭은 Registry 등록 → Robot Account 등록/검증 → Project/Namespace 매핑 → imagePullSecret preview → Deployment/Service manifest preview → 런칭 요청 저장 → Manifest Change 초안 생성 순서로 진행합니다.

5-3. GitOps 변경관리 (#/gitops)

GitOps Change Manager는 외부 CD 도구를 대체하는 sync 엔진이 아니라, Clustara의 Application Stack과 live cluster 변경을 Git 선언, PR 초안, 단계적 배포, rollback 증적으로 연결하는 변경관리 화면입니다. 자세한 운영 개념은 GitOps Change Manager 가이드를 참고하세요.

5-4. 외부연동 (#/external-integrations)

GitLab, Bitbucket Server, Harbor Registry/Robot, Mattermost 같은 외부 연동 자격증명을 사용자별로 암호화 저장합니다. 일회성 token 입력이 반복되는 운영 동선을 줄이고, GitOps/Harbor 화면에서는 Credential selectbox만 선택해 재사용합니다. 화면은 전체, GitLab, Bitbucket, Harbor, Mattermost 탭으로 구분됩니다.

6. 장애 분석 (#/k8s-rca)

규칙 기반 원인 후보를 심각도순으로 보여줍니다 — 원인·근거 이벤트·점검 대상·조치 후보 + 타임라인 딥링크.

7. 장애 워룸 (#/k8s-incidents)

현재 high/critical RCA 후보를 incident 단위로 묶고, 상세 화면에서 RCA 근거·관련 이벤트·리비전·정책/보안 finding·관련 액션·영향도 그래프를 한 번에 확인합니다.

8. 리소스 그래프 (#/k8s-graph)

최신 인벤토리에서 Service selector, Ingress backend, workload selector, Pod volume/node, HPA target 관계를 계산해 서비스 영향 범위(blast radius)를 보여줍니다.

9. 연결성 점검 (#/k8s-conn)

10. 액션 승인함 (#/k8s-actions)

위험 작업의 요청 → 영향도 → 승인 → 실행 워크플로우.

메뉴 위치는 상단 액션 승인함 바로가기 또는 장애 및 대응 → 액션 승인함입니다. 개발자 뷰에서 생성된 액션 요청도 이 화면에 모입니다.

10.5 노드·GPU 운영 (#/k8s-nodes)

11. 용량·자동확장 (#/k8s-capacity)

HPA desired/max와 노드 CPU request 점유율을 직관적인 막대로 비교하고, 확장 한계·30일 내 용량 소진을 우선 신호로 표시합니다. Replica 시뮬레이션은 수집된 워크로드 후보를 선택해 Kind·Namespace·이름을 자동 입력할 수 있고 실제 scale은 수행하지 않습니다. 기능별 운영 가이드는 HPA, 할당 효율, 소진 예측, 시뮬레이션의 판단 기준을 제공합니다.

12. 그룹·오너십 (#/k8s-meta)

13. AI 분석 (#/k8s-ai)

자연어 장애 질의·운영 리포트. 수집된 RCA·Warning 이벤트·변경 diff를 근거로만 답합니다(근거 없으면 추측하지 않음). LLM 업스트림(UPSTREAM_*) 미설정 시 LLM 답변 대신 근거 데이터를 반환합니다.

14. 비용 (#/k8s-cost)

request×단가 기반 월 비용 추정 — namespace/담당팀/클러스터 그룹/비용센터별 집계 + 단가 편집.

15. 보안 (#/k8s-security)

16. 정책 센터 (#/k8s-policy)

17. SLO 센터 (#/k8s-slo)

namespace/service 단위 SLO와 에러버짓을 확인합니다. 현재는 incident open duration을 downtime proxy로 사용하며, Prometheus availability 보정은 후속 확장 대상입니다.

18. 운영 설정 (#/k8s-settings)

비용 단가(KRW/vCPU·월, KRW/GB·월), 알림(조용한 시간 HH-HH, 팀→Mattermost 채널 매핑 JSON), latency 분석, ChatOps, Terminal Policy Builder, Debug Container 요청 정책을 한 곳에서 설정합니다. 수집 주기·보존 기간은 게이트웨이 설정(설정 메뉴)을 따릅니다.


알림 (Mattermost)

POST /admin/k8s/notify/scan이 현재 high/critical 장애·보안을 평가해 알림을 보냅니다 — 중복 제거(6h 윈도우)·조용한 시간·담당팀 채널 라우팅·리소스 딥링크 포함. cron//loop으로 주기 호출하세요. Mattermost webhook은 기존 알림 설정에서 구성합니다.

장기 분석 (ClickHouse)

CLICKHOUSE_URL 설정 후 POST /admin/k8s/dw/bootstrap(테이블 생성) → POST /admin/k8s/dw/sink(fact 적재, 주기 호출). 미설정 시 no-op.

일상 운영 체크리스트

  1. 운영 홈에서 위험 클러스터·장애 후보·최근 변경 확인
  2. 수집 상태에서 실시간 agent heartbeat, watch lag, resourceVersion checkpoint 확인
  3. Pod 관리에서 위험 Pod의 컨테이너 상태, 이벤트, current/previous 로그 확인
  4. 장애 보고가 필요하면 증적 번들로 로그·이벤트·manifest·RCA를 ZIP으로 보관
  5. 장애 후보는 장애 워룸에서 근거·영향도·변경 이력 확인
  6. 리소스 그래프연결성 점검으로 Service/Ingress/PVC 영향 범위와 이상 점검
  7. 주간: 보안(Pod Security·RBAC·TLS 만료)·용량(확장 한계·과다 할당)·비용·SLO 리뷰
  8. 정책 센터로 표준 정책 위반 추적, 배포 전 Admission 시뮬레이터 활용