동적 리소스 할당
동적 리소스 할당 (Dynamic Resource Allocation)
이 섹션에서는 쿠버네티스의 동적 리소스 할당(DRA) 을 소개해요.
DRA로 리소스를 할당하는 것은 동적 볼륨 프로비저닝과 비슷한 경험을 제공합니다. 동적 볼륨 프로비저닝에서는 PersistentVolumeClaim을 사용해 스토리지 클래스에서 스토리지 용량을 요청(claim) 하고, 요청한 용량을 파드에서 사용하도록 요청합니다.
출처: 문서
본문
DRA의 이점 {#dra-benefits}
DRA는 클러스터에서 장치를 분류, 요청, 사용하는 유연한 방법을 제공합니다. DRA를 사용하면 다음과 같은 이점이 있습니다:
- 유연한 장치 필터링: 공통 표현 언어(CEL)를 사용해 특정 장치 속성에 대해 정밀한 필터링을 수행한다.
- 장치 공유: 해당 리소스 claim을 참조해 같은 리소스를 여러 컨테이너나 파드와 공유한다.
- 장치 구성: 공급업체별 장치 구성을 리소스 claim에 붙여, 오늘날의 노드별 장치 구성이 아니라 워크로드별 장치 구성을 가능하게 한다.
- 중앙화된 장치 분류: 장치 드라이버와 클러스터 관리자는 장치 클래스를 사용해 다양한 사용 사례에 최적화된 하드웨어 범주를 앱 운영자에게 제공할 수 있다. 예를 들어 범용 워크로드용 비용 최적화 장치 클래스와 중요 작업용 고성능 장치 클래스를 만들 수 있다.
- 간소화된 파드 요청: DRA를 사용하면 앱 운영자가 파드 리소스 요청에 장치 수량을 지정할 필요가 없다. 대신 파드가 리소스 claim을 참조하고, 그 claim의 장치 구성이 파드에 적용된다.
이 이점들은 컨테이너별 장치 요청이 필요하고 장치 공유를 지원하지 않으며 표현식 기반 장치 필터링을 지원하지 않는 장치 플러그인과 비교해, 장치 할당 워크플로에 상당한 개선을 제공합니다.
DRA 사용자 유형 {#dra-user-types}
DRA를 사용해 장치를 할당하는 워크플로에는 다음 유형의 사용자가 관여합니다:
-
장치 소유자: 장치를 책임진다. 장치 소유자는 상용 공급업체, 클러스터 운영자, 또는 다른 주체일 수 있다. DRA를 사용하려면 장치에 다음을 수행하는 DRA 호환 드라이버가 있어야 한다:
- 쿠버네티스에 노드와 리소스에 대한 정보를 제공하는 ResourceSlice를 만든다.
- 클러스터의 리소스 용량이 바뀌면 ResourceSlice를 업데이트한다.
- claim에 따라 장치를 구성하고 Container Device Interface(CDI)를 통해 컨테이너에 연결한다.
- 선택적으로, 워크로드 운영자가 장치를 요청할 수 있는 DeviceClass를 만든다.
-
클러스터 관리자: 클러스터와 노드를 구성하고, 장치를 연결하고, 드라이버를 설치하고, 유사한 작업을 책임진다. DRA를 사용하려면 클러스터 관리자가 다음을 수행한다:
- 장치를 노드에 연결한다.
- DRA를 지원하는 장치 드라이버를 설치한다.
- 선택적으로, 워크로드 운영자가 장치를 요청할 수 있는 DeviceClass를 만든다.
-
워크로드 운영자: 클러스터에서 워크로드를 배포하고 관리하는 것을 책임진다. DRA를 사용해 파드에 장치를 할당하려면 워크로드 운영자가 다음을 수행한다:
- DeviceClass 안의 특정 구성을 요청하는 ResourceClaim 또는 ResourceClaimTemplate을 만든다.
- 특정 ResourceClaim 또는 ResourceClaimTemplate을 사용하는 워크로드를 배포한다.
제한 사항
- 쿠버네티스 스케줄러는 DRA 리소스에 대한 선점을 지원하지 않는다. 이는 노드에서 실행 중이고 DRA 리소스를 사용하는 기존 파드가, 역시 DRA 리소스가 필요한 더 높은 우선순위의 파드에 의해 선점될 수 없음을 의미한다. 높은 우선순위 파드는 충돌하는 파드가 종료되거나 수동으로 삭제되어 장치를 사용할 수 있게 될 때까지 Pending 상태로 유지된다.
더 알아보기 (Learn more)
- 클러스터에서 DRA 설정
- DRA를 사용해 워크로드에 장치 할당
- DRA 장치 메타데이터 접근
- 설계에 대한 자세한 내용은 Dynamic Resource Allocation with Structured Parameters KEP를 참조한다.