[쿠버네티스] Qos 클래스-Guaranteed, Burstable, BestEffort

2023. 2. 3. 18:18·Docker

QoS 클래스

Why?

 

Node에 Pod가 3개 있고 균등하게 자원 배분을 하고 있다고 가정

Pod 1에서 추가적으로 리소스를 더 사용해야 하는 상황 -> App의 중요도에 따라 다른 Pod를 다운시키고 할당시키기 위해 쿠버네티스는 Qos 클래스 지원

QoS 클래스 종류

쿠버네티스가 파드를 생성할 때, 파드에 다음의 QoS 클래스 중 하나를 할당한다.

  • Guaranteed
  • Burstable ( 두 번째로 다운)
  • BestEffort (제일 먼저 다운)

Guaranteed QoS 클래스가 할당되는 파드 생성

파드에 Guaranteed QoS 클래스 할당을 위한 전제 조건은 다음과 같다.

  • 파드 내 모든 컨테이너는 메모리 상한과 메모리 요청량을 가지고 있어야 한다.
  • 파드 내 모든 컨테이너의 메모리 상한이 메모리 요청량과 일치해야 한다.
  • 파드 내 모든 컨테이너는 CPU 상한과 CPU 요청량을 가지고 있어야 한다.
  • 파드 내 모든 컨테이너의 CPU 상한이 CPU 요청량과 일치해야 한다.
spec:
  containers:
    ...
    resources:
      limits:
        cpu: 700m
        memory: 200Mi
      requests:
        cpu: 700m
        memory: 200Mi
    ...
status:
  qosClass: Guaranteed

Burstable QoS 클래스가 할당되는 파드 생성

다음의 경우 파드에 Burstable QoS 클래스가 부여된다.

  • 파드가 Guaranteed QoS 클래스 기준을 만족하지 않는다.
  • 파드 내에서 최소한 하나의 컨테이너가 메모리 또는 CPU 요청량/상한을 가진다.

컨테이너가 하나인 파드의 구성 파일은 다음과 같다. 컨테이너는 200 MiB의 메모리 상한과 100 MiB의 메모리 요청량을 가진다.

 

spec:
  containers:
  - image: nginx
    imagePullPolicy: Always
    name: qos-demo-2-ctr
    resources:
      limits:
        memory: 200Mi
      requests:
        memory: 100Mi
  ...
status:
  qosClass: Burstable

BestEffort QoS 클래스가 할당되는 파드 생성 

파드에 QoS 클래스 BestEffort를 제공하려면, 파드의 컨테이너에 메모리 또는 CPU의 상한이나 요청량이 없어야 한다.

컨테이너가 하나인 파드의 구성 파일이다. 해당 컨테이너는 메모리 또는 CPU의 상한이나 요청량을 갖지 않는다.

 

spec:
  containers:
    ...
    resources: {}
  ...
status:
  qosClass: BestEffort
'Docker' 카테고리의 다른 글
  • 쿠버네티스 스토리지
  • [쿠버네티스] Node Scheduling
  • [쿠버네티스] livenessProbe, readinessProbe
  • [쿠버네티스] POD Lifecycle
minseok__
minseok__
  • minseok__
    minseok_study
    minseok__
  • 전체
    오늘
    어제
    • 분류 전체보기 (89)
      • JAVA (1)
      • Kotlin (0)
      • CS (1)
      • SQL (7)
      • Python (2)
      • Docker (13)
      • Typescript (0)
      • Javascript (1)
      • AWS (6)
      • NestJS (1)
      • ElasticSearch (1)
      • 트러블슈팅 (10)
      • DB (6)
      • 알고리즘 (5)
      • Redis (1)
      • Postgresql (1)
      • AI (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    EC2
    error: relation "batch_job_instance" does not exist
    node.js 20
    반환 데이터
    SQL
    윈도우
    k8s
    mysql 아키텍처
    외래키 참조
    userauth_pubkey: key type ssh-rsa not in pubkeyacceptedalgorithms
    response data
    amazon linux 2023
    openssh 8.8
    bigquery
    window
    docker
    빅쿼리
    쿠버네티스
    useswrinfinite
    createMany
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
minseok__
[쿠버네티스] Qos 클래스-Guaranteed, Burstable, BestEffort
상단으로

티스토리툴바