런타임 환경
경로: /runtimes, /runtimes/:infraId
서비스를 실제로 실행할 인프라 환경을 등록하고 관리하는 페이지입니다. Kubernetes 클러스터, Docker 호스트, Podman 환경을 한 곳에서 통합 관리할 수 있습니다.

이 페이지에 접근할 수 없다면 기관 관리자에게 런타임 관리 권한을 요청하세요. 런타임 환경은 서비스 배포의 기반이 되므로 적절한 권한 관리가 중요합니다.
왜 런타임 환경 관리가 필요한가?
서비스를 배포하려면 어디에 배포할지 먼저 정해야 합니다. 런타임 환경은 바로 그 "어디"를 의미합니다.
- 개발/스테이징/운영 환경 분리: 각 환경에 맞는 런타임을 등록하여 안전하게 배포할 수 있습니다.
- 리소스 현황 파악: 각 런타임의 CPU, 메모리 사용량을 모니터링하여 용량 계획을 세울 수 있습니다.
- 중앙 집중 관리: 여러 클러스터와 호스트를 한 곳에서 관리하여 운영 효율성을 높입니다.
KIWI를 처음 사용한다면, 먼저 장비 관리 페이지에서 서버를 등록한 후 이 페이지에서 런타임 환경을 설정하세요.
지원하는 런타임 유형
KIWI는 세 가지 컨테이너 런타임 환경을 지원합니다. 각 유형의 특징을 이해하고 프로젝트에 맞는 환경을 선택하세요.
- Kubernetes: 여러 컨테이너를 자동으로 관리하는 플랫폼입니다. 트래픽에 따른 자동 확장, 무중단 업데이트, 장애 자동 복구를 지원합니다. 대규모 운영 환경에 권장됩니다.
- Docker: 가장 널리 사용되는 컨테이너 실행 환경으로, 간단하고 직관적인 사용법이 특징입니다. 개발 환경, 소규모 서비스, 단일 서버 배포에 권장됩니다.
- Podman: Docker와 호환되면서 보안이 강화된 컨테이너 실행 환경입니다. 관리자 권한(root) 없이 컨테이너를 실행할 수 있어 보안이 중요한 환경에 권장됩니다.
런타임별 주요 기능
Kubernetes 클러스터 관리
Kubernetes는 가장 강력한 컨테이너 관리 기능을 제공합니다.
- 노드 상태 모니터링: 각 노드(서버)의 Ready/NotReady 상태를 실시간으로 확인합니다. 문제가 있는 노드를 빠르게 파악할 수 있습니다.
- 네임스페이스 관리: 클러스터 내에서 리소스를 논리적으로 분리합니다. 예를 들어
dev,staging,prod환경을 하나의 클러스터에서 분리 운영할 수 있습니다. - 리소스 사용량 확인: CPU, 메모리 사용량을 모니터링하여 리소스 부족 상황을 미리 예방합니다.
- 메트릭 서버 설치: 리소스 메트릭 수집을 위한 서버를 원클릭으로 설치합니다. HPA(자동 스케일링)를 사용하려면 반드시 필요합니다.
네임스페이스(Namespace)는 Kubernetes에서 클러스터 리소스를 논리적으로 분리하는 방법입니다. 마치 폴더처럼 관련 리소스를 그룹화하여 관리할 수 있습니다. 환경별(dev, staging, prod) 또는 팀별로 분리할 때 유용합니다.
Docker/Podman 호스트 관리
Docker와 Podman은 단일 호스트 환경에서 컨테이너를 관리하는 데 적합합니다.
- 컨테이너 관리: 실행 중인 컨테이너 목록과 상태를 확인하고, 시작/중지/재시작할 수 있습니다.
- 이미지 관리: 로컬에 저장된 컨테이너 이미지를 조회하고 관리합니다. 불필요한 이미지를 정리하여 디스크 공간을 확보할 수 있습니다.
- 볼륨 관리: 컨테이너 데이터를 영속적으로 저장하기 위한 볼륨을 관리합니다.
Podman은 Docker와 거의 동일한 명령어를 사용하지만, root 권한 없이 컨테이너를 실행할 수 있어 보안성이 높습니다. 보안 정책이 엄격한 환경에서는 Podman을 권장합니다.
UI 구성 살펴보기
런타임 목록 화면
런타임 목록에서는 등록된 모든 런타임 환경을 한눈에 볼 수 있습니다.
- 이름: 런타임 환경의 식별 이름입니다 (예:
prod-cluster,dev-docker). - 타입: Kubernetes, Docker, Podman 중 하나입니다.
- 노드 수: Kubernetes의 경우 클러스터 내 노드 개수를 표시합니다.
- 건강 상태: 런타임 환경의 연결 상태입니다 (정상/경고/오류).
각 런타임에서 수행할 수 있는 작업:
- 상세 보기: 런타임 이름을 클릭하여 상세 페이지로 이동
- 설정 변경: 톱니바퀴 아이콘을 클릭하여 설정 수정
- 삭제: 더 이상 사용하지 않는 런타임 등록 해제
Kubernetes 상세 페이지 탭 구성
Kubernetes 런타임의 상세 페이지는 다양한 탭으로 구성되어 있습니다.
- 개요: 클러스터 전체 상태 요약, 노드/Pod 현황을 한눈에 확인할 수 있습니다.
- 노드 목록: 각 노드의 상태, IP, 리소스 사용량을 상세하게 확인합니다.
- 런타임 환경: 클러스터 버전, 설정, 구성 정보를 확인합니다.
- 운영 관리: 클러스터 운영 관련 작업을 수행합니다 (업그레이드, 백업 등).
- 실시간 모니터링: CPU, 메모리 등 리소스 사용량을 실시간 그래프로 확인합니다.
- 인증서 관리: 클러스터 인증서 상태를 확인하고 갱신합니다.
- 권한 관리: RBAC 설정, 클러스터 접근 권한을 관리합니다.
Kubernetes 탭 화면







Docker/Podman 상세 페이지 탭 구성
Docker와 Podman 런타임은 더 간단한 탭 구성을 가집니다.
- 개요: 호스트 상태, 실행 중인 컨테이너 수, 이미지 수를 확인합니다.
- 런타임 환경: Docker/Podman 버전, 설정 정보를 확인합니다.
- 실시간 모니터링: 컨테이너별 리소스 사용량을 모니터링합니다.
Docker 탭 화면



Podman 탭 화면



사용 방법
Kubernetes 클러스터 등록하기
내부 클러스터 등록 (KIWI 관리형)
KIWI에서 직접 관리하는 클러스터를 등록하는 경우입니다. 장비 관리에 등록된 서버에서 Kubernetes가 실행 중이어야 합니다.
- 런타임 추가 버튼을 클릭합니다.
- 타입에서 Kubernetes를 선택합니다.
- 클러스터 유형에서 내부 클러스터를 선택합니다.
- 마스터 노드가 설치된 장비를 선택합니다.
- kubeconfig가 자동으로 감지됩니다. 감지되지 않으면 직접 경로를 입력하세요 (기본:
~/.kube/config). - 연결 테스트 버튼을 클릭하여 연결을 확인합니다.
- 테스트 성공 시 저장 버튼을 클릭합니다.
외부 클러스터 등록 (기존 클러스터 연결)
이미 구축된 외부 클러스터(예: AWS EKS, GCP GKE, 자체 구축 클러스터)를 연결하는 경우입니다.
- 런타임 추가 버튼을 클릭합니다.
- 타입에서 Kubernetes를 선택합니다.
- 클러스터 유형에서 외부 클러스터를 선택합니다.
- kubeconfig 파일을 업로드하거나 내용을 직접 붙여넣습니다.
- 여러 컨텍스트가 있는 경우 사용할 컨텍스트를 선택합니다.
- 연결 테스트 버튼을 클릭하여 연결을 확인합니다.
- 테스트 성공 시 저장 버튼을 클릭합니다.
kubeconfig는 Kubernetes 클러스터에 접속하기 위한 설정 파일입니다. 클러스터 주소, 인증 정보, 컨텍스트(어떤 클러스터에 어떤 사용자로 접속할지) 등이 포함됩니다. 보통 ~/.kube/config 경로에 위치합니다.
kubeconfig 파일에는 클러스터 접근을 위한 인증 정보가 포함되어 있습니다. 이 파일이 유출되면 클러스터에 무단 접근될 수 있으므로 안전하게 관리하세요.
Docker 런타임 등록하기
Docker가 설치된 호스트를 KIWI에 등록합니다.
- 런타임 추가 버튼을 클릭합니다.
- 타입에서 Docker를 선택합니다.
- Docker가 설치된 호스트 장비를 선택합니다.
- Docker 소켓 경로를 확인합니다.
- 기본값:
/var/run/docker.sock - 원격 접속 시:
tcp://192.168.1.100:2375형식
- 기본값:
- 연결 테스트 버튼을 클릭하여 연결을 확인합니다.
- 테스트 성공 시 저장 버튼을 클릭합니다.
Docker 소켓은 Docker 데몬(백그라운드 서비스)과 통신하기 위한 인터페이스입니다. KIWI는 이 소켓을 통해 Docker에 명령을 전달합니다.
Podman 런타임 등록하기
Podman 등록 과정은 Docker와 유사합니다.
- 런타임 추가 버튼을 클릭합니다.
- 타입에서 Podman을 선택합니다.
- Podman이 설치된 호스트 장비를 선택합니다.
- Podman 소켓 경로를 확인합니다 (기본:
/run/podman/podman.sock). - 연결 테스트 후 저장 버튼을 클릭합니다.
메트릭 서버 설치하기 (Kubernetes)
메트릭 서버는 Kubernetes 클러스터의 리소스 사용량을 수집합니다. HPA(자동 스케일링)나 kubectl top 명령어를 사용하려면 반드시 설치해야 합니다.
- Kubernetes 런타임 상세 페이지로 이동합니다.
- 실시간 모니터링 탭을 선택합니다.
- 메트릭 서버 설치 버튼을 클릭합니다.
- 설치 옵션을 확인합니다:
- 버전: 최신 안정 버전 권장
- TLS 인증서 검증: 자체 서명 인증서 환경에서는 비활성화
- 설치 버튼을 클릭합니다.
- 설치가 완료되면 리소스 사용량 그래프가 표시됩니다.
메트릭 서버가 없으면 리소스 모니터링이 제한됩니다. Kubernetes 클러스터를 등록한 후 가장 먼저 메트릭 서버를 설치하는 것을 권장합니다.
자주 사용하는 기능 바로가기
- 런타임 설정 변경: 런타임 목록 → 대상 런타임의 톱니바퀴 아이콘 클릭
- 외부 Kubernetes 연결: 런타임 추가 → Kubernetes → 외부 클러스터 선택
- 메트릭 서버 설치: Kubernetes 상세 → 실시간 모니터링 탭 → 메트릭 서버 설치
- I/O 모니터링 설치: Kubernetes 상세 → 실시간 모니터링 탭 → I/O 모니터링 설치 (cAdvisor 또는 Prometheus Stack)
- 인증서 갱신: Kubernetes 상세 → 인증서 관리 탭 → 대상 인증서 갱신
용어 설명
- 노드(Node): Kubernetes 클러스터를 구성하는 개별 서버(워커 머신)입니다.
- 마스터 노드: Kubernetes 클러스터의 제어 영역(Control Plane)을 실행하는 노드입니다. 클러스터 전체를 관리합니다.
- kubeconfig: Kubernetes 클러스터 접속 정보가 담긴 설정 파일입니다.
- 컨텍스트(Context): kubeconfig 내에서 클러스터, 사용자, 네임스페이스를 조합한 설정입니다. 여러 클러스터를 다룰 때 유용합니다.
- Docker 소켓: Docker 데몬과 통신하기 위한 인터페이스입니다 (Unix 소켓 또는 TCP 소켓).
- 볼륨(Volume): 컨테이너의 데이터를 영속적으로 저장하기 위한 스토리지입니다. 컨테이너가 삭제되어도 데이터가 유지됩니다.
- HPA: Horizontal Pod Autoscaler입니다. 부하에 따라 Pod 수를 자동으로 늘리거나 줄이는 기능입니다.
- RBAC: Role-Based Access Control입니다. 역할 기반으로 클러스터 접근 권한을 관리하는 방식입니다.
문제 해결 및 주의사항
- Kubernetes: API 서버(기본 포트 6443)에 네트워크 접근이 가능해야 합니다. 방화벽 설정을 확인하세요.
- Docker/Podman: 소켓 파일에 대한 읽기/쓰기 권한이 필요합니다.
자주 발생하는 문제
- 연결 테스트 실패: 네트워크 연결, 방화벽 설정, 인증 정보를 확인하세요.
- 리소스 사용량이 표시되지 않음: Kubernetes의 경우 메트릭 서버가 설치되어 있는지 확인하세요.
- 인증서 만료 경고: 외부 클러스터의 경우 인증서 만료일을 주기적으로 확인하고, 만료 전에 갱신하세요.
- 인증서 만료일을 월 1회 확인하세요
- 리소스 사용량 추이를 모니터링하여 용량 계획을 세우세요
- 사용하지 않는 런타임은 정리하여 관리 부담을 줄이세요