Kubernetes Limit Range

신민창·2021년 5월 10일
0

kubernetes

목록 보기
9/13

Limit Range

이전에서 파드의 컨테이너 리소스 자원을 조절하는 법을 알았다. 하지만 이를 파드의 컨테이너별로 지정하는 것이 아닌 네임스페이스별로 리소스 사용과 생성을 제한할 수 있다. 네임스페이스 내에서 파드나 컨테이너는 네임스페이스의 리소스 쿼터에 정의된 만큼의 CPU와 메모리를 사용할 수 있다. 하나의 파드 또는 컨테이너가 사용가능한 모든 리소스를 독점할 수 있다는 우려가 있기 때문에 이러한 부분을 방지하고자하는 정책이다.

Limit Range가 제공하는 제약 조건

네임스페이스에서 파드 또는 컨테이너별 최소 및 최대 컴퓨팅 리소스 사용량을 지정한다.
네임스페이스에서 스토리지클래스별 최소 및 최대 스토리지 요청을 지정한다.
네임스페이스에서 리소스에 대한 요청과 제한 사이의 비율을 지정한다.
네임스페이스에서 컴퓨팅 리소스에 대한 기본 요청/제한을 설정하고 런타임에 있는 컨테이너에 자동으로 설정한다.

Limit Range yaml 파일

apiVersion: v1
kind: LimitRange
metadata:
  name: lim1
spec:
  limits:
  - type: Container # 컨테이너 리소스 설정
    default: # 기본 limit
      cpu: 10m
      memory: 20M
    defaultRequest: # 기본 request
      cpu: 5m
      memory: 10M
  - type: Pod  # pod 리소스 설정
    max: # 할당 최대 값
      cpu: 1000m
      memory: 1G
    #min: # 할당 최소 값
    maxLimitRequestRatio:
      cpu: 2
      memory: 2
  - type: PersistentVolumeClaim  # pvc 리소스 설정
    min:
      storage: 1Gi
    max:
      storage: 5Gi
$ kubectl create -f limits.yaml

$ kubectl get limitranges    # limitrange 생성확인
NAME   CREATED AT
lim1   2021-05-10T04:41:24Z

$ kubectl describe limitranges lim ## 생성한 limitrange 정보 확인

Name:                  lim1
Namespace:             default
Type                   Resource  Min  Max  Default Request  Default Limit  Max Limit/Request Ratio
----                   --------  ---  ---  ---------------  -------------  -----------------------
Container              memory    -    -    10M              20M            -
Container              cpu       -    -    5m               10m            -
Pod                    cpu       -    1    -                -              2
Pod                    memory    -    1G   -                -              2
PersistentVolumeClaim  storage   1Gi  5Gi  -                -              -

해당 limitrange를 생성했기 때문에 해당 네임스페이스에서 생성되는 container, pod, pvc는 해당 조건을 만족해야한다.

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN