온라인 애플리케이션
온라인 애플리케이션은 쿠버네티스의 Stateless 형태로 서비스를 제공하는 워크로드를 대상으로 애플리케이션 구성을 지원하는 표준화된 템플릿을 제공한다. 개발자는 표준 템플릿을 통해서 애플리케이션을 등록 관리하고 관련 리소스를 통합 모니터링 할 수 있다.
1. 애플리케이션 목록

특정 프로젝트에 배포된 애플리케이션 정보를 모니터링 할 수 있다.
- 애플리케이션 명 & 애플리케이션 ID & 설명
-
애플리케이션 식별을 위한 고유한 이름과 ID 그리고 애플리케이션 설명
- 클러스터
-
애플리케이션이 기동된 클러스터 정보
- 배포 유형
-
애플리케이션 배포를 위해서 사용된 배포 유형 정보
- 롤아웃
-
배포된 애플리케이션의 롤아웃 정보
- 리비전
-
애플리케이션 배포를 위해 사용자가 정의한 리소스의 버전 정보
- 빌드
-
배포된 애플리케이션 식별을 위한 빌드 넘버 정보
- 트래픽
-
내/외부 연계 관련된 Ingress 컴포넌트의 구성 정보
- 액션
-
항목 설명 애플리케이션 수정
등록된 애플리케이션 수정
애플리케이션 삭제
등록된 애플리케이션 삭제
빌드 트리거 정보
CI/CD 파이프라인 수행을 위한 트리거 정보
각 애플리케이션 별로 ArgoCD의 상태를 확인해 Synced가 아닌 경우, 애플리케이션 카드의 박스 테두리가 빨간색으로 깜빡이며 표시된다. |
2. 애플리케이션 추가
2.1. 기본 설정
애플리케이션 관리를 위한 기본 정보를 등록한다.
- 애플리케이션 ID
-
애플리케이션 식별을 위한 ID는 최대 30문자로 영어 소문자, 숫자, 하이픈(-)만 사용하고, 영숫자로 시작해서 영숫자로 끝나야 한다.
-
제약사항 : 최대 30 Bytes 소문자 영어, 숫자, 하이픈(-)
-
- 애플리케이션 명
-
애플리케이션을 식별할 수 있는 고유한 이름을 입력한다.
-
제약사항 : 최대 64 문자
-
- 애플리케이션 설명
-
애플리케이션 관리에 필요한 추가 구성 정보를 입력한다.
-
제약사항 : 최대 2048 문자
-
- Ingress 유형
-
애플리케이션에서 사용할 외부 연계 방법을 선택한다.
-
제약사항 : None / Istio Ingresss / Nginx Ingress / HAProxy Ingress
-
기본값 : None
항목 설명 None
외부 연계를 위한 Ingress Controller를 구성하지 않음
Istio Ingress
Istio Ingress Controller를 사용하여 외부 연계를 구성함
Nginx Ingress
Nginx Ingress Controller를 사용하여 외부 연계를 구성함
HAProxy Ingress
HAProxy Ingress Controller를 사용하여 외부 연계를 구성함
-
- 배포 유형
-
애플리케이션을 클러스터에 배포할 때 사용할 배포 유형을 선택한다.
-
제약사항 : ArgoCD / Kubernetes
-
기본값 : ArgoCD
항목 설명 ArgoCD
ArgoCD 컴포넌트를 사용하여 애플리케이션 배포
Kubernetes
kubectl API를 사용하여 애플리케이션 배포
-
- 배포 리소스
-
애플리케이션에서 참조할 배포 리소스 유형을 선택한다. 배포 리소스 유형에 따라 관련 정보를 입력한다. 해당 시스템 접속에 인증이 필요한 경우, [인증 입력]을 통해서 관련된 정보를 등록한다.
-
제약사항 : Gitlab / Container Image / Object Storage / FTP / ITSM
-
기본값 : Gitlab
항목 설명 Gitlab
Gitlab을 통해서 배포할 리소스를 참조함
Container Image
Container image를 통해서 배포할 리소스를 참조함
Object Storage
Object Storage를 통해서 배포할 리소스를 참조함
FTP
FTP를 통해서 배포할 리소스를 참조함
ITSM
ITSM을 통해서 배포할 리소스를 참조함
-
- 빌드 템플릿
-
애플리케이션에서 사용할 빌드 템플릿과 빌드 템플릿 버전을 선택한다. 선택한 빌드 템플릿 버전을 이용해서 CI/CD 파이프라인이 수행된다.
-
제약사항 : 없음
-
- Cron
-
Cron을 통해서 CI/CD 파이프라인을 수행할지 여부를 선택한다.
-
제약사항 : On/Off
-
기본값 : Off
-
- Agent Label 재정의
-
CI/CD 파이프라인이 수행될 Jenkins Agent를 선택한다.
-
제약사항 : 없음
-
- 우선 순위
-
애플리케이션 목록에서 표시될 우선 순위를 선택한다.
-
제약사항 : 숫자 1 ~ 50 선택 (작은 숫자 우선)
-
기본값 : 5
-
2.2. POD & CONTAINER
애플리케이션 배포 및 운영에 필요한 쿠버네티스의 Pod와 Container 관련 정보를 등록한다.
- Replicas
-
최초 배포 시 쿠버네티스 클러스터에서 서비스할 Pod 개수를 지정한다. 최초 배포가 실행된 이후에는 이 값은 무시된다.
-
제약사항 : 숫자
-
기본값 : 1
-
- Service Type
-
쿠버네티스의 서비스 리소스의 타입을 선택한다.
-
제약사항 : ClusterIp / Load Balancer / Node Port
-
기본값 : ClusterIp
-
- Ports
-
쿠버네티스의 서비스 리소스의 포트 정보를 입력한다.
항목 설명 Name
쿠버네티스 서비스 리소스의 포트 항목 이름
Protocol
쿠버네티스 서비스 리소스의 포트 항목 프로토콜
Port
서비스 리소스의 포트
TargetPort
컨테이너 리슨 포트
NodePort
쿠버네티스 서비스 리소스 포트 항목의 노드포트
- Command
-
컨테이너 시작 명령어를 입력한다. Dockerfile에 실행 명령어가 CMD로 정의된 경우, 실행 명령어를 재정의 할 수 있다.
-
제약사항 : 없음
-
- Args
-
컨터이너 시작 아규먼트를 입력한다. Dockerfile에 정의된 아규먼트를 재정의 할 수 있다.
-
제약사항 : 없음
-
- Environment Variables
-
컨테이너에서 사용할 환경 변수를 입력한다.
항목 설명 일반 변수
사용자가 Name과 Value를 입력
ConfigMap or Secret 변수
ConfigMap or Secret에 등록된 항목 지정
- Labels
-
컨테이너에서 사용할 레이블을 입력한다.
-
제약사항 : 없음
-
- Volumes
-
컨테이너에서 사용할 볼륨을 입력한다.
-
제약사항 : 없음
-
- Toleration
-
Taint가 지정된 노드에 Pod를 배포해야 하는 경우 해당 Taint에 대한 Toleration을 설정한다.
-
제약사항 : 실제 노드에 지정된 Taint에 대한 Toleration
-
- Service Account
-
컨테이너에서 사용할 Service Account Name을 선택한다.
-
제약사항 : 없음
-
- Node Selector
-
Pod를 특정 노드에 배포해야 하는 경우 Node Selector를 설정한다.
-
제약사항 : 실제 노드에 등록된 레이블
-
- Resource Quota
-
컨테이너에서 사용할 리소스 크기를 지정한다.
-
제약사항 : 없음
-
- GPU Quota
-
Pod에서 사용할 GPU 리소스 개수를 지정한다.
-
제약사항 : 숫자 1 ~ 5 선택
-
기본값 : 1
-
2.3. 롤아웃

애플리케이션 운영에 필요한 롤아웃 정보를 등록한다.
- 롤아웃 유형
-
애플리케이션에 배포에 사용할 롤아웃 유형을 선택한다.
항목 설명 Rolling
Rolling Update 방식으로 중단 없는 서비스 지원
Canary
Canary 방식으로 중단 없는 서비스 지원
Blue/Green
Blue/Green 방식으로 중단 없는 서비스 지원
2.4. INGRESS

애플리케이션 운영에 필요한 Ingress 관련 정보를 등록한다.
- 트래픽 유형
-
애플리케이션에 사용할 트래픽 유형을 선택한다.
항목 설명 North/South
Ingress나 NodePort를 통해서 외부 연계 구성
East/West
외부 연계를 사용하지 않고 내부 연계 구성
- Request Matching
-
특정 비즈니스 애플리케이션으로 라우팅하기 위한 Request Matching 방식을 지정한다.
항목 설명 URI
URI 매칭을 통한 서비스 라우팅
Domain Name
도메인 네임을 통한 서비스 라우팅
- Gateways
-
Istio Ingress를 사용하는 경우, 서비스 라우팅을 위한 특정 Gateway를 입력한다.
-
제약사항 : 없음
-
- Expose Port
-
쿠버네티스 서비스에 등록된 포트 중에서 Ingress에서 사용할 포트를 선택한다.
-
제약사항 : 서비스에 등록된 포트
-
- Service Mesh
-
Istio Ingress를 구성한 경우 서비스 메쉬 기능을 사용할 수 있다.
-
제약사항 : Istio 구성 필수
-
2.5. HEALTH CHECKS

애플리케이션 운영에 필요한 Health Check 정보를 등록한다.
- Readiness Probe
-
컨테이너가 요청을 처리할 준비가 되었는지 여부를 검증한다. 만약 Readiness probe가 실패한다면, 엔드포인트 컨트롤러는 파드에 연관된 모든 서비스들의 엔드포인트에서 파드의 IP주소를 제거한다. Readiness probe의 초기 지연 이전의 기본 상태는 Failure다. 만약 컨테이너가 Readiness probe를 지원하지 않는다면, 기본 상태는 Success다.
-
제약사항 : 없음
-
- Liveness Probe
-
컨테이너가 동작 중인지 여부를 검증한다. 만약 Liveness probe가 실패한다면, kubelet은 컨테이너를 죽이고, 해당 컨테이너는 재시작 정책의 대상이 된다. 만약 컨테이너가 Liveness probe를 제공하지 않는 경우, 기본 상태는 Success다.
-
제약사항 : 없음
-
- Startup Probe
-
컨테이너 내의 애플리케이션이 시작되었는지를 검증한다. Startup probe가 설정된 경우, 성공할 때까지 다른 나머지 프로브는 활성화되지 않는다. 만약 Startup probe가 실패하면, kubelet이 컨테이너를 죽이고, 컨테이너는 재시작 정책에 따라 처리된다. 컨테이너에 Startup probe가 없는 경우, 기본 상태는 Success다.
-
제약사항 : 없음
-