본문 바로가기
IT KNOWLEDGE

[k8s] LimitRange

by BTC_기범 2023. 9. 27.

안녕하세요 이쁜이와 멋쟁이의 BTC_기범입니다.

오늘을 K8s 환경의 파드, 컨테이너들의 리소스 사용을

일괄적으로 제한할 수 있는 Limit Range에 대해 알아보겠습니다.


Limit Range란

기본적으로 컨테이너와 파드를 생성하면 컴퓨팅 리소스의 제한은 없습니다. 

그렇기 때문에 리소스를 과하게 사용할 가능성이 있습니다.

이러한 상황을 피할 수 있도록 만들어진 기능 중 하나가 Limit Range입니다.

Limit Range는 각 namespace에서 생성되는 파드, 컨테이너의 기본 limit과 request 값을 지정할 수 있습니다.

또한 리소스의 상한, 하한 값을 지정하여 적절하지 않은 파드, 컨테이너의 생성을 막을 수도 있습니다.

Limit Range 예시

apiVersion: v1
kind: LimitRange
metadata:
  name: limitRange-example
spec:
  limits:
  - default:
      cpu: 500m
      memory: 50Mi
    defaultRequest:
      cpu: 500m
      memory: 30Mi
    max: 
      cpu: "2"
    min:
      cpu: 200m

위 예시는 cpu, memory의 사용을 제한하는 Limit Range를 생성하는 yaml 예시입니다.

defualt namespace에서 생성되는 파드, 컨테이너에서 cpu의 경우 기본적으로 생성시 500m을 배치하고 limit 도 동일하게 500m으로 지정되어 있는 것을 볼 수 있습니다.

defualt namespace에서 생성되는 파드, 컨테이너에서 memory의 경우 생성시 30Mi의 리소스를 사용하도록 하고 limit은 50Mi으로 제한하고 있는 것을 확인할 수 있습니다.

그리고 max, min을 통해 허용되는 리소스의 범위를 지정하고 있는 것을 볼 수 있습니다.


지금까지 Limit Range에 대해 살펴보았습니다.

적절한 Limit Range 설정을 통해 적절한 리소스 사용을 실현하시길 바라면서 글을 마치겠습니다.

다음에 봬요~!

댓글