서비스 등록
KIOPS 플랫폼에 서비스를 등록하여 빌드와 배포를 관리할 수 있습니다. KIOPS는 GitLab, GitHub, Docker Hub 세 가지 소스 타입을 지원하며, 소스 타입에 따라 등록 절차가 다릅니다.
설치형 Basic 제외서비스 소스 유형 → GitLab
왜 서비스를 등록하나요?
서비스를 등록하면 다음과 같은 DevSecOps 워크플로우를 자동화할 수 있습니다:
코드 푸시 → 자동 빌드 → 보안 스캔 → 테스트 → 배포
- Git 저장소와 연동하여 코드 변경 시 자동 빌드
- SAST, SCA, DAST 등 보안 취약점 자동 분석
- 클릭 한 번으로 Kubernetes 또는 Docker에 배포
DevSecOps는 개발(Development), 보안(Security), 운영(Operations)을 통합한 접근 방식입니다. 개발 초기 단계부터 보안을 고려하여 더 안전한 소프트웨어를 빠르게 제공할 수 있습니다.
사전 요구사항
서비스를 등록하기 전에 다음 조건이 충족되어야 합니다:
- 서비스를 배포할 런타임(K8s 클러스터 또는 Docker) 이 이미 등록되어 있어야 합니다.
- GitLab/GitHub 사용 시: admin이 기관 단위 토큰을 미리 등록해야 합니다. 일반 사용자는 모달에서 토큰을 직접 입력하지 않습니다.
- Docker Hub 사용 시: 공개 이미지는 인증 불필요, 프라이빗 이미지는 Docker Hub Access Token이 필요합니다.
서비스를 등록하기 전에 런타임을 먼저 등록해야 합니다:
소스 타입별 admin 전용 메뉴와 사용자 메뉴
서비스 등록 모달의 동작은 소스 타입과 사용자 역할(admin/일반) 에 따라 달라집니다. 각 소스 타입은 admin 전용 설정 메뉴를 가지며, 일반 사용자는 admin이 미리 등록한 토큰을 자동으로 사용합니다.
GitLab 액션 메뉴 (총 4개)
- GitLab 설정 [admin] - GitLab 서버 URL과 액세스 토큰을 기관 단위로 등록
- GitLab 계정 생성 [admin] - 기관 사용자용 GitLab 계정 일괄 생성
- 기존 프로젝트 등록 - 기관 토큰으로 조회된 GitLab 프로젝트 중 선택
- 새 프로젝트 생성 - 기관 토큰을 사용해 GitLab에 새 프로젝트를 생성하고 KIOPS에 등록
일반 사용자에게는 기존 프로젝트 등록과 새 프로젝트 생성 2개 메뉴만 보입니다.
GitHub 액션 메뉴
- GitHub 설정 [admin] - GitHub Personal Access Token을 기관 단위로 등록
- 기존 프로젝트 등록 - 기관 토큰으로 조회된 GitHub 리포지토리 중 선택
- 새 프로젝트 생성 - 기관 토큰을 사용해 GitHub에 새 리포지토리를 생성하고 KIOPS에 등록
일반 사용자에게는 기존 프로젝트 등록과 새 프로젝트 생성 2개 메뉴만 보입니다.
서비스 등록 시 토큰을 별도로 입력하지 않습니다. 서비스를 등록하면 KIOPS가 기관에 저장된 admin 토큰을 자동으로 조회해 사용합니다. 토큰이 등록되어 있지 않으면 admin에게 "GitLab 설정" 또는 "GitHub 설정"을 요청하세요.
Docker Hub 액션 메뉴
- Docker Hub 이미지 등록 - 이미지 이름과 태그를 직접 입력하여 등록 (소스 빌드 없이 바로 배포)
등록 절차
Step 1: 서비스 관리 페이지 이동
- 좌측 메뉴에서 [서비스 관리] 페이지를 클릭합니다.
- 우측 상단의 서비스 등록/생성 버튼을 클릭합니다.
Step 2: 소스 타입 선택
서비스 등록 모달이 열리면 소스 타입과 액션을 선택합니다.
- GitLab: 기존 프로젝트 등록 / 새 프로젝트 생성
- GitHub: 기존 프로젝트 등록 / 새 프로젝트 생성
- Docker Hub: 이미 빌드된 이미지를 직접 배포
- 직접 개발한 코드가 있으면 → GitLab 또는 GitHub (코드가 있는 저장소 선택)
- 이미 만들어진 이미지를 배포하려면 → Docker Hub (MySQL, Redis 같은 공개 이미지나 직접 빌드한 이미지)
GitLab 서비스 등록
기존 프로젝트 등록
기관 admin이 등록한 GitLab 토큰으로 자동 조회된 프로젝트 목록에서 선택합니다.
- 프로젝트 선택: 조회된 GitLab 프로젝트 중 등록할 프로젝트를 선택합니다.
- 브랜치 (필수): 빌드에 사용할 브랜치 (예:
main,develop) - 서비스명 (필수): KIOPS에서 사용할 서비스 이름 (영문 소문자, 숫자, 하이픈 권장)
새 프로젝트 생성
GitLab 서버에 새 프로젝트를 만들고 동시에 KIOPS 서비스로 등록합니다.
- 그룹/네임스페이스 선택: 새 프로젝트를 생성할 GitLab 그룹
- 프로젝트 이름 (필수)
- 서비스명 (필수): KIOPS 서비스 이름
- 브랜치: 기본값은
main
admin이 "GitLab 설정"에서 토큰을 등록할 때 다음 권한이 필요합니다.
api(필수): 빌드, 배포, Auto CI, 프로젝트 생성 등 전체 기능read_repository(필수): 소스코드 조회read_api(Auto CI 사용 시): Webhook 기반 자동 빌드
GitHub 서비스 등록
기존 프로젝트 등록
기관 admin이 등록한 GitHub PAT로 자동 조회된 리포지토리 목록에서 선택합니다.
- 리포지토리 선택: 조회된 리포지토리 중 등록할 항목 선택
- 브랜치 (필수): 선택한 리포지토리의 브랜치 목록에서 선택
- 서비스명 (필수): KIOPS에서 사용할 서비스 이름
새 프로젝트 생성
GitHub에 새 리포지토리를 만들고 동시에 KIOPS 서비스로 등록합니다.
- 조직/사용자 선택: 새 리포지토리를 생성할 GitHub 소유자
- 리포지토리 이름 (필수)
- 서비스명 (필수)
- 브랜치: 기본값은
main
GitHub 소스 타입으로 등록된 서비스는 K8s 배포 시 namespace가 자동으로 service_name과 동일하게 설정됩니다. 별도로 namespace를 지정할 필요가 없습니다.
Docker Hub 서비스 등록
Docker Hub 서비스 등록은 소스코드 빌드 없이 이미 빌드된 Docker 이미지를 직접 배포할 때 사용합니다.
Step 1: 배포 인프라 선택
- 배포 인프라 (필수): 이미지를 배포할 런타임을 선택합니다 (K8s 또는 Docker)
- 서비스명 (필수): 서비스 이름을 입력합니다.
Step 2: 이미지 구성
하나의 서비스에 여러 컨테이너 이미지를 포함할 수 있습니다. 각 이미지별로 다음 정보를 입력합니다.
- 컨테이너 이름 (필수): 컨테이너를 식별할 이름 (예:
web,db) - 이미지 (필수): Docker Hub 이미지 이름. 공식 이미지(
mysql,nginx등) 또는 사용자 이미지(username/repo) - 태그 (필수): 선택한 이미지의 사용 가능한 태그 (예:
latest,8.0,alpine) - Command (선택): 이미지 기본 CMD 대신 실행할 명령어
포트, 환경 변수, 볼륨, 외부 접근 경로, 내부 전용 여부 등의 배포 설정은 서비스 등록 단계가 아니라 배포 단계에서 환경별로 설정합니다.
웹 애플리케이션 + 데이터베이스를 하나의 서비스로 구성할 수 있습니다.
- 이미지 1:
nginx:alpine(웹 서버, 포트 80, 외부 접근 경로/) - 이미지 2:
mysql:8.0(데이터베이스, 포트 3306, 볼륨/var/lib/mysql, 내부 전용)
Step 3: 프라이빗 이미지 사용 (선택)
각 이미지마다 Public/Private 토글로 소스를 선택합니다. 프라이빗 이미지를 사용하려면 이미 연결된 Docker Hub 계정이 있어야 합니다. 인증 정보는 이전에 연결한 계정에서 자동으로 채워지며, 등록 모달에서 사용자명이나 토큰을 직접 입력하는 단계는 없습니다. 계정이 연결돼 있지 않으면 Private을 선택했을 때 "Private 이미지를 사용하려면 먼저 계정을 연결해주세요"라는 안내가 표시됩니다. 공개 이미지는 인증이 필요하지 않습니다.
Step 4: 등록 완료
등록 버튼을 클릭하면 Docker Hub 서비스가 등록됩니다. Docker Hub 서비스는 빌드 단계 없이 바로 배포할 수 있습니다.
소스 타입별 기능 비교
-
GitLab/GitHub (Git 소스)
- 소스코드 빌드 (Dockerfile 또는 Build Wizard)
- Auto CI (Git Push 시 자동 빌드)
- 보안 스캔 (SAST, SCA, DAST)
- 빌드된 이미지를 K8s/Docker에 배포
-
Docker Hub (이미지 소스)
- 빌드 없이 이미지 직접 배포
- 다중 컨테이너 구성 가능
- 공개/프라이빗 이미지 모두 지원
- K8s/Docker에 배포
등록 후 사용 가능한 기능
- 수동 빌드: 버튼 클릭으로 즉시 Docker 이미지를 빌드합니다.
- Auto CI: Git Push 이벤트 발생 시 자동 빌드.
- Build Wizard: Dockerfile이 없는 프로젝트의 자동 Dockerfile 생성.
- 보안 스캔: SAST/SCA/DAST.
- 배포: K8s 또는 Docker 환경에 배포 (RollingUpdate, 롤백 지원).
다음 단계
서비스를 등록했으면 다음은 CI/CD 파이프라인을 구성할 차례입니다.
- Auto CI 설정 - Git Push 시 자동 빌드 설정하기
- Build Wizard - Dockerfile 자동 생성하기
- 보안 스캔 설정 - SAST/SCA/DAST 분석 설정하기