본문으로 바로가기
반응형

Intro

  • Node에 Pod가 배포 될때 Pod에 설정된 Resource Request/limit값에 따라 배포가 가능할 수도있고 불가능할 수도 있습니다.
  • 그만큼 Pod의 Resource Request/limit설정은 매우 중요합니다.
  • 오늘은 Resource Request/limit의 개념과 설정 방법에 대해 알아보고자합니다.

Resource Requests/Limits

  • Request는 pod를 생성할때 필요한 Resource 최소치
  • Limits은 Pod가 사용할 수 있는 Resource 최대치
  • 만약 다음과 같은 리소스를 가진 Node가 있고
  • 다음과 같은 Request를 가진 Pod가 있을때
  • 노드에 자원이 충분하기 때문에 배포가 잘되지만
  • 같은 Request값을 가진 Pod를 두개를 배포했을때는 Node에 자원이 부족하여 할당 할 수 없음
  • 다음과같이 하나의 pod를 배포했을때 CPU limit을 설정해놓는경우 CPU사용량이 limit을 넘어섰을때 throttling 이 발생할 수 있음
  • Memory limit의 경우 설정해놓은 limit을 넘어서 지속적으로 사용할 경우 pod가 종료됨

Resource Requests/limits 단위

  • cpu : 단위 없이 숫자로만 표현하며 단위는 vcpu임(AWS를 예를 들면 1= 1vcpu)
  • memory : 이진 바이트 값인 Mi, Gi 단위를 사용함

참고 [바이트 단위 표]

Resource Requests/limits yaml예시

apiVersion: v1
kind: Pod
metadata:
  name: simple-webapp-color
  labels:
    name: simple-webapp-color
spec:
  containers:
    - name: simple-webapp-color
      image: simple-webapp-color
      ports:
        - containerPort: 8080
      resources:
        requests:
          memory: "1Gi"
          cpu: 1
        limits:
          memory: "2Gi"
          cpu: 2
반응형