본문으로 건너뛰기

런타임 환경

경로: /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 vs Docker

Podman은 Docker와 거의 동일한 명령어를 사용하지만, root 권한 없이 컨테이너를 실행할 수 있어 보안성이 높습니다. 보안 정책이 엄격한 환경에서는 Podman을 권장합니다.


UI 구성 살펴보기

런타임 목록 화면

런타임 목록에서는 등록된 모든 런타임 환경을 한눈에 볼 수 있습니다.

  • 이름: 런타임 환경의 식별 이름입니다 (예: prod-cluster, dev-docker).
  • 타입: Kubernetes, Docker, Podman 중 하나입니다.
  • 노드 수: Kubernetes의 경우 클러스터 내 노드 개수를 표시합니다.
  • 건강 상태: 런타임 환경의 연결 상태입니다 (정상/경고/오류).

각 런타임에서 수행할 수 있는 작업:

  • 상세 보기: 런타임 이름을 클릭하여 상세 페이지로 이동
  • 설정 변경: 톱니바퀴 아이콘을 클릭하여 설정 수정
  • 삭제: 더 이상 사용하지 않는 런타임 등록 해제

Kubernetes 상세 페이지 탭 구성

Kubernetes 런타임의 상세 페이지는 다양한 탭으로 구성되어 있습니다.

  • 개요: 클러스터 전체 상태 요약, 노드/Pod 현황을 한눈에 확인할 수 있습니다.
  • 노드 목록: 각 노드의 상태, IP, 리소스 사용량을 상세하게 확인합니다.
  • 런타임 환경: 클러스터 버전, 설정, 구성 정보를 확인합니다.
  • 운영 관리: 클러스터 운영 관련 작업을 수행합니다 (업그레이드, 백업 등).
  • 실시간 모니터링: CPU, 메모리 등 리소스 사용량을 실시간 그래프로 확인합니다.
  • 인증서 관리: 클러스터 인증서 상태를 확인하고 갱신합니다.
  • 권한 관리: RBAC 설정, 클러스터 접근 권한을 관리합니다.

Kubernetes 탭 화면

K8s 개요 탭

K8s 노드 목록 탭

K8s 런타임 환경 탭

K8s 운영 관리 탭

K8s 실시간 모니터링 탭

K8s 인증서 관리 탭

K8s 권한 관리 탭

Docker/Podman 상세 페이지 탭 구성

Docker와 Podman 런타임은 더 간단한 탭 구성을 가집니다.

  • 개요: 호스트 상태, 실행 중인 컨테이너 수, 이미지 수를 확인합니다.
  • 런타임 환경: Docker/Podman 버전, 설정 정보를 확인합니다.
  • 실시간 모니터링: 컨테이너별 리소스 사용량을 모니터링합니다.

Docker 탭 화면

Docker 개요 탭

Docker 런타임 환경 탭

Docker 실시간 모니터링 탭

Podman 탭 화면

Podman 개요 탭

Podman 런타임 환경 탭

Podman 실시간 모니터링 탭


사용 방법

Kubernetes 클러스터 등록하기

내부 클러스터 등록 (KIWI 관리형)

KIWI에서 직접 관리하는 클러스터를 등록하는 경우입니다. 장비 관리에 등록된 서버에서 Kubernetes가 실행 중이어야 합니다.

  1. 런타임 추가 버튼을 클릭합니다.
  2. 타입에서 Kubernetes를 선택합니다.
  3. 클러스터 유형에서 내부 클러스터를 선택합니다.
  4. 마스터 노드가 설치된 장비를 선택합니다.
  5. kubeconfig가 자동으로 감지됩니다. 감지되지 않으면 직접 경로를 입력하세요 (기본: ~/.kube/config).
  6. 연결 테스트 버튼을 클릭하여 연결을 확인합니다.
  7. 테스트 성공 시 저장 버튼을 클릭합니다.

외부 클러스터 등록 (기존 클러스터 연결)

이미 구축된 외부 클러스터(예: AWS EKS, GCP GKE, 자체 구축 클러스터)를 연결하는 경우입니다.

  1. 런타임 추가 버튼을 클릭합니다.
  2. 타입에서 Kubernetes를 선택합니다.
  3. 클러스터 유형에서 외부 클러스터를 선택합니다.
  4. kubeconfig 파일을 업로드하거나 내용을 직접 붙여넣습니다.
  5. 여러 컨텍스트가 있는 경우 사용할 컨텍스트를 선택합니다.
  6. 연결 테스트 버튼을 클릭하여 연결을 확인합니다.
  7. 테스트 성공 시 저장 버튼을 클릭합니다.
kubeconfig란?

kubeconfig는 Kubernetes 클러스터에 접속하기 위한 설정 파일입니다. 클러스터 주소, 인증 정보, 컨텍스트(어떤 클러스터에 어떤 사용자로 접속할지) 등이 포함됩니다. 보통 ~/.kube/config 경로에 위치합니다.

kubeconfig 보안 주의

kubeconfig 파일에는 클러스터 접근을 위한 인증 정보가 포함되어 있습니다. 이 파일이 유출되면 클러스터에 무단 접근될 수 있으므로 안전하게 관리하세요.

Docker 런타임 등록하기

Docker가 설치된 호스트를 KIWI에 등록합니다.

  1. 런타임 추가 버튼을 클릭합니다.
  2. 타입에서 Docker를 선택합니다.
  3. Docker가 설치된 호스트 장비를 선택합니다.
  4. Docker 소켓 경로를 확인합니다.
    • 기본값: /var/run/docker.sock
    • 원격 접속 시: tcp://192.168.1.100:2375 형식
  5. 연결 테스트 버튼을 클릭하여 연결을 확인합니다.
  6. 테스트 성공 시 저장 버튼을 클릭합니다.
Docker 소켓이란?

Docker 소켓은 Docker 데몬(백그라운드 서비스)과 통신하기 위한 인터페이스입니다. KIWI는 이 소켓을 통해 Docker에 명령을 전달합니다.

Podman 런타임 등록하기

Podman 등록 과정은 Docker와 유사합니다.

  1. 런타임 추가 버튼을 클릭합니다.
  2. 타입에서 Podman을 선택합니다.
  3. Podman이 설치된 호스트 장비를 선택합니다.
  4. Podman 소켓 경로를 확인합니다 (기본: /run/podman/podman.sock).
  5. 연결 테스트저장 버튼을 클릭합니다.

메트릭 서버 설치하기 (Kubernetes)

메트릭 서버는 Kubernetes 클러스터의 리소스 사용량을 수집합니다. HPA(자동 스케일링)나 kubectl top 명령어를 사용하려면 반드시 설치해야 합니다.

  1. Kubernetes 런타임 상세 페이지로 이동합니다.
  2. 실시간 모니터링 탭을 선택합니다.
  3. 메트릭 서버 설치 버튼을 클릭합니다.
  4. 설치 옵션을 확인합니다:
    • 버전: 최신 안정 버전 권장
    • TLS 인증서 검증: 자체 서명 인증서 환경에서는 비활성화
  5. 설치 버튼을 클릭합니다.
  6. 설치가 완료되면 리소스 사용량 그래프가 표시됩니다.
메트릭 서버 설치 권장

메트릭 서버가 없으면 리소스 모니터링이 제한됩니다. 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회 확인하세요
  • 리소스 사용량 추이를 모니터링하여 용량 계획을 세우세요
  • 사용하지 않는 런타임은 정리하여 관리 부담을 줄이세요