본문으로 건너뛰기

Package

패키지를 통하여 프로젝트에서 앱을 생성할 수 있는 템플릿을 생성합니다. GW에서 제공하는 서비스(Tabular-ML, Vision-ML, Operation-Routine등) 이 외의 다른 서비스를 사용자가 필요한 형태로 등록할 수 있습니다. 등록하려는 패키지는 쿠버네티스에서 적용 가능한 Yaml 형태로 등록합니다.

NOTE

제공하는 이미지는 대부분 패키지로 등록하여 이용 가능합니다.
ex) nginx, ubuntu, jupyter notebook등..
사용자가 직접 생성한 이미지를 GW의 Dockerhub 또는 다른 private repository에 등록한 경우에도 이 기능을 이용하여 패키지를 생성할 수 있습니다.

Package List

GW에 등록된 패키지의 목록를 보여줍니다. 화면 상단의 [검색] 버튼을 통해서 패키지 검색 기능을 제공합니다.

add_label
NOTE

GW플랫폼에서 서비스하는 소프트웨어(Tabular-ML, Vision-ML, Operation-Routine)은 패키지 목록에 포함되지 않습니다.

Create Package

화면 상단의 [추가]를 통하여 신규 패키지를 생성합니다.

  • 패키지 이미지: 패키지의 대표 이미지

  • 패키지 이름 : 사용할 패키지 이름

  • 버전 : 패키지의 버전

  • 설명 : 패키지의 설명

[생성]을 눌러 패키지를 생성하고 나면, 목록 화면에서 새로 생성된 패키지의 이름을 클릭하여 Yaml 편집 화면으로 이동합니다.

Yaml 편집기에서는 2가지 모드를 제공하고 있습니다. 왼쪽 패널의 Generator를 이용하여 기본적인 Yaml 설정이 가능하며, 보다 상세한 기능이 필요한 경우 오른쪽 패널에서 직접 Yaml을 편집할 수 있습니다.
설정이 완료된 이후에는 [저장] 버튼을 눌러 설정을 저장합니다.

Yaml Generator

Yaml Generator에서는 Deployment와 Service를 구성할 수 있는 기능([Add Deployment], [Add Service])을 제공합니다. Yaml Generator에서 사용되는 용어는 쿠버네티스의 구성 요소와 동일합니다.
각각의 설정에 해당되는 내용은 아래와 같습니다.

Deployment

  • Deployment Name : Deployment의 이름을 정의합니다.

  • Labels : Deployment를 식별하는 라벨을 정의합니다.

  • Replicas : 해당 수 만큼 Replica Pod를 생성할 수 있습니다.

  • Selector : 이 필드는 Deployment가 관리할 Pod를 찾는 방법을 정의합니다.

  • Strategy : 이 항목은 이전 Pod를 새로운 Pod로 대체하는 전략을 명시합니다. 롤링업데이트가 기본값입니다.

  • Image : Container에서 사용할 이미지를 입력합니다.

  • ImagePullPolicy : 이미지를 다운로드 할 정책을 정의합니다. Default인 경우, 이미지 버전이 없거나 latest인 경우 Always, 그 외의 경우는 IfNotPresent로 동작합니다.

  • Env : 쿠버네티스 Pod의 Container를 위한 환경 변수를 정의합니다.

  • Ports : 서비스와 Container를 연결하기 위한 노출(포트) 설정을 합니다.

  • ImagePullSecrets : private 레지스트리의 이미지를 기반으로 Container를 실행할 때 사용합니다.

  • Volumes : 추가적인 Volume구성을 이 필드에서 설정할 수 있습니다.

  • Resource CPU(Request) : CPU 자원의 요청을 설정합니다.

  • Resource Memory(Request) : 메모리 자원의 요청을 설정합니다.

  • Resource Storage(Request) : 스토리지 자원의 요청을 설정합니다.

  • Resource CPU(Limits) : CPU 자원의 제한을 설정합니다.

  • Resource Memory(Limits) : 메모리 자원의 제한을 설정합니다.

  • Resource Storage(Limits) : 스토리지 자원의 제한을 설정합니다.

  • Resource NVIDIA GPU: NVIDIA GPU 자원 설정합니다. 이 설정은 limit 과 requests를 동일하게 설정합니다.

  • Resource AMD GPU: AMD GPU 자원을 설정합니다. 이 설정은 limit 과 requests를 동일하게 설정합니다.

NOTE

Deployment Name 항목에서 AppId는 시스템에서 예약된 변수입니다. weda-AppId와 같이 사용할 수 있습니다. 이 예약어는 필수로 사용해야하며, 사용하지 않는 경우 Deployment name의 중복으로 앱이 정상적으로 동작하지 않습니다.
Volumes에서 이 시스템에서 기본적으로 모든 컨테이너는 컨테이너 내부의 /data 공간을 마운트 합니다.( /data 공간을 다른 용도로 활용하는 이미지는 사용할 수 없습니다.)

Service

  • Service Name : 서비스의 이름을 설정합니다.

  • Type : 서비스 타입은 원하는 서비스 종류를 지정할 수 있도록 합니다. 기본값은 ClusterIP입니다.

  • Ports : 수신 포트를 타겟 포트에 매핑합니다. 기본적으로 타겟 포트는 포트와 같은 값으로 설정됩니다. Type에서 NodePort 타입을 선택하고 Ports를 설정하지 않는 경우, 시스템에서는 자동으로 포트를 할당합니다.

  • Selector : selector를 통하여 연결할 Deployment를 선택합니다. key에는 앱을 입력하고 value에는 앞서 작성된 Deployment에서 Deployment name에 사용된 이름을 입력합니다.

Yaml Editor

오른쪽 패널의 편집 화면에서 yaml 을 직접 설정합니다. 설정에 대한 보다 자세한 내용은 쿠버네티스 문서를 참고하세요.

Edit Package

패키지 목록화면에서 변경하려고 하는 패키지의 오른쪽 [Edit]을 통하여 정보를 변경할 수 있습니다.

Copy Package

패키지 목록화면에서 복사하려고 하는 패키지의 오른쪽 [Copy]를 통하여 정보를 복사할 수 있습니다.

Delete Package

패키지 목록화면에서 삭제하려고 하는 패키지의 오른쪽 [Delete을] 통하여 정보를 삭제할 수 있습니다.