Container > NHN Container Service(NCS) > 사용 가이드

템플릿

템플릿은 워크로드 실행에 필요한 컨테이너, 네트워크 등의 리소스를 정의하는 서비스입니다.

템플릿 생성

NHN Container Service(NCS)를 사용하려면 먼저 템플릿을 생성해야 합니다. Container > NHN Container Service(NCS) 페이지에서 템플릿 탭을 클릭한 뒤 템플릿 생성을 클릭합니다. 템플릿 생성에 필요한 항목은 다음과 같습니다.

항목 설명
템플릿 이름 템플릿의 이름. 32자 이내의 영문 소문자와 숫자, 일부 기호(-)만 입력할 수 있습니다.
설명 템플릿에 대한 설명. 255자 이내로 입력할 수 있습니다.
컨테이너 이름 컨테이너의 이름. 253자 이내의 영문 소문자와 숫자, 일부 기호(-)만 입력할 수 있습니다.
컨테이너 레지스트리 컨테이너 이미지의 레지스트리
  • NHN Container Registry(NCR) 사용 방법은 NCR 사용 가이드를 참고하세요.
  • Docker Hub 또는 기타 레지스트리 사용 시 레지스트리 유형을 선택해야 합니다.
레지스트리 유형 레지스트리의 유형. 퍼블릭 또는 프라이빗을 선택할 수 있습니다.
이미지 URL 컨테이너 이미지의 정보. 255자 이내의 영문 소문자와 숫자, 일부 기호(-, \_, ., ,, /, @, :)만 입력할 수 있습니다.
레지스트리 아이디 프라이빗 레지스트리 인증에 사용되는 아이디
레지스트리 비밀번호 프라이빗 레지스트리 인증에 사용되는 비밀번호
메모리 컨테이너에 할당하는 메모리
포트 컨테이너에서 사용하는 포트
CPU 컨테이너에 할당하는 CPU 개수. 0.25~16 사이의 수를 0.25개 단위로 입력할 수 있습니다.
GPU 컨테이너에 할당하는 GPU 개수. 0~2 사이의 수를 1개 단위로 입력할 수 있습니다.
명령 컨테이너가 시작될 때 실행될 명령어. 이미지에 지정된 ENTRYPOINT보다 우선합니다.
작업 디렉터리 컨테이너의 작업 디렉터리. 이미지에 지정된 WORKDIR보다 우선합니다.
환경 변수 컨테이너에 설정할 환경 변수
스토리지 컨테이너에 연결할 스토리지
스토리지 이름 스토리지의 이름. 63자 이내의 영문 소문자와 숫자, 일부 기호(-)만 입력할 수 있습니다.
NAS 스토리지 연결 경로 컨테이너에 연결할 스토리지의 연결 정보. 스토리지는 컨테이너의 /mnt/$스토리지_이름에 마운트 됩니다.
  • NAS 스토리지 사용. Storage > NAS 페이지에서 연결할 NAS 스토리지의 연결 정보를 입력합니다.
  • 별도로 구축된 NFS 서버 사용. NFS 서버의 마운트 포인트를 입력합니다.
    • NFSv3 버전만 사용할 수 있습니다.
서브넷 VPC에 정의된 서브넷 중 인스턴스에 연결할 서브넷

필요한 정보를 입력하고 템플릿 생성을 클릭하면 템플릿이 생성됩니다.

[참고] 워크로드를 빠르게 실행시킬 수 있도록 템플릿을 생성하면 서브넷 대역의 네트워크 인터페이스를 미리 생성합니다.

[참고] 템플릿에 동일한 프로토콜의 포트는 1개만 추가할 수 있습니다.

[참고] 템플릿과 동일한 VPC를 사용하는 NAS 스토리지만 사용할 수 있습니다. 스토리지는 최대 3개 연결할 수 있습니다.

템플릿 조회

생성한 템플릿은 Container > NHN Container Service(NCS) 페이지의 템플릿 탭에서 확인할 수 있습니다. 템플릿 목록에는 컨테이너 리소스의 총합이 표시됩니다.

기본 정보

특정 템플릿을 클릭하여 기본 정보 탭에서 상세 정보를 확인할 수 있습니다.

항목 설명
이름 템플릿의 이름과 ID
설명 템플릿의 설명
컨테이너 템플릿에 정의된 컨테이너 개수
CPU 템플릿에 정의된 컨테이너들의 CPU 수를 더한 수
GPU 템플릿에 정의된 컨테이너들의 GPU 수를 더한 수
생성일 템플릿이 생성된 날짜
VPC 템플릿에 설정된 VPC
서브넷 템플릿에 설정된 서브넷

컨테이너

특정 템플릿을 클릭한 후 컨테이너 탭으로 이동하여 템플릿에 추가한 컨테이너 목록을 확인할 수 있습니다. 컨테이너 목록에서 특정 컨테이너를 선택하여 상세 정보를 확인할 수 있습니다.

항목 설명
컨테이너 이름 컨테이너의 이름
이미지 URL 컨테이너 이미지의 정보
메모리 컨테이너에 할당된 메모리
CPU 컨테이너에 할당된 CPU 수
GPU 컨테이너에 할당된 GPU 수
포트 컨테이너에서 사용하는 포트
명령 컨테이너가 시작될 때 실행될 명령어
작업 디렉터리 컨테이너의 작업 디렉터리
환경 변수 컨테이너에 설정된 환경 변수
스토리지 컨테이너에 연결된 스토리지

템플릿 삭제

삭제할 템플릿을 선택하고 템플릿 삭제를 클릭하면 삭제됩니다.

[참고] 해당 템플릿을 사용하는 워크로드가 존재하면 템플릿을 삭제할 수 없습니다.

워크로드

정의한 템플릿을 이용하여 컨테이너를 실행하는 서비스입니다.

워크로드 생성

Container > NHN Container Service(NCS) 페이지에서 워크로드 탭을 클릭한 뒤 워크로드 생성을 클릭합니다. 워크로드 생성에 필요한 항목은 다음과 같습니다.

항목 설명
템플릿 템플릿의 이름
  • 템플릿 선택을 클릭하여 생성된 템플릿 중에서 선택합니다.
  • 템플릿 생성을 클릭하여 새로운 템플릿을 생성하여 선택합니다.
이름 워크로드의 이름. 32자 이내의 영문 소문자와 숫자, 일부 기호(-)만 입력할 수 있습니다.
설명 워크로드에 대한 설명. 255자 이내로 입력할 수 있습니다.
작업 요청 수 실행할 템플릿 수. 1~100 사이의 값을 입력할 수 있습니다.
로드 밸런서 사용 여부 템플릿의 컨테이너 정보에 포트가 지정된 경우에만 사용 버튼이 활성화됩니다. 로드 밸런서를 사용하는 경우 컨테이너에 추가한 포트만 사용할 수 있습니다.
플로팅 IP 사용 여부 플로팅 IP를 사용하기 위해서는 반드시 인터넷 게이트웨이가 설정된 서브넷에 연결되어 있어야 합니다.
외부에서 컨테이너에 접근하기 위해서는 플로팅 IP를 사용해야 합니다.
플로팅 IP를 사용하면 domain URL이 추가됩니다.

필요한 정보를 입력하고 워크로드 생성을 클릭하면 템플릿이 생성됩니다.

[참고] 레거시 네트워크 환경에서는 로드 밸런서를 사용할 수 없습니다.

워크로드 조회

생성한 워크로드는 Container > NHN Container Service(NCS) 페이지의 워크로드 탭에서 확인할 수 있습니다.

기본 정보

특정 워크로드를 클릭하여 기본 정보 탭에서 상세 정보를 확인할 수 있습니다.

항목 설명
이름 워크로드의 이름과 ID
설명 워크로드에 대한 설명
템플릿 사용된 템플릿의 이름
작업 요청 수 실행할 템플릿 수
작업 실행 수 실행된 템플릿 수
생성일 워크로드가 생성된 날짜
VPC 워크로드에 설정된 VPC
서브넷 워크로드에 설정된 서브넷
보안 그룹 워크로드에 설정된 보안 그룹의 이름
로드 밸런서 로드 밸런서 사용 여부

[참고] 워크로드 상태는 포함된 모든 컨테이너와 로드 밸런서의 상태를 고려하여 결정됩니다. 개별 컨테이너의 상태는 실행 컨테이너 탭에서 확인할 수 있습니다.

[참고] 서브넷 생성 직후 1~2분 동안은 로드 밸런서가 활성화되지 않을 수 있습니다.

실행 컨테이너

특정 워크로드를 클릭한 후 실행 컨테이너 탭에서 컨테이너를 클릭하여 컨테이너 상세 정보를 확인할 수 있습니다.

항목 설명
컨테이너 이름 컨테이너의 이름
이미지 URL 컨테이너 이미지의 정보
IP 컨테이너에 할당된 IP 주소
상태 컨테이너의 상태
재시작 횟수 컨테이너가 재시작된 횟수
메모리 컨테이너에 할당된 메모리
CPU 컨테이너에 할당된 CPU 수
GPU 컨테이너에 할당된 GPU 수
포트 컨테이너에서 사용하는 포트
명령 컨테이너가 시작될 때 실행될 명령어
작업 디렉터리 컨테이너의 작업 디렉터리
환경 변수 컨테이너에 설정된 환경 변수
스토리지 컨테이너에 연결된 스토리지
시작일 컨테이너가 시작된 날짜

모니터링

특정 워크로드를 클릭한 후 모니터링 탭에서 컨테이너의 리소스 사용률을 확인할 수 있습니다. 컨테이너 지표는 15초 단위로 수집되며 최대 1년간 보관됩니다. 모니터링을 제공하는 항목은 다음과 같습니다.

항목 단위 설명
CPU 사용률 % 컨테이너에 할당된 CPU 기준으로 사용률이 제공됩니다.
메모리 사용률 % 컨테이너에 할당된 Memory 기준으로 사용률이 제공됩니다.
네트워크 데이터 송신 bps 워크로드의 작업 기준으로 네트워크 데이터 송신 정보가 제공됩니다.
네트워크 데이터 수신 bps 워크로드의 작업 기준으로 네트워크 데이터 수신 정보가 제공됩니다.
디스크 사용률 % 컨테이너에 추가된 NAS 스토리지의 사용률이 제공됩니다.

이벤트

특정 워크로드를 클릭한 후 이벤트 탭에서 컨테이너에서 발생한 이벤트 정보를 확인할 수 있습니다. 이벤트 상태 선택을 클릭하여 이벤트의 상태별로 이벤트를 확인할 수 있습니다.

항목 설명
상태 이벤트의 상태
타입 이벤트의 타입
설명 이벤트의 설명
이벤트 최초 발생 일시 이벤트 최초 발생 일시
이벤트 마지막 발생 일시 이벤트 마지막 발생 일시
발생 수 이벤트가 발생한 횟수

[참고] 이벤트는 최대 1시간만 유지되어 1시간 이전의 정보는 확인할 수 없습니다.

로그

특정 워크로드를 클릭한 후 로그 탭에서 컨테이너의 로그를 확인할 수 있습니다. 시간을 지정하지 않으면 현재 시점부터 5분 전 로그가 조회됩니다.

[참고] 로그는 최대 2개월 동안 보관됩니다.

워크로드 삭제

삭제할 워크로드를 선택하고 워크로드 삭제를 클릭하면 삭제됩니다.

참고 사항

리전

  • NCS 서비스는 KR1 리전에서만 사용할 수 있습니다.

개수 제약

  • 템플릿에는 최대 10개의 컨테이너를 기술할 수 있습니다.
  • 워크로드에는 최대 10개의 실행 수를 지정할 수 있습니다.

템플릿/컨테이너

  • 템플릿에 기술되는 컨테이너들은 각각 서로 다른 컨테이너 포트를 사용하도록 설정해야 합니다.
  • 컨테이너 포트에 직접 연결하는 경우, 보안 그룹이 잘 설정되어 있는지 확인해야 합니다.
  • 컨테이너 포트를 지정하지 않은 템플릿을 사용하는 경우 로드 밸런서를 생성할 수 없습니다.
  • 로드 밸런서를 사용하는 경우 컨테이너에 추가되지 않은 포트는 보안 그룹에 포트를 추가하여도 사용할 수 없습니다.
  • 프라이빗 레지스트리에 존재하는 컨테이너 이미지를 활용하여 컨테이너를 생성할 수 있습니다. 지원되는 소스 레지스트리 유형과 URL, Access ID, Access Secret은 아래와 같습니다.
소스 레지스트리 유형 Access ID Access Secret
Azure Container Registry 액세스 키 사용자 이름 액세스 키 암호
Google Cloud Container Registry _json_key 서비스 계정의 비공개 키(JSON 유형)
Docker Hub Username Password
Harbor Username Password
Quay json_file {
"account_name": "$사용자 계정",
"docker_cli_password": "$Quay에서 생성한 암호화된 Password"
}
  • 컨테이너 이미지 내에서 컨테이너가 서비스를 위해 사용하기로 결정한 포트와 템플릿의 컨테이너 포트는 일치해야 합니다.
    • 80 포트를 서비스하기로 지정된 기본 nginx 컨테이너 이미지를 이용하는 경우 컨테이너 포트에 80을 지정해야 합니다. 컨테이너 이미지의 내용을 변경하여 다른 포트를 서비스하도록 설정한 경우 해당 포트 번호를 지정해야 합니다.

GPU

문제 해결 가이드

NCS 서비스를 사용하면서 겪을 수 있는 다양한 문제들을 해결하는 방법을 설명합니다.

워크로드

  • 워크로드가 정상적으로 생성되었고, 컨테이너도 정상적으로 실행 중일 때 FailedCreatePodSandBox/CNITimedOutWaitingForVIFs 타입의 컨테이너 이벤트가 발생하는 현상
    • 해당 이벤트는 NCS에서 사용하기 위한 Network Interface가 생성 완료되지 않은 경우 발생합니다. 템플릿 생성 직후 워크로드를 생성하거나 워크로드를 대량 생성하는 경우 일시적으로 발생하는 이벤트로 일정 시간이 경과하면 해당 이벤트는 발생하지 않습니다.
  • 워크로드가 Pending 상태일 때 IpAddressGenerationFailure 타입의 컨테이너 이벤트가 발생하는 현상
    • 해당 이벤트는 지정한 서브넷에 사용할 수 있는 IP 주소가 더 이상 없는 경우 발생합니다. 서브넷의 CIDR를 변경하거나 다른 서브넷을 사용하여 템플릿을 생성해야 합니다.
TOP