본문 바로가기
K8S

[kubernetes] karpenters의 limit range - default vs defaultRequest

by Rainbound-IT 2025. 1. 26.
반응형

default와 defaultRequest는 Kubernetes LimitRange 객체에서 Pod이나 컨테이너에 기본적으로 설정되는 리소스 제한과 요청 값을 정의하는 데 사용됩니다. 이 두 속성은 서로 다른 역할을 합니다.


1. default

  • 설명:
    • 컨테이너에 리소스 제한(Limits) 값을 기본으로 설정합니다.
    • limits는 컨테이너가 사용할 수 있는 최대 리소스(예: CPU, 메모리)를 정의합니다.
    • 컨테이너에서 명시적으로 resources.limits를 설정하지 않은 경우, 이 default 값이 적용됩니다.
  • 예시:
    • 컨테이너의 메모리 사용량이 명시적으로 설정되지 않았다면, 해당 컨테이너는 최대 2Gi의 메모리까지 사용할 수 있습니다.
  • yaml
    복사편집
    default: memory: 2Gi

2. defaultRequest

  • 설명:
    • 컨테이너에 리소스 요청(Requests) 값을 기본으로 설정합니다.
    • requests는 컨테이너가 스케줄링될 때 필요한 리소스를 정의하며, 클러스터 내 노드에 스케줄링 가능 여부를 결정하는 데 사용됩니다.
    • 컨테이너에서 명시적으로 resources.requests를 설정하지 않은 경우, 이 defaultRequest 값이 적용됩니다.
  • 예시:
    • 컨테이너가 명시적으로 요청 값을 설정하지 않은 경우, 스케줄러는 해당 컨테이너가 최소 10m(10 밀리코어)의 CPU와 128Mi의 메모리를 필요로 한다고 가정합니다.
  • yaml
    복사편집
    defaultRequest: cpu: 10m memory: 128Mi

default vs defaultRequest

 

속성 역할 적용 대상
default 컨테이너가 사용할 수 있는 최대 리소스를 정의합니다. resources.limits
defaultRequest 컨테이너가 스케줄링될 때 필요한 최소 리소스 요청을 정의합니다. resources.requests

동작 요약

  • 스케줄링:
    • 스케줄러는 defaultRequest 값을 사용해 컨테이너를 클러스터의 어느 노드에 배치할지 결정합니다.
    • 예를 들어, 컨테이너의 요청(requests) 값이 10m CPU와 128Mi 메모리라면, 해당 리소스를 충족할 수 있는 노드에만 스케줄링됩니다.
  • 실행 중 리소스 제한:
    • 컨테이너는 실행 중에 default 값을 초과하여 리소스를 사용할 수 없습니다.
    • 예를 들어, 메모리 사용량이 2Gi를 초과하면 컨테이너는 종료(OOMKilled)될 수 있습니다.
반응형

댓글