템플릿은 워크로드 실행에 필요한 컨테이너, 네트워크 등의 리소스를 정의하는 서비스입니다.
NHN Container Service(NCS)를 사용하려면 먼저 템플릿을 생성해야 합니다. Container > NHN Container Service(NCS) 페이지에서 템플릿 탭을 클릭한 뒤 템플릿 생성을 클릭합니다. 템플릿 생성에 필요한 항목은 다음과 같습니다.
항목 | 설명 |
---|---|
템플릿 이름 | 템플릿의 이름. 32자 이내의 영문 소문자와 숫자, 일부 기호(- )만 입력할 수 있습니다. |
설명 | 템플릿에 대한 설명. 255자 이내로 입력할 수 있습니다. |
컨테이너 이름 | 컨테이너의 이름. 253자 이내의 영문 소문자와 숫자, 일부 기호(- )만 입력할 수 있습니다. |
컨테이너 레지스트리 | 컨테이너 이미지의 레지스트리
|
레지스트리 유형 | 레지스트리의 유형. 퍼블릭 또는 프라이빗을 선택할 수 있습니다. |
이미지 URL | 컨테이너 이미지의 정보. 255자 이내의 영문 소문자와 숫자, 일부 기호(- , \_ , . , , , / , @ , : )만 입력할 수 있습니다. |
레지스트리 아이디 | 프라이빗 레지스트리 인증에 사용되는 아이디 |
레지스트리 비밀번호 | 프라이빗 레지스트리 인증에 사용되는 비밀번호 |
메모리 | 컨테이너에 할당하는 메모리 |
포트 | 컨테이너에서 사용하는 포트 |
CPU | 컨테이너에 할당하는 CPU 개수. 0.25~16 사이의 수를 0.25개 단위로 입력할 수 있습니다. |
GPU 사용 여부 | 컨테이너의 GPU 사용 여부를 결정합니다. |
GPU 타입 | 컨테이너에 할당할 GPU 타입을 결정합니다. |
명령 | 컨테이너가 시작될 때 실행될 명령어. 이미지에 지정된 ENTRYPOINT보다 우선합니다. |
작업 디렉터리 | 컨테이너의 작업 디렉터리. 이미지에 지정된 WORKDIR보다 우선합니다. |
환경 변수 | 컨테이너에 설정할 환경 변수 |
스토리지 | 컨테이너에 연결할 스토리지 |
스토리지 이름 | 스토리지의 이름. 63자 이내의 영문 소문자와 숫자, 일부 기호(- )만 입력할 수 있습니다. |
NAS 스토리지 연결 경로 | 컨테이너에 연결할 스토리지의 연결 정보. 스토리지는 컨테이너의 /mnt/$스토리지_이름 에 마운트 됩니다.
|
서브넷 | VPC에 정의된 서브넷 중 인스턴스에 연결할 서브넷 |
필요한 정보를 입력하고 템플릿 생성을 클릭하면 템플릿이 생성됩니다.
[참고] 템플릿에 동일한 프로토콜의 포트는 1개만 추가할 수 있습니다. TCP와 HTTP는 동일한 포트를 사용할 수 없습니다. HTTP 프로토콜을 사용하면 로드 밸런서에서 Client IP를 식별할 수 있는 X-Forwarded-For Header가 추가됩니다.
[참고] 템플릿과 동일한 VPC를 사용하는 NAS 스토리지만 사용할 수 있습니다. 스토리지는 최대 3개 연결할 수 있습니다.
[참고] 컨테이너의 ephemeral-storage는 20GB로 제한됩니다. 20GB 이상 사용하게 되는 경우 컨테이너가 재기동되어 ephemeral-storage에 생성된 로그와 데이터는 초기화됩니다.
생성한 템플릿은 Container > NHN Container Service(NCS) 페이지의 템플릿 탭에서 확인할 수 있습니다. 템플릿 목록에는 컨테이너 리소스의 총합이 표시됩니다.
특정 템플릿을 클릭하여 기본 정보 탭에서 상세 정보를 확인할 수 있습니다.
항목 | 설명 |
---|---|
이름 | 템플릿의 이름과 ID |
설명 | 템플릿의 설명 |
컨테이너 | 템플릿에 정의된 컨테이너 개수 |
CPU | 템플릿에 정의된 컨테이너들의 CPU 수를 더한 수 |
생성일 | 템플릿이 생성된 날짜 |
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분 전 로그가 조회됩니다.
[참고] 로그의 최대 크기는 5GB로 제한되며 2개월 동안 보관됩니다.
실행 히스토리를 확인할 워크로드를 선택해 실행 히스토리 탭에서 워크로드 템플릿 변경 진행 상황 및 이력을 확인할 수 있습니다.
항목 | 설명 |
---|---|
템플릿 이름 | 워크로드가 사용하는 템플릿 이름 |
실행 시간 | 해당 템플릿을 사용하는 워크로드의 배포 시작 시간 |
종료 시간 | 해당 템플릿을 사용하는 워크로드의 종료 시간 |
상태 | 배포 상태 succeeded: 배포 완료 pending: 배포 중 terminated: 종료된 워크로드 |
조회된 히스토리 정보를 클릭하여 실행 히스토리 상세 정보를 확인할 수 있습니다.
[참고] 실행 중인 워크로드의 히스토리에는 종료 시간이 표시되지 않으며 상태가 succeeded로 유지됩니다. [주의] 워크로드 삭제 이후에는 실행 히스토리를 확인할 수 없습니다.
변경할 워크로드를 선택한 뒤 기본 정보 탭에서 변경을 클릭해 실행 중인 워크로드를 변경할 수 있습니다.
항목 | 설명 |
---|---|
설명 | 워크로드의 설명 |
템플릿 | 실행 중인 워크로드의 템플릿 변경 템플릿 변경 시 롤링 업데이트 방식으로 워크로드가 무중단 배포됩니다. 작업이 하나씩 순차적으로 교체되어 배포 중에 기존 작업과 새로운 작업이 동시에 실행된 상태일 수 있습니다. 실행 히스토리 탭에서 변경 결과를 확인할 수 있습니다. |
작업 요청 수 | 실행 중인 워크로드의 작업 수 변경 작업 요청 수 증가: 기존 작업은 유지하며 새로운 작업이 생성됩니다. 작업 요청 수 감소: 감소된 작업 개수만큼 작업이 종료됩니다. |
로드 밸런서 | 워크로드의 로드 밸런서 사용 여부 변경 |
[주의] 로드 밸런서를 사용하여 워크로드 서비스 이용 중 템플릿을 변경하는 경우 순단이 발생할 수 있습니다. [참고] 워크로드가 Pending 상태인 경우 로드 밸런서를 변경할 수 없습니다.
삭제할 워크로드를 선택하고 워크로드 삭제를 클릭하면 삭제됩니다.
NCS 역할을 설정하여 서비스 및 리소스에 액세스할 수 있는 역할을 제어할 수 있습니다. 예를 들어 'NCS 관리자'는 템플릿과 워크로드에 대한 생성, 조회 및 관리할 수 있는 역할을 가지며, 'NCS 사용자'는 템플릿과 워크로드에 대한 조회 역할만 갖도록 설정할 수 있습니다.
NCS에 대한 실행 역할은 NHN Cloud Console 화면에서 설정합니다. 1. 프로젝트 관리 화면에서 멤버 관리 메뉴를 선택합니다. 2. 역할을 변경할 멤버를 클릭합니다. 3. 역할 추가를 선택하여, 서비스별 역할을 추가합니다. * 왼쪽 영역에서 기본 인프라 서비스를 선택한 후, 오른쪽 영역에서 역할을 선택합니다. 4. 선택된 역할을 확인하여 추가하거나 삭제할 수 있습니다. 5. 추가를 클릭하여 프로젝트 멤버에 변경된 역할을 적용합니다. 6. 역할이 추가되면 멤버를 선택하여 상세 역할 내역을 확인할 수 있습니다.
역할 그룹에 대한 사용 가이드는 콘솔 가이드를 참고하세요.
NCS를 이용하기 위해 다음 리소스에 대한 역할이 필요합니다. * NCS - NCS의 리소스를 조회, 생성 및 관리하도록 허용합니다. * Infrastructure - NCS 사용자는 VPC, Subnet 리소스를 조회하도록 허용합니다. 이는 NCS에서 템플릿과 워크로드를 조회할 때 필요합니다. * Load Balancer - NCS 사용자는 Infrastructure Load Balancer 리소스를 생성, 관리하도록 허용합니다. 이는 NCS에서 워크로드의 Load Balancer를 사용할 때 필요합니다. * Security Group - NCS 사용자는 Infrastructure Security Group 리소스를 생성, 관리하도록 허용합니다. 이는 NCS에서 템플릿에 대한 Security Group을 사용할 때 필요합니다.
프로덕션 환경에서는 필요한 역할만 추가하는 것이 좋습니다. NCS 서비스를 이용하기 위한 최소 역할은 다음과 같습니다.
기능 | Infrastructrue NCS ADMIN | Infrastructrue MEMBER | Infrastructrue Security Group ADMIN | Infrastructrue Load Balancer ADMIN |
---|---|---|---|---|
템플릿 조회 | O | |||
템플릿 생성 | O | O | ||
템플릿 삭제 | O | O | ||
워크로드 조회 | O | |||
워크로드 생성 및 변경 | O | O | O | |
워크로드 삭제 | O | O | O |
소스 레지스트리 유형 | 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" } |
NCS 서비스를 사용하면서 겪을 수 있는 다양한 문제들을 해결하는 방법을 설명합니다.