티스토리 뷰

728x90

컨테이너 리소스 request & limit

  • 포드를 만들 때 컨테이너가 필요로 하는(=요청 request) CPU 및 메모리 양과 소비할 수 있는 것(=한계 limit)를 지정할 수 있음
  • 컨테이너마다 개별적으로 지정
apiVersion: v1
kind: Pod
metadata:
  name: frontend
spec:
  containers:
  - name: app
    image: images.my-company.example/app:v4
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m" # 0.25
      limits:
        memory: "128Mi"
        cpu: "500m" # 0.5


컨테이너 리소스 단위

CPU

  • 1 CPU = 1코어
    • 노드가 물리 호스트인 경우, 1 = 1 물리 CPU 코어
    • 가상 머신인 경우, 1 = 1 가상 코어
  • 소수점 명시 가능
    • 0.5 : 절반의 CPU 시간을 요청
    • 0.1 = “백 밀리 CPU”, “백 밀리코어” (=100m)
  • CPU 시간
    • 컨테이너가 실제로 CPU에서 실행되는 시간으로 측정
    • ex) 1 CPU 시간: CPU 하나가 1초 동안 완전히 사용된 것
    • ex) 컨테이너가 2개의 CPU 코어를 사용하여 5초간 실행된 경우 10 CPU 시간을 사용한 것
  • 사용 예시
containers:
  - name: my-nginx
    image: nginx
    resources:
      requests:
        cpu: "2" # 2개의 CPU 요청
  • my-nginx 컨테이너가 10초 동안 1개의 CPU를 100% 사용했다면 총 10CPU 시간을 소비한 것

메모리 리소스 단위

Kubernetes에서 메모리 요청(requests)과 제한(limits)은 주로 다음과 같은 단위로 설정됩니다:

단위 의미 예시

B 바이트(Byte) 512B
Ki 키비바이트(1 Ki = 2¹⁰ B = 1024 B) 128Ki
Mi 메비바이트(1 Mi = 2²⁰ B = 1024 Ki) 256Mi
Gi 기비바이트(1 Gi = 2³⁰ B = 1024 Mi) 1Gi
Ti 티비바이트(1 Ti = 2⁴⁰ B = 1024 Gi) 1Ti

 

참고:

  • 메모리 단위는 이진 접두사(Ki, Mi, Gi)를 주로 사용합니다.
  • kB, MB, GB 같은 10진 단위도 지원되지만, Kubernetes에서는 보통 이진 접두사를 권장합니다.

memory 에 대한 제한 및 요청은 바이트 단위로 측정된다. E, P, T, G, M, k 와 같은 수량 접미사 중 하나를 사용하여 메모리를 일반 정수 또는 고정 소수점 숫자로 표현할 수 있다. Ei, Pi, Ti, Gi, Mi, Ki와 같은 2의 거듭제곱을 사용할 수도 있다. 예를 들어, 다음은 대략 동일한 값을 나타낸다.

128974848, 129e6, 129M, 128974848000m, 123Mi

접미사의 대소문자에 유의한다. 400m의 메모리를 요청하면, 이는 0.4 바이트를 요청한 것이다. 이 사람은 아마도 400 메비바이트(mebibytes) (400Mi) 또는 400 메가바이트 (400M) 를 요청하고 싶었을 것이다.

십진표기 vs 이진 표기 : https://ko.wikipedia.org/wiki/킬로바이트

 

 

파드의 리소스 사용량 모니터링

kubectl top pod {pod_name}
728x90
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함