Skip to main content
노드 할당 예산은 샌드박스가 각 노드의 할당 가능한 CPU와 메모리 중 얼마나 요청할 수 있는지를 제어합니다. 이 가이드에서는 클러스터 관리자가 모든 노드, 선택한 Node Pool 또는 노드 그룹에 대해 예산을 설정하고 활성화하는 방법을 설명합니다. 예를 들어, 노드에 할당 가능한 CPU 32개와 메모리 128 GiB가 있다면, 50% 예산은 샌드박스 요청의 합계가 CPU 16개와 메모리 64 GiB까지 가능하도록 허용합니다. 백분율은 측정된 사용량이 아니라 리소스 요청량에 적용됩니다. 예산이 줄어들어도 기존 샌드박스는 퇴거되지 않습니다.

시작하기 전에

예산을 설정하기 전에 다음 사전 요구 사항을 완료하세요.
  • 클러스터에서 노드 할당 예산 지원과 필요한 권한이 활성화되어 있는지 CoreWeave에 확인하세요.
  • 필요한 managed runner 업데이트를 적용한 다음, 러너가 준비 상태가 되어 연결될 때까지 기다리세요.
  • CoreWeave Intelligent CLI v1.44.0 이상을 사용하고, Sandbox Admin 권한으로 올바른 조직에 인증하세요.
  • jq를 설치하세요.
  • 노드 레이블과 게시된 예산을 검사할 수 있는 Kubernetes 액세스 권한이 필요합니다. 예산을 줄이려면 영향을 받는 노드를 코든하고 코든을 해제할 수 있는 권한도 있어야 합니다.
  • 기본 Kubernetes 스케줄러를 사용하거나, 사용 중인 스케줄러가 예산 확장 리소스를 강제 적용하는지 확인하세요.
  • 샌드박스가 RuntimeClass를 선택하는 경우, 해당 RuntimeClass에 비어 있지 않은 overhead.podFixed 맵이 선언되어 있는지 클러스터 Admin에게 확인하세요. 오버헤드가 없는 런타임도 0 값을 명시적으로 선언해야 합니다. RuntimeClass를 사용하지 않는 샌드박스에는 이 설정이 필요하지 않습니다.
CoreWeave Intelligent CLI v1.44.0은 이 가이드의 환경 전용 워크플로를 지원합니다. 러너를 업데이트해도 설정을 적용하기 전까지는 예산이 활성화되지 않습니다. 동일한 물리적 Kubernetes 클러스터를 공유하는 모든 논리적 러너는 동일한 예산 설정과 모드를 사용해야 합니다. 클러스터가 서로 다르면 각기 다른 설정을 사용할 수 있습니다.

러너 및 노드 레이블 파악

업데이트할 러너와 예산 선택자에 사용할 노드 레이블을 파악하세요. 사용 가능한 러너 목록을 조회하세요:
선택: 클러스터별로 필터링하세요. [CLUSTER-ID]를 CoreWeave Kubernetes Service(CKS) 클러스터 ID로 바꾸세요:
러너와 Kubernetes 컨텍스트를 선택하세요. [RUNNER-ID]를 러너 ID로, [KUBE-CONTEXT]를 해당 러너의 Kubernetes 컨텍스트로 바꾸세요:
Node Pool 및 호스트 이름 레이블을 확인하세요:
CKS 노드는 다음 레이블을 제공할 수 있습니다: 클러스터에 있는 레이블 키와 값을 사용하세요. 예산 선택자는 Kubernetes 노드를 선택합니다. API 러너 그룹을 선택하거나 샌드박스 배치 제약 조건, 테인트, 톨러레이션 또는 RuntimeClasses를 재정의하지는 않습니다.

예산 설정 생성

다음 예시 중 하나를 node-budget.json 파일로 저장하세요. "mode": "prepare"로 시작하세요. 준비 단계에서는 예산 리소스를 게시합니다. 강제 적용은 이후 단계에서 활성화됩니다.

모든 노드에서 CPU 및 메모리의 95%

빈 선택자는 모든 노드와 일치합니다.
두 백분율은 모두 필수이며 0부터 100까지의 정수여야 합니다. 값이 0이면 샌드박스에 할당할 수 있는 리소스가 없음을 의미합니다.

선택한 Node Pool에만 50% 적용

두 Node Pool 중 하나에 속한 노드를 선택합니다. [BATCH-POOL]과 [INTERACTIVE-POOL]을 해당 Node Pool의 레이블 값으로 바꾸세요:
managedNodes.selector에 포함되지 않는 노드에는 샌드박스 예산이 0으로 할당됩니다. 강제 적용이 활성화되면 예산 토큰이 필요한 샌드박스는 해당 노드를 사용할 수 없습니다. 선택 항목을 미리 확인하세요:
다른 노드의 샌드박스 용량을 유지하려면 Node Pool 및 그룹 재정의를 사용하세요.

Node Pool과 맞춤형 그룹에 서로 다른 예산 적용

이 설정은 다음 예산을 제공합니다:
  • 기본적으로 CPU 및 메모리의 95%.
  • [CPU-POOL] Node Pool의 노드에 CPU 및 메모리의 50%.
  • [BUDGET-GROUP-LABEL]=[TRAINING-GROUP] 레이블이 지정된 노드에 CPU의 25% 및 메모리의 40%.
[CPU-POOL]을 Node Pool 레이블 값으로 바꾸세요. [BUDGET-GROUP-LABEL]을 맞춤형 레이블 키로, [TRAINING-GROUP]을 해당 값으로 바꾸세요.
선택자는 다음과 같이 동작합니다:
  • 일치하는 재정의가 기본 백분율을 대체합니다.
  • 여러 재정의가 일치하면 각 차원에서 최소 백분율이 적용됩니다.
  • 규칙 순서는 우선순위를 결정하지 않습니다.
  • 중복은 selector_conflict로 보고됩니다. 의도하지 않은 중복을 방지하려면 서로 겹치지 않는 그룹을 사용하세요.
  • matchLabels의 항목과 별도의 표현식은 모두 일치해야 합니다.
  • 하나의 In 표현식 내 값은 대안입니다.
이 예제에서 두 재정의에 모두 일치하는 노드에는 CPU 25%와 메모리 40%가 할당됩니다. 맞춤형 그룹의 경우, 가능하면 Node Pool 설정을 통해 레이블을 설정하여 교체 노드가 이를 상속하도록 하세요.

특정 노드의 50%

[HOSTNAME-A]와 [HOSTNAME-B]를 선택하려는 노드에서 확인한 kubernetes.io/hostname 레이블 값으로 바꾸세요:
호스트 이름 레이블 값은 노드 객체 이름과 다를 수 있습니다. 다른 노드에는 샌드박스 예산이 할당되지 않습니다. 교체 노드가 설정을 자동으로 상속해야 하는 경우에는 Node Pool 또는 맞춤형 그룹 선택자를 사용하는 것이 좋습니다.

설정 적용

설정을 JavaScript Object Notation(JSON) string으로 다음 필드에 저장하세요:
적용할 설정 파일을 선택하세요:
다음 명령어는 현재 러너를 조회하고 기존 배포 재정의 필드와 환경 변수를 유지합니다. 원본 러너 설정이나 정책 파일은 필요하지 않습니다. 다른 설정을 적용하려면 BUDGET_FILE을 변경한 후 이 블록을 다시 사용하세요:
동일한 물리적 클러스터의 모든 논리적 러너에 대해 이 과정을 반복하세요. 각 러너의 패치를 구성하기 전에 해당 러너를 조회하세요. spec.overrides는 객체 단위로 교체되므로 같은 수준의 필드를 보존해야 합니다. CoreWeave Intelligent CLI v1.44.0에서는 이 환경 전용 패치를 사용하세요. 해당 릴리스의 이전 정책 스키마는 최신 서버에서 이름이 변경된 HTTPS 호스트 이름 필드를 완전히 내보낼 수 없습니다. 따라서 전체 러너 문서를 다시 적용하면 정책이 불완전한 데이터로 교체될 수 있습니다. 앞서 설명한 패치는 정책을 포함하거나 업데이트하지 않습니다. 내보낸 러너 데이터는 비공개로 유지하고 작업 후 임시 파일을 삭제하세요:

준비 상태 확인

준비 과정에서는 노드 status에 다음 확장 리소스를 게시합니다:
해당 리소스의 용량과 할당 가능한 값을 확인하세요:
모든 노드에서 두 예산 리소스의 capacity와 allocatable이 일치할 때까지 기다리세요. 예산 계산에는 다음 세부 사항이 포함됩니다:
  • 예산 토큰 없이 이미 바인딩된 샌드박스는 종료될 때까지 게시된 예산에서 차감됩니다.
  • 다른 워크로드도 물리적 리소스를 사용하므로 사용 가능한 샌드박스 용량은 설정된 예산보다 적을 수 있습니다.
  • 샌드박스 리소스 사용량 계산에는 보조 컨테이너, 초기화 컨테이너의 최대 사용량, RuntimeClass 오버헤드가 포함됩니다.
  • CPU 및 메모리 비율은 GPU 용량을 분할하지 않습니다.
메트릭을 사용할 수 있는 경우 다음 메트릭을 확인하세요:
sandbox_runner_node_budget_policy 메트릭은 mode 및 policy_hash 레이블을 노출합니다. 클러스터의 모든 러너가 mode="prepare" 및 동일한 policy_hash 값을 보고하는지 확인하세요. 이러한 메트릭에 액세스할 수 없는 경우, 강제 적용을 활성화하기 전에 CoreWeave에 준비 상태 확인을 요청하세요.

강제 적용 활성화

준비 상태가 정상임을 확인한 후 모드만 변경하세요:
클러스터의 모든 러너에 대해 설정 적용의 조회/패치 구축/적용 명령어를 반복하세요. cwic sandbox runner describe "$RUNNER_ID"를 사용하여 러너 롤아웃을 확인하고, CoreWeave에 클러스터의 워크로드 수락 전환이 완료되었는지 확인을 요청하세요. 이 전환은 클러스터가 예산을 강제 적용하기 시작하는 시점을 조율합니다. 여기에는 기존 샤드를 폐기하고 강제 적용 이전부터 대기 중이던 워크로드가 바인딩되거나 종료되도록 허용하는 작업이 포함됩니다. 강제 적용을 확인하려면 다음 단계를 완료하세요:
  1. 각 러너에 소규모 샌드박스를 생성하세요.
  2. 해당 파드가 두 예산 리소스를 모두 요청하는지 확인하세요.
  3. 통제된 포화 테스트를 수행하는 경우, CPU 또는 메모리 예산 중 하나라도 소진되면 새로운 할당이 중단되는지 확인하세요.
  4. 테스트 샌드박스를 삭제하세요.
다음 용량 소진 사유가 표시되는 것은 정상입니다:

Terraform으로 관리되는 러너 설정

Terraform으로 러너를 관리하는 경우, 다음 spec.overrides.env 설정을 기존 coreweave_sandbox_managed_runner 리소스에 병합하세요:
준비가 healthy 상태가 되면 JSON 파일을 prepare에서 enforce로 업데이트하고 해당 Terraform 변경 사항을 적용하세요. Terraform이 러너를 관리하는 경우 Terraform에서 변경 사항을 유지하여 후속 적용 시 의도한 설정이 유지되도록 하십시오.

예산 줄이기 또는 노드 구성 변경

노드는 자동으로 코든되거나 드레인되지 않습니다. 비율을 줄이거나 선택자 또는 레이블을 변경하여 가용 리소스를 줄이기 전에 다음 단계를 완료하세요:
  1. 영향을 받는 노드를 코든하세요.
  2. 해당 클러스터의 모든 러너에 업데이트된 설정을 적용하세요.
  3. 예산이 수렴할 때까지 기다리세요.
  4. 이번 변경을 위해 코든한 노드만 코든을 해제하세요.
코든은 새로운 스케줄링을 방지하고 기존 파드를 계속 실행 상태로 유지합니다. 기존 할당은 종료될 때까지 새 상한을 초과한 상태로 유지될 수 있습니다. 예산을 줄여도 기존 할당은 퇴거되지 않습니다. 코든하지 않은 상태에서 예산을 줄이면 다음 메시지가 로깅됩니다:
예산을 완전히 비활성화하려면 CoreWeave와 폐지 절차를 조율하세요. 환경 변수를 제거하거나 기능 게이트를 직접 비활성화해도 필요한 롤백 절차가 수행되지 않습니다.

참고 항목

자세한 내용은 다음 페이지를 참조하세요:
마지막 수정일 2026년 10월 15일