템플릿은 워크로드 실행에 필요한 컨테이너, 네트워크 등의 리소스를 정의하는 서비스입니다.
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보다 우선합니다. |
인자 | 컨테이너가 시작될 때 전달될 인자. 이미지에 지정된 CMD보다 우선합니다. |
작업 디렉터리 | 컨테이너의 작업 디렉터리. 이미지에 지정된 WORKDIR보다 우선합니다. |
환경 변수 | 컨테이너에 설정할 환경 변수 |
수명 주기 훅 | 컨테이너의 생성, 종료 시점에 실행할 커맨드를 설정할 수 있습니다. 생성 직후에 입력한 커맨드가 실패한다면 컨테이너가 재시작됩니다. 커맨드 실행 전에 컨테이너가 종료되는 경우 커맨드가 실행되지 않을 수 있습니다.
종료 직전(preStop) 예) bash,-c,curl $URL/preStop |
컨피그맵 | Object Storage에 업로드한 파일을 컨테이너 디렉터리에 마운트하여 사용할 수 있습니다.
|
시크릿 | Secure Key Manager에 저장한 기밀 데이터 파일을 컨테이너 디렉터리에 마운트하여 사용할 수 있습니다.
|
NAS 스토리지 연결 | 컨테이너에 연결할 NAS 스토리지를 입력합니다.
|
상태 점검 | 컨테이너의 상태를 점검하는 명령을 구성할 수 있습니다.
|
실행 제한 시간 | 초기화 컨테이너만 실행 제한을 설정할 수 있습니다. 설정하지 않는 경우 30초로 자동 설정됩니다. 실행 제한 시간을 초과하는 경우 워크로드는 Failed 상태로 변경됩니다. |
네트워크 | VPC에 정의된 서브넷 중 워크로드에 연결할 서브넷 |
템플릿 버전 이름 | 템플릿 버전 이름. 16자 이내의 영문 소문자와, 숫자, 일부 기호(- )만 입력할 수 있습니다. |
템플릿 버전 설명 | 템플릿 버전에 대한 설명, 255자 이내로 입력할 수 있습니다. |
DNS | 워크로드에서 사용하는 DNS 서버를 설정합니다. 설정하지 않는 경우 8.8.8.8을 사용합니다. Private DNS 연동이 필요하면 Private DNS Server IP를 입력합니다. |
HostAliases | IP 주소에 호스트명을 설정합니다. |
필요한 정보를 입력하고 템플릿 생성을 클릭하면 템플릿이 생성됩니다.
[주의] NCS 환경 점검 작업 또는 일시적인 오류로 인하여 컨테이너(task)가 재기동되는 경우 생성된 로그와 컨테이너 내부의 데이터는 초기화됩니다. 재기동되어도 유지가 필요한 데이터는 NAS 스토리지를 사용하세요.
[참고]
/var/${워크로드 이름}
경로에 컨테이너 간 임시 공유 스토리지가 제공됩니다.[참고] 템플릿에 동일한 프로토콜의 포트는 1개만 추가할 수 있습니다. TCP와 HTTP, HTTPS, TERMINATED_HTTPS는 동일한 포트를 사용할 수 없습니다. HTTP, TERMINATED_HTTPS 프로토콜을 사용하면 로드 밸런서에서 Client IP를 식별할 수 있는 X-Forwarded-For Header가 추가됩니다.
[참고] 컨테이너당 임시 스토리지는 20GB가 제공됩니다. 제공된 사용량을 초과하는 경우 컨테이너가 재시작되어 임시 스토리지는 초기화됩니다.
[참고] 컨피그맵과 시크릿은 템플릿을 만들 때의 정보를 사용합니다. 원본 파일이나 비밀 데이터가 수정되더라도, 이미 만들어진 템플릿의 정보는 영향을 받지 않습니다. 컨피그맵은 동일 조직 내의 프로젝트 Object Storage만 사용할 수 있습니다. 시크릿은 같은 프로젝트의 Secure Key Manager를 활용합니다. 시크릿을 사용하려면 먼저 Secure Key Manager 서비스를 활성화해야 합니다.
[참고] 초기화 컨테이너는 TCP, UDP 프로토콜만 사용할 수 있습니다. 초기화 컨테이너는 수명 주기 훅, 상태 점검을 사용할 수 없습니다. 초기화 컨테이너는 로드 밸런서에 포함되지 않습니다.
생성한 템플릿은 Container > NHN Container Service(NCS) 페이지의 템플릿 탭에서 확인할 수 있습니다. 템플릿 목록에는 사용 중인 워크로드 수, 최신 템플릿 버전, 템플릿 버전 개수가 표시됩니다.
특정 템플릿을 클릭하여 기본 정보 탭에서 상세 정보를 확인할 수 있습니다.
항목 | 설명 |
---|---|
이름 | 템플릿의 이름과 ID |
설명 | 템플릿의 설명 |
컨테이너 | 템플릿의 최신 버전에 정의된 컨테이너 개수 |
CPU | 템플릿의 최신 버전에 정의된 컨테이너들의 CPU 수를 더한 수 |
GPU | 템플릿의 최신 버전에 정의된 컨테이너들의 GPU 수를 더한 수 |
생성일 | 템플릿이 생성된 날짜 |
VPC | 템플릿에 설정된 VPC |
서브넷 | 템플릿에 설정된 서브넷 |
DNS | 템플릿에 설정된 DNS Server 정보 |
HostAliases | 템플릿에 설정된 HostAliases 정보 |
최신 템플릿 버전 | 템플릿에 생성된 최신 버전 |
템플릿 버전 수 | 템플릿에 생성된 버전 수 |
사용 중인 워크로드 수 | 템플릿을 사용 중인 워크로드 수 |
특정 템플릿을 클릭한 뒤 사용 중인 워크로드 탭으로 이동하여 템플릿을 사용 중인 워크로드 목록을 확인할 수 있습니다.
삭제할 템플릿을 선택하고 템플릿 삭제를 클릭하면 삭제됩니다.
[참고] 해당 템플릿을 사용하는 워크로드가 존재하면 템플릿을 삭제할 수 없습니다.
템플릿 목록에서 버전 보기를 클릭한 뒤 버전 생성을 클릭합니다. 템플릿 생성과 버전 생성의 다른 항목은 아래와 같습니다.
항목 | 설명 |
---|---|
템플릿 버전 | 새로운 버전의 기준 템플릿 버전을 선택합니다. |
컨테이너 수정 | 기준 템플릿 버전에 설정된 정보가 자동으로 추가됩니다. 레지스트리 계정과 컨피그맵의 AppKey, User Access Key, User Secret Key 정보는 기존 정보 사용 여부를 선택할 수 있습니다. |
즉시 배포 | 기준 템플릿 버전을 사용 중인 워크로드에 새로운 버전의 템플릿 즉시 적용 여부를 선택할 수 있습니다. 즉시 배포를 사용하는 경우 롤링 업데이트 방식으로 워크로드의 템플릿이 변경됩니다. |
네트워크 | 버전 생성에서는 워크로드에 연결할 서브넷을 선택할 수 없습니다. 템플릿 생성에서 선택한 서브넷을 사용합니다. |
템플릿 목록에서 버전 보기를 클릭하여 버전 목록을 확인할 수 있습니다. 버전 목록에는 컨테이너 리소스의 총합이 표시됩니다.
특정 버전을 클릭하여 기본 정보 탭에서 상세 정보를 확인할 수 있습니다.
특정 버전을 클릭한 후 컨테이너 탭으로 이동하여 버전에 추가한 컨테이너 목록을 확인할 수 있습니다. 컨테이너 목록에서 특정 컨테이너를 선택하여 상세 정보를 확인할 수 있습니다.
항목 | 설명 |
---|---|
컨테이너 이름 | 컨테이너의 이름 |
유형 | 컨테이너 유형 |
이미지 URL | 컨테이너 이미지의 정보 |
메모리 | 컨테이너에 할당된 메모리 |
CPU | 컨테이너에 할당된 CPU 수 |
GPU | 컨테이너에 할당된 GPU 정보 |
포트 | 컨테이너에서 사용하는 포트 |
명령 | 컨테이너가 시작될 때 실행될 명령어 |
인자 | 컨테이너가 시작될 때 전달될 인자 |
작업 디렉터리 | 컨테이너의 작업 디렉터리 |
환경 변수 | 컨테이너에 설정된 환경 변수 |
스토리지 | 컨테이너에 연결된 스토리지 |
수명 주기 훅 | 컨테이너에 설정된 수명 주기 훅 |
컨피그맵 | 컨테이너에 연결된 오브젝트 파일과 마운트 경로 |
시크릿 | 컨테이너에 연결된 기밀 데이터와 마운트 경로 |
상태 점검 | 컨테이너에 설정된 상태 점검 |
특정 버전을 클릭한 뒤 사용 중인 워크로드 탭으로 이동하여 해당 버전을 사용 중인 워크로드 목록을 확인할 수 있습니다.
삭제할 버전을 선택하고 버전 삭제를 클릭하면 삭제됩니다.
[참고] 해당 버전을 사용하는 워크로드가 존재하면 버전을 삭제할 수 없습니다.
정의한 템플릿을 이용하여 컨테이너를 실행하는 서비스입니다.
Container > NHN Container Service(NCS) 페이지에서 워크로드 탭을 클릭한 뒤 워크로드 생성을 클릭합니다. 워크로드 생성에 필요한 항목은 다음과 같습니다.
항목 | 설명 |
---|---|
템플릿 | 템플릿의 이름
|
이름 | 워크로드의 이름. 32자 이내의 영문 소문자와 숫자, 일부 기호(- )만 입력할 수 있습니다. |
설명 | 워크로드에 대한 설명. 255자 이내로 입력할 수 있습니다. |
작업 요청 수 | 실행할 템플릿 수. 1~100 사이의 값을 입력할 수 있습니다. |
배포 컨트롤러 | 워크로드 작업의 배포 컨트롤러를 선택할 수 있습니다.
|
예약 실행 | 시간 기반 스케줄을 설정하여 워크로드 실행을 예약할 수 있습니다.
워크로드 실행 주기가 10분 이하인 경우 로드 밸런서를 활성화할 수 없습니다. |
종료 예약 | 워크로드의 작업 종료 시간을 예약 설정할 수 있습니다.
|
로드 밸런서 | 템플릿의 컨테이너 정보에 포트가 지정된 경우에만 사용 버튼이 활성화됩니다.
|
내부 로드 밸런서 | NCS 내에서만 통신 가능한 로드 밸런서를 사용할 수 있습니다. 템플릿의 컨테이너 정보에 포트가 지정된 경우에만 사용 버튼이 활성화됩니다.
|
Private DNS | VPC 내에서 접근 가능한 도메인을 사용할 수 있습니다.
|
보안 그룹 | 워크로드의 보안 그룹을 지정할 수 있습니다. 워크로드 보안 그룹을 선택한 경우 컨테이너 포트의 보안 규칙을 생성해야 합니다. 워크로드 보안 그룹을 선택하지 않는 경우 NCS에서 생성한 보안 그룹이 적용되며 컨테이너 포트의 보안 규칙이 자동으로 생성됩니다. |
필요한 정보를 입력하고 워크로드 생성을 클릭하면 워크로드가 생성됩니다.
[참고] 예약 실행의 Cron 표현식(* * * * *)의 각 필드의 의미는 아래와 같습니다.
필드명 값의 허용 범위 허용된 특수 문자 분 0-59 *
/
,
-
시간 0-23 *
/
,
-
일 1-31 *
/
,
?
월 1-12
JAN-DEC*
/
,
-
요일 0-6
SUN-SAT*
/
,
?
[참고] 내부 로드 밸런서 IP로 로컬 통신은 할 수 없습니다.
[주의] 워크로드에서 사용 중인 Private DNS Zone 또는 Private DNS 레코드 세트를 삭제하면 VPC 내에서 도메인 연동이 되지 않습니다.
생성한 워크로드는 Container > NHN Container Service(NCS) 페이지의 워크로드 탭에서 확인할 수 있습니다.
특정 워크로드를 클릭하여 기본 정보 탭에서 상세 정보를 확인할 수 있습니다.
항목 | 설명 |
---|---|
이름 | 워크로드의 이름과 ID |
설명 | 워크로드에 대한 설명 |
템플릿 | 사용된 템플릿의 이름 |
배포 컨트롤러 | 워크로드의 배포 컨트롤러 |
작업 요청 수 | 실행할 템플릿 수 |
작업 실행 수 | 실행된 템플릿 수 |
생성일 | 워크로드가 생성된 날짜 |
VPC | 워크로드에 설정된 VPC 들 |
서브넷 | 워크로드에 설정된 서브넷 |
보안 그룹 | 워크로드에 설정된 보안 그룹의 이름 |
Private DNS | 워크로드에 설정된 Private DNS 정보 |
로드 밸런서 | 로드 밸런서 정보 |
내부 로드 밸런서 | 내부 로드 밸런서 정보 |
[참고] 워크로드 상태는 포함된 모든 컨테이너와 로드 밸런서의 상태를 고려하여 결정됩니다. 개별 컨테이너의 상태는 실행 컨테이너 탭에서 확인할 수 있습니다.
특정 워크로드를 클릭한 후 실행 컨테이너 탭에서 상세 보기를 클릭하여 컨테이너 상세 정보를 확인할 수 있습니다.
항목 | 설명 |
---|---|
컨테이너 이름 | 컨테이너의 이름 |
유형 | 컨테이너 유형 |
이미지 URL | 컨테이너 이미지의 정보 |
IP | 컨테이너에 할당된 IP 주소 |
상태 | 컨테이너의 상태 |
재시작 횟수 | 컨테이너가 재시작된 횟수 |
메모리 | 컨테이너에 할당된 메모리 |
CPU | 컨테이너에 할당된 CPU 수 |
GPU | 컨테이너에 할당된 GPU 정보 |
포트 | 컨테이너에서 사용하는 포트 |
명령 | 컨테이너가 시작될 때 실행될 명령어 |
인자 | 컨테이너가 시작될 때 전달될 인자 |
작업 디렉터리 | 컨테이너의 작업 디렉터리 |
환경 변수 | 컨테이너에 설정된 환경 변수 |
스토리지 | 컨테이너에 연결된 스토리지 |
수명 주기 훅 | 컨테이너에 설정된 수명 주기 훅 |
컨피그맵 | 컨테이너에 연결된 오브젝트 파일과 마운트 경로 |
시크릿 | 컨테이너에 연결된 기밀 데이터와 마운트 경로 |
상태 점검 | 컨테이너에 설정된 상태 점검 |
시작일 | 컨테이너가 시작된 날짜 |
특정 워크로드를 클릭한 후 모니터링 탭에서 컨테이너의 리소스 사용률을 확인할 수 있습니다. 컨테이너 지표는 15초 단위로 수집되며 최대 1년간 보관됩니다. 모니터링을 제공하는 항목은 다음과 같습니다.
항목 | 단위 | 설명 |
---|---|---|
CPU 사용률 | % | 컨테이너에 할당된 CPU 기준으로 사용률이 제공됩니다. |
메모리 사용률 | % | 컨테이너에 할당된 Memory 기준으로 사용률이 제공됩니다. |
네트워크 데이터 송신 | bps | 워크로드의 작업 기준으로 네트워크 데이터 송신 정보가 제공됩니다. |
네트워크 데이터 수신 | bps | 워크로드의 작업 기준으로 네트워크 데이터 수신 정보가 제공됩니다. |
디스크 사용률 | % | 컨테이너에 추가된 NAS 스토리지의 사용률이 제공됩니다. |
임시 스토리지 사용률 | % | 워크로드의 작업 기준으로 임시 스토리지 사용률이 제공됩니다. |
GPU 사용률 | % | 컨테이너에 할당된 GPU 사용률이 제공됩니다. |
GPU 메모리 사용률 | % | 컨테이너에 할당된 GPU 메모리 사용률이 제공됩니다. |
GPU 전력 사용량 | mW | 컨테이너에 할당된 GPU 전력 사용량이 제공됩니다. |
GPU 온도 | ℃ | 컨테이너에 할당된 GPU 온도가 제공됩니다. |
특정 워크로드를 클릭한 후 이벤트 탭에서 컨테이너에서 발생한 이벤트 정보를 확인할 수 있습니다. 이벤트 상태 선택을 클릭하여 이벤트의 상태별로 이벤트를 확인할 수 있습니다.
항목 | 설명 |
---|---|
상태 | 이벤트의 상태 |
타입 | 이벤트의 타입 |
설명 | 이벤트의 설명 |
이벤트 최초 발생 일시 | 이벤트 최초 발생 일시 |
이벤트 마지막 발생 일시 | 이벤트 마지막 발생 일시 |
발생 수 | 이벤트가 발생한 횟수 |
[참고] 이벤트는 최대 30일만 유지되어 30일 이전의 정보는 확인할 수 없습니다. 컨테이너의 현재와 마지막 상태에 대한 상세 이유도 이벤트에서 확인할 수 있습니다.
특정 워크로드를 클릭한 후 로그 탭에서 컨테이너의 로그를 확인할 수 있습니다. 조회하고자 하는 시간에 로그가 많이 발생한 경우 일부 로그만 조회될 수 있습니다. 모든 로그가 조회되지 않는 경우 시간 범위를 줄여서 다시 시도하세요.
[참고] 로그는 2개월 동안 보관됩니다.
워크로드 실행 히스토리를 확인할 워크로드를 선택해 워크로드 실행 히스토리 탭에서 워크로드 템플릿 변경 진행 상황 및 이력을 확인할 수 있습니다.
항목 | 설명 |
---|---|
템플릿 이름 | 워크로드가 사용하는 템플릿 이름 |
실행 시간 | 해당 템플릿을 사용하는 워크로드의 배포 시작 시간 |
종료 시간 | 해당 템플릿을 사용하는 워크로드의 종료 시간 |
상태 | 배포 상태 succeeded: 배포 완료 pending: 배포 중 terminated: 종료된 워크로드 |
조회된 히스토리 정보를 클릭하여 워크로드 실행 히스토리 상세 정보를 확인할 수 있습니다.
[참고] 실행 중인 워크로드의 히스토리에는 종료 시간이 표시되지 않으며 상태가 succeeded로 유지됩니다. [주의] 워크로드 삭제 이후에는 워크로드 실행 히스토리를 확인할 수 없습니다.
예약 실행 히스토리를 확인할 워크로드를 선택해 예약 실행 히스토리 탭에서 실행된 작업 목록을 확인할 수 있습니다.
항목 | 설명 |
---|---|
작업 ID | 실행된 예약 작업 ID |
실행 시간 | 예약 작업 실행 시간 |
종료 시간 | 예약 작업 종료 시간 |
상태 | 예약 작업 상태 waiting: 예약 실행 준비 중 running: 예약 작업 실행 중 completed: 예약 작업 정상 종료 error: 예약 작업 비정상 종료 |
변경할 워크로드를 선택한 뒤 기본 정보 탭에서 변경을 클릭해 실행 중인 워크로드를 변경할 수 있습니다.
항목 | 설명 |
---|---|
설명 | 워크로드의 설명 |
템플릿 | 실행 중인 워크로드의 템플릿 변경 템플릿 변경 시 롤링 업데이트 방식으로 워크로드가 무중단 배포됩니다. 작업이 하나씩 순차적으로 교체되어 배포 중에 기존 작업과 새로운 작업이 동시에 실행된 상태일 수 있습니다. 워크로드 실행 히스토리탭에서 변경 결과를 확인할 수 있습니다. |
작업 요청 수 | 실행 중인 워크로드의 작업 수 변경 작업 요청 수 증가: 기존 작업은 유지하며 새로운 작업이 생성됩니다. 작업 요청 수 감소: 감소된 작업 개수만큼 작업이 종료됩니다. |
종료 예약 | 워크로드 작업의 종료 예약 설정을 변경 |
예약 실행 | 예약 실행 정보를 변경 예약 실행 히스토리 보관 수는 변경 시간부터 설정되어 변경 전 실행된 작업이 전부 삭제되기 전까지 히스토리 개수와 설정 값이 일치하지 않을 수 있습니다. |
로드 밸런서 | 워크로드의 로드 밸런서, 플로팅 IP, 상태 확인, SSL 인증서 사용 여부 변경 |
내부 로드 밸런서 | 워크로드의 내부 로드 밸런서 사용 여부, IP 변경 |
[주의] 로드 밸런서를 사용하여 워크로드 서비스 이용 중 템플릿을 변경하는 경우 순단이 발생할 수 있습니다.
[참고] 워크로드가 Pending, Suspended, Terminated 상태인 경우 로드 밸런서를 변경할 수 없습니다. 워크로드 변경에 실패할 경우(예, 이미지 오류) 변경 시도가 종료되며, 작업 교체가 발생하지 않습니다.
워크로드 중지를 실행하면 플로팅 IP와 URL은 유지되며 워크로드의 모든 작업이 종료됩니다.
워크로드 재시작을 실행하면 로드 밸런서 IP는 변경됩니다.
[참고] 배포 컨트롤러에 따라서 워크로드 중지/재시작을 실행하면 컨테이너 IP가 변경될 수 있습니다.
[주의] 워크로드를 중지하면 로그, 이벤트, 임시 스토리지는 초기화됩니다. 워크로드를 중지하여도 작업 반복 주기가 되면 예약 실행 히스토리는 삭제됩니다.
삭제할 워크로드를 선택하고 워크로드 삭제를 클릭하면 삭제됩니다.
역할을 설정하여 NCS 서비스 및 리소스에 액세스할 수 있는 역할을 제어할 수 있습니다.
NCS에 대한 실행 역할은 NHN Cloud Console 화면에서 설정합니다. 1. 프로젝트 화면에서 멤버 관리 탭을 클릭합니다. 2. 역할을 변경할 멤버를 선택합니다. 3. 하단의 역할 수정을 클릭하여, 서비스별 역할을 추가합니다. * 왼쪽 영역에서 기본 인프라 서비스를 선택한 후, 오른쪽 영역에서 역할을 선택합니다. 4. 완료를 클릭하여 프로젝트 멤버에 변경된 역할을 적용합니다.
역할에 대한 자세한 내용은 멤버 관리를 참고하세요.
NCS 서비스를 이용하기 위해서는 다음 역할이 필요합니다.
역할 | 권한 |
---|---|
Infrastructure MEMBER | 기본 인프라 서비스 Read(읽기) |
Infrastructure NCS ADMIN | NCS Create(생성), Read(읽기), Update(갱신), Delete(삭제) |
Infrastructure Security Group ADMIN | Load Balancer Create(생성), Read(읽기), Update(갱신), Delete(삭제) |
Infrastructure Load Balancer ADMIN | Security Group Create(생성), Read(읽기), Update(갱신), Delete(삭제) |
[참고] Infrastructure NCS ADMIN, Infrastructure Load Balancer ADMIN, Infrastructure Security Group ADMIN 역할은 Infrastructure MEMBER 역할을 포함합니다. Infrastructure ADMIN은 기본 인프라 서비스의 모든 역할을 포함합니다.
프로덕션 환경에서는 필요한 역할만 추가하는 것이 좋습니다. NCS 기능을 이용하기 위한 최소 역할들은 다음과 같습니다.
기능 | Infrastructure MEMBER | Infrastructure NCS ADMIN | Infrastructure Security Group ADMIN | Infrastructure Load Balancer ADMIN |
---|---|---|---|---|
템플릿 조회 | O | |||
템플릿 생성 | O | O | ||
템플릿 삭제 | O | O | ||
워크로드 조회 | O | |||
워크로드 생성 및 변경 | O | O | O | |
워크로드 삭제 | O | O | O |
[참고] 템플릿을 생성하기 위해서는 Infrastructure NCS ADMIN과 Infrastructure Security Group ADMIN 권한이 필요합니다. Infrastructure NCS ADMIN 권한만으로는 조회만 가능합니다.
소스 레지스트리 유형 | 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" } |
분류 | 타입 | 이름 | RAM | GPU 수 | MIG Profile 이름 |
---|---|---|---|---|---|
Graphics Optimized | ncs1 | ncs1.g1m5 | 5GB | 1 | MIG 1g.5gb |
Graphics Optimized | ncs1 | ncs1.g2m10 | 10GB | 2 | MIG 2g.10gb |
NCS 서비스를 사용하면서 겪을 수 있는 다양한 문제들을 해결하는 방법을 설명합니다.
에러 메시지 | 설명 |
---|---|
{{.Resource}} 리소스가 부족하여 워크로드를 생성할 수 없습니다. | NCS 환경의 리소스가 부족하여 워크로드를 생성할 수 없습니다. 잠시 후 다시 시도하거나 고객 센터에 문의하세요. |
생성 가능한 {{.Resource}} 를 초과하였습니다. 한도를 높이려면 고객 센터에 문의하세요. | 프로젝트의 NCS Quota가 초과되었습니다. 자세한 사항은 NHN Container Service(NCS) 리소스 제공 정책을 참고하세요. |
워크로드가 삭제 또는 재시작되면 로그는 삭제되어 조회할 수 없습니다. 중요한 로그를 백업하거나 특정 로그를 검색하고 조회하기 위해서 Log & Crash Search(L&C) 서비스와 연동할 수 있습니다.
아래 내용은 로깅 에이전트(FluentBit, Logstash)를 사이드카 컨테이너로 생성하여 L&C 연동하는 방법에 대해 기술합니다.
FluentBit에 대한 자세한 내용은 Fluent Bit: Official Manual을 참고하세요. Logstash에 대한 자세한 내용은 Logstash Reference를 참고하세요. Log & Crash Search 사용 방법은 Log & Crash Search 콘솔 사용 가이드를 참고하세요.
[참고] 컨테이너 간 임시 공유 스토리지에 로그를 파일로 생성하는 방법으로 기술하였습니다. 컨테이너 로그를 파일로 생성하는 경우 워크로드의 로그 탭에서는 로그 조회를 할 수 없습니다.
[SERVICE]
Flush 1
Daemon Off
Log_Level warn
Parsers_File parsers.conf
Plugins_File plugins.conf
HTTP_Server Off
[INPUT]
Name tail
Path /var/{워크로드 이름}/{로그 파일명}
[OUTPUT]
Name http
Match *
Host api-logncrash.cloud.toast.com
Port 443
URI /v2/log
Format json
Log_response_payload false
Tls On
Tls.verify Off
[FILTER]
Name modify
Match *
Rename log body
Add host ${HOSTNAME}
Add projectName {L&C AppKey}
Add projectVersion {사용자 지정 프로젝트 버전}
Add logVersion {로그 포맷 버전}
Add logType {로그 타입}
Add logSource {로그 소스}
Add logLevel {로그 레벨}
항목 | alpine(로그 생성) | fluentbit(로그 전송) |
---|---|---|
컨테이너 이름 | alpine | fluentbit |
이미지 URL | alpine:latest | fluent/fluent-bit:2.2.1 |
명령 | 로그를 파일에 남기기 위해서 아래와 같이 입력합니다.
|
|
컨피그맵 | Object Storage에 업로드한 fluentbit 설정 파일을 가져올 수 있는 정보를 추가합니다. 컨테이너 마운트 경로는 아래와 같이 입력합니다.
|
input {
file {
path => "/var/{워크로드 이름}/{로그 파일명}
start_position => "beginning"
ignore_older => 0
}
}
filter {
mutate {
remove_field => [ "@version", "@timestamp", "path", "tags" ]
rename => {
"message" => "body"
"host" => "host"
}
add_field => {
"projectName" => "{L&C AppKey}"
"projectVersion" => "{사용자 지정 프로젝트 버전}"
"logVersion" => "{로그 포맷 버전}"
"logType" => "{로그 타입}"
"logSource" => "{로그 소스}"
"logLevel" => "{로그 레벨}"
}
}
}
output {
http {
url => "https://api-logncrash.cloud.toast.com/v2/log"
http_method => "post"
format => "json"
ssl_verification_mode => "none"
}
}
항목 | alpine(로그 생성) | logstash(로그 전송) |
---|---|---|
컨테이너 이름 | alpine | logstash |
이미지 URL | alpine:latest | logstash:8.11.0 |
메모리 | 256 | 1024 |
명령 | 로그를 파일에 남기기 위해서 아래와 같이 입력합니다.
|
|
환경 변수 | XPACK_MONITORING_ENABLED : false | |
컨피그맵 | Object Storage에 업로드한 logstash 설정 파일을 가져올 수 있는 정보를 추가합니다. 컨테이너 마운트 경로는 아래와 같이 입력합니다.
|