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

이 페이지에 접근할 수 없다면 기관 관리자에게 런타임 관리 권한을 요청하세요. 런타임 환경은 서비스 배포의 기반이 되므로 적절한 권한 관리가 중요합니다.
왜 런타임 환경 관리가 필요한가?
서비스를 배포하려면 어디에 배포할지 먼저 정해야 합니다. 런타임 환경은 바로 그 "어디"를 의미합니다.
- 개발/스테이징/운영 환경 분리: 각 환경에 맞는 런타임을 등록하여 안전하게 배포할 수 있습니다.
- 리소스 현황 파악: 각 런타임의 CPU, 메모리 사용량을 모니터링하여 용량 계획을 세울 수 있습니다.
- 중앙 집중 관리: 여러 클러스터와 호스트를 한 곳에서 관리하여 운영 효율성을 높입니다.
KIOPS를 처음 사용한다면, 먼저 장비 관리 페이지에서 서버를 등록한 후 이 페이지에서 런타임 환경을 설정하세요.
지원하는 런타임 유형
KIOPS는 세 가지 컨테이너 런타임 환경을 지원합니다. 각 유형의 특징을 이해하고 프로젝트에 맞는 환경을 선택하세요.
- 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, 리소스 사용량을 상세하게 확인합니다.
- 런타임 환경: 클러스터 버전, 설정, 구성 정보를 확인합니다.
- 설정/시크릿 관리: 네임스페이스 단위로 ConfigMap과 Secret을 키-값 형태로 조회하고 편집합니다. 관리 권한이 필요합니다.
- 운영 관리: 클러스터 운영 관련 작업을 수행합니다 (업그레이드, 백업 등).
- 실시간 모니터링: CPU, 메모리 등 리소스 사용량을 실시간 그래프로 확인합니다.
- 인증서 관리: 클러스터 인증서 상태를 확인하고 갱신합니다.
- 권한 관리: RBAC 설정, 클러스터 접근 권한을 관리합니다.
Kubernetes 탭 화면







Docker/Podman 상세 페이지 탭 구성
Docker와 Podman 런타임 상세 페이지는 4개 탭으로 구성됩니다.
- 개요: 호스트 상태, 실행 중인 컨테이너 수, 이미지 수를 확인합니다.
- 런타임 환경: Docker/Podman 버전, 설정 정보를 확인합니다.
- 운영 관리 (
ops): 컨테이너 운영, 정리, 점검 등의 작업을 수행합니다. - 실시간 모니터링: 컨테이너별 리소스 사용량을 모니터링합니다.
Docker 탭 화면



Podman 탭 화면



사용 방법
Kubernetes 클러스터 등록하기
내부 클러스터 등록 (KIOPS 관리형)
KIOPS에서 직접 관리하는 클러스터를 등록하는 경우입니다. 장비 관리에 등록된 서버에서 Kubernetes가 실행 중이어야 합니다.
- 런타임 추가 버튼을 클릭합니다.
- 타입에서 Kubernetes를 선택합니다.
- 클러스터 유형에서 내부 클러스터를 선택합니다.
- 마스터 노드가 설치된 장비를 선택합니다.
- kubeconfig가 자동으로 감지됩니다. 감지되지 않으면 직접 경로를 입력하세요 (기본:
~/.kube/config). - 연결 테스트 버튼을 클릭하여 연결을 확인합니다.
- 테스트 성공 시 저장 버튼을 클릭합니다.
외부 클러스터 등록 (기존 클러스터 연결)
이미 구축된 외부 클러스터(예: AWS EKS, GCP GKE, 자체 구축 클러스터)를 연결하는 경우입니다.
- 런타임 추가 버튼을 클릭합니다.
- 타입에서 Kubernetes를 선택합니다.
- 클러스터 유형에서 외부 클러스터를 선택합니다.
- 연결 방식 선택 모달이 나타나면 자동 / VPN / 직접 SSH 중 하나를 선택합니다. (모드별 동작은 아래 연결 방식 선택 참고.)
- kubeconfig 파일을 업로드하거나 내용을 직접 붙여넣습니다.
- 여러 컨텍스트가 있는 경우 사용할 컨텍스트를 선택합니다.
- 연결 테스트 버튼을 클릭하여 연결을 확인합니다.
- 테스트 성공 시 저장 버튼을 클릭합니다.
kubeconfig는 Kubernetes 클러스터에 접속하기 위한 설정 파일입니다. 클러스터 주소, 인증 정보, 컨텍스트(어떤 클러스터에 어떤 사용자로 접속할지) 등이 포함됩니다. 보통 ~/.kube/config 경로에 위치합니다.
kubeconfig 파일에는 클러스터 접근을 위한 인증 정보가 포함되어 있습니다. 이 파일이 유출되면 클러스터에 무단 접근될 수 있으므로 안전하게 관리하세요.
Docker 런타임 등록하기
Docker가 설치된 호스트를 KIOPS에 등록합니다.
- 런타임 추가 버튼을 클릭합니다.
- 타입에서 Docker를 선택합니다.
- Docker가 설치된 호스트 장비를 선택합니다.
- Docker 소켓 경로를 확인합니다.
- 기본값:
/var/run/docker.sock - 원격 접속 시:
tcp://192.168.1.100:2375형식
- 기본값:
- 연결 테스트 버튼을 클릭하여 연결을 확인합니다.
- 테스트 성공 시 저장 버튼을 클릭합니다.
Docker 소켓은 Docker 데몬(백그라운드 서비스)과 통신하기 위한 인터페이스입니다. KIOPS는 이 소켓을 통해 Docker에 명령을 전달합니다.
Podman 런타임 등록하기
Podman 등록 과정은 Docker와 유사합니다.
- 런타임 추가 버튼을 클릭합니다.
- 타입에서 Podman을 선택합니다.
- Podman이 설치된 호스트 장비를 선택합니다.
- Podman 소켓 경로를 확인합니다 (기본:
/run/podman/podman.sock). - 연결 테스트 후 저장 버튼을 클릭합니다.
메트릭 서버 설치하기 (Kubernetes)
메트릭 서버는 Kubernetes 클러스터의 리소스 사용량을 수집합니다. HPA(자동 스케일링)나 kubectl top 명령어를 사용하려면 반드시 설치해야 합니다.
- Kubernetes 런타임 상세 페이지로 이동합니다.
- 실시간 모니터링 탭을 선택합니다.
- 메트릭 서버 설치 버튼을 클릭합니다.
- 설치 옵션을 확인합니다:
- 버전: 최신 안정 버전 권장
- TLS 인증서 검증: 자체 서명 인증서 환경에서는 비활성화
- 설치 버튼을 클릭합니다.
- 설치가 완료되면 리소스 사용량 그래프가 표시됩니다.
메트릭 서버가 없으면 리소스 모니터링이 제한됩니다. Kubernetes 클러스터를 등록한 후 가장 먼저 메트릭 서버를 설치하는 것을 권장합니다.
연결 방식 (자동 / VPN / 직접 SSH)
런타임 환경 등록·연결 테스트, 외부 클러스터 가져오기, 배포·운영 등 SSH 명령이 필요한 작업을 시작하면 연결 방식 선택 모달이 표시됩니다. 모드는 세 가지입니다.

- 자동: 대상 인프라 IP를 AllowedIPs로 커버하는 VPN 프로파일이 있고 활성 세션이 있으면 VPN 터널을 통해 접속하고, 없으면 직접 SSH로 폴백합니다. 대부분의 경우 권장 기본값입니다.
- VPN: 항상 VPN 터널을 강제합니다. 활성 세션이 없으면 빠른 연결 모달이 자동으로 떠서 VPN 연결을 유도하며, 대상 IP가 AllowedIPs 범위 밖이면 명확한 오류 메시지로 알려 줍니다.
- 직접 SSH: VPN을 사용하지 않고, 등록된 다중 홉(점프 서버 → 타겟) 그대로 직접 접속합니다. VPN 프로파일이 있어도 무시됩니다.
직접 SSH를 선택하면 원격 접속 설정 모달이 나타나 대상 서버의 호스트·포트·사용자명과 인증 방식(비밀번호 / SSH 키)을 입력받습니다. 입력한 접속 정보는 브라우저 LocalStorage에 저장되어 다음 연결 시 재사용됩니다.

자동/VPN 모드에서 활성 세션이 있고 대상 IP가 VPN의 AllowedIPs에 포함되면, KIOPS는 등록된 점프 서버 hop을 자동으로 strip하여 타겟 서버(또는 API Server)의 SSH 정보만으로 직접 접속합니다. 외부 클러스터를 등록할 때도 점프 서버를 별도로 입력하거나 SSH 터널 호스트를 지정할 필요가 없습니다 — VPN 자체가 게이트웨이 역할을 대체하기 때문입니다.
자세한 동작 원칙과 endpoint 일치 조건은 VPN 설정 → 연결 방식 문서를 참고하세요.
자주 사용하는 기능 바로가기
- 런타임 설정 변경: 런타임 목록 → 대상 런타임의 톱니바퀴 아이콘 클릭
- 외부 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회 확인하세요
- 리소스 사용량 추이를 모니터링하여 용량 계획을 세우세요
- 사용하지 않는 런타임은 정리하여 관리 부담을 줄이세요