온라인 애플리케이션

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

1. 애플리케이션 목록

001

특정 프로젝트에 배포된 애플리케이션 정보를 모니터링 할 수 있다.

애플리케이션 명 & 애플리케이션 ID & 설명

애플리케이션 식별을 위한 고유한 이름과 ID 그리고 애플리케이션 설명

클러스터

애플리케이션이 기동된 클러스터 정보

배포 유형

애플리케이션 배포를 위해서 사용된 배포 유형 정보

롤아웃

배포된 애플리케이션의 롤아웃 정보

리비전

애플리케이션 배포를 위해 사용자가 정의한 리소스의 버전 정보

빌드

배포된 애플리케이션 식별을 위한 빌드 넘버 정보

트래픽

내/외부 연계 관련된 Ingress 컴포넌트의 구성 정보

액션
항목 설명

애플리케이션 수정

등록된 애플리케이션 수정

애플리케이션 삭제

등록된 애플리케이션 삭제

빌드 트리거 정보

CI/CD 파이프라인 수행을 위한 트리거 정보

각 애플리케이션 별로 ArgoCD의 상태를 확인해 Synced가 아닌 경우, 애플리케이션 카드의 박스 테두리가 빨간색으로 깜빡이며 표시된다.

2. 애플리케이션 추가

2.1. 기본 설정

002 003
애플리케이션 관리를 위한 기본 정보를 등록한다.

애플리케이션 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

004 005
애플리케이션 배포 및 운영에 필요한 쿠버네티스의 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. 롤아웃

006

애플리케이션 운영에 필요한 롤아웃 정보를 등록한다.

롤아웃 유형

애플리케이션에 배포에 사용할 롤아웃 유형을 선택한다.

항목 설명

Rolling

Rolling Update 방식으로 중단 없는 서비스 지원

Canary

Canary 방식으로 중단 없는 서비스 지원

Blue/Green

Blue/Green 방식으로 중단 없는 서비스 지원

2.4. INGRESS

007

애플리케이션 운영에 필요한 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

008

애플리케이션 운영에 필요한 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다.

  • 제약사항 : 없음

2.6. HPA

009
Horizontal Pod Autoscaling

CPU 평균 사용률에 따른 수평적 파드 자동조절을 설정한다. 쿠버네티스 autoscaling/v2 Api 버전 기준으로 리소스가 생성된다.

  • 제약사항 : 없음

2.7. 가용 클러스터

010

애플리케이션을 배포할 쿠버네티스 클러스터를 선택한다.

Deployment Overrides

애플리케이션 배포에 필요한 Deployment의 항목을 클러스터 단위로 재정의 할 수 있다.

  • 제약사항 : 없음

HPA Overrides

Horizontal Pod Autoscaling에 필요한 항목을 클러스터 단위로 재정의 할 수 있다.

  • 제약사항 : 없음

3. 애플리케이션 상세

011

배포된 애플리케이션의 상세 정보를 모니터링 할 수 있다.

애플리케이션의 런타임 스펙과 실제 실행 중인 파드의 정보가 일치하지 않는 경우, 애플리케이션 카드의 박스 테두리가 빨간색으로 깜빡이며 표시된다.

SWLab Bankware Global
  • 전체
  • BXM
  • BXCM
  • BXCP
  • BXI
제품 선택 시 더 정확한 매뉴얼 가이드를 제공해드립니다.

Copyright© Bankwareglobal All Rights Reserved.