목록
들어가며
- 이전 아티클에서 Node에 Label을 추가하는 방법을 알아 보았습니다.
관리자 페이지 사용 - Node Labels - 이번 아티클에서는 'Admin -> Resource ' 페이지를 사용하는 방법을 알아보며, 이전 아티클에서 생성한 노드 라벨링이 어떻게 활용되는지 확인합니다.
- 포탈 접속은 고객사에서 사전 신청한 도메인(url)로 접속합니다.초기 포탈 로그인 정보는 다음과 같습니다.
User ID : superuser
Password : superuser$01 - 로그인 후 좌측 하단에 관리자 페이지로 이동하는 아이콘을 클릭해 관리자 페이지로 이동합니다.
지난 아티클에서 관리 계정을 생성하였다면 해당 계정으로 접속합니다.
Resource 관리
- 스파클링소다 Resource 관리는 이전에 추가한 User, Node Label을 조합하여 설정하며 Notebook, Model 학습, RestApp 등을 실행할 때에 생성한 리소스를 선택 가능하게 합니다.
- 사용자는 본인에게 설정된 Resource Group의 Resource만 선택할 수 있습니다. 사용자에게 Resource Group에 구성된 Node Label의 특정 Node만 사용하게 하여 효율적인 자원 관리가 가능하게 합니다.
- Settings -> Resource 탭을 클릭하면 Resource Groups 페이지로 이동합니다. 초기화면은 아래와 같습니다.
- A : 등록된 리소스 그룹 리스트를 확인할 수 있습니다.
- B : 해당 리소스 그룹에 설정된 유저 그룹 리스트를 확인할 수 있습니다.
리소스 그룹을 추가하기 위해 우측 상단 Create를 클릭합니다.
Resource Group 생성
- New Resource Group 페이지에서 리소스 그룹의 정보를 입력하고 해당 리소스 그룹을 사용할 유저그룹을 지정합니다.
- Group Name : 생성할 리소스 그룹명을 기입합니다.
- Group Description : 리소스 그룹의 설명을 작성합니다.
- 유저그룹 리스트 중 리소스 그룹에 포함할 유저그룹을 우측으로 이동 시키고 저장합니다.
- 예시는 아래와 같습니다. - 리소스 그룹이 생성된 것을 확인할 수 있습니다.
리소스 그룹 이름을 클릭하여 리소스 그룹에 실제 할당할 리소스를 설정할 수 있습니다.
Resource 할당
- Resource Group Detail 페이지에서 리소스 그룹이 선택 가능한 실제 리소스 설정을 진행합니다.
유저그룹의 변경이 가능하며 Add 버튼을 클릭해 리소스를 추가합니다.
- Resource Name : 리소스의 이름을 지정합니다.
- Node Label : 해당 리소스를 실행할 노드의 라벨을 지정합니다.
지난 아티클에서 생성한 노드 라벨을 선택합니다.
- CPU Unlimit : 'Node Label' 항목에서 선택된 노드의 전체 CPU Resource 를 할당합니다.
항목 체크 시 하위 cpu 리소스 설정 항목은 값을 입력할 수 없게 Disable 됩니다.
- Request CPU (Cores) : 파드 생성시 최소 요구되는 cpu 사양을 지정합니다.
'1' 은 1000ms이며 500ms를 설정하려면 '0.5'를 입력합니다.
- Limit CPU (Cores) : 파드가 사용할 수 있는 최대 cpu 사양을 지정합니다.
노드 라벨에서 지정된 노드의 cpu 사양을 초과할 수 없습니다.
Request CPU 필드의 값과 같은 값으로 설정할 경우 100ms가 추가되어 반영됩니다.
- Request Memory (GiB) : 파드 생성시 최소 요구되는 memory 사양을 지정합니다.
노드 라벨에서 지정된 노드의 memory 사양을 초과할 수 없습니다.
- Limit Memory (GiB) : 파드가 사용할 수 있는 최대 memory 사양을 지정합니다.
노드 라벨에서 지정된 노드의 memory 사양을 초과할 수 없습니다.
- GPU : 노드 라벨에서 지정된 노드의 gpu 리소스를 선택할 수 있습니다.
현재 노드에 gpu가 없기 때문에 공란으로 나오지만 gpu가 있는 장비에서는 아래와 같이 출력됩니다.
- 리소스에 대한 설정을 마쳤으면 저장해줍니다.
* 주의 *
Node Label 에 두 개 이상의 Node 가 포함되어 있다면 표시되는 CPU/Memory/GPU 정보는 GPU 가 제일 적은 Node 를 기준으로 표시됩니다. 따라서 Node Label 생성 시 Resource 의 사용 범위를 고려하여야 합니다.
* 주의 *
"CPU Unlimit" 를 체크하면 Node Label 의 CPU 자원 전체를 사용하겠다는 의미이며 이 때 k8s 는 Node 자원을 기준으로 정확한 스케줄링을 수행하지 못합니다.
특정 Node 에 Pod 가 초과 배치될 수 있고 Node 의 자원이 부족하게 되면 "CPU Unlimit" 로 체크(Request 미설정) 된 Pod 는 요청량을 초과 사용하고 있다고 판단하여 우선적으로 퇴거(Evicted) 될 수 있습니다.
따라서 "CPU Unlimit" 로 Resource 사용 시 주의하여야 합니다.
** 리소스 요청에 따른 k8s 파드 스케줄링 정책
쿠버네티스 리소스 관련한 자세한 내용은 아래의 아티클을 참조하면 되겠습니다. 쿠버네티스 리소스 관리 알아보기
Resource 변경/제거
- 우측 Setiings -> Resource 탭을 클릭해 리소스 그룹을 확인합니다.
- 리서소 그룹의 Name 필드를 클릭하면 생성한 리소스 목록을 확인할 수 있습니다.
이 페이지에서 리소스를 추가/삭제하거나 할당할 유저 그룹을 변경할 수 있습니다. - 리소스 그룹을 삭제하려면 리소스 그룹을 체크하고 Delete 버튼을 클릭해 삭제합니다.
마무리
- 이번 아티클에서는 리소스 설정하는 방법에 대해서 알아 보았습니다.
노드의 리소스는 제한되어 있기 때문에 유저그룹/노드라벨을 활용하여 파드가 실행되는 노드의 리소스를 관리해주어야 합니다. - 다음 아티클에서는 Category 에 대해서 알아 보겠습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.