[Retry, k8s] 30. 리소스 관리, 오토 스케일링 - LimitRange

Date:     Updated:

카테고리:

태그:


03. LimitRange


‘LimitRange’를 사용하면 리소스의 최솟값과 최댓값, 기본값 등을 설정할 수 있으며, ‘LimitRange’가 네임스페이스에 제한을 주려면 네임스페이스마다 설정이 필요하다. (또 ‘LimitRange’는 신규로 파드를 생성할 때 사용되므로 기존 파드에는 영향을 주지 않는다.)

설정 항목 개요
default 기본 Limit
defaultRequest 기본 Request
max 최대 리소스
min 최소 리소스
maxLimitRequestRatio Limit/Request의 비율
타입 사용 가능한 설정 항목
컨테이너 default, defaultRequest, max, min, maxLimitRequestRatio
파드 max, min, maxLimitRequestRatio
영구 볼륨 클레임 max, min


(1) 컨테이너에 대한 LimitRange

# 예제 1) sample-limitrange-container.yaml

apiVersion: v1
kind: LimitRange
metadata:
    name: sample-limitrange-container
    namespace: default
spec:
    limits:
    - type: Container
      default:
        memory: 512Mi
        cpu: 500m
      defaultRequest:
        memory: 256Mi
        cpu: 250m
      max:
        memory: 1024Mi
        cpu: 1000m
      min:
        memory: 128Mi
        cpu: 125m
      maxLimitRequestRatio:
        memory: 2
        cpu: 2

파드를 기동해보면 LimitRange 값으로 설정된 것을 확인할 수 있고, LimitRange의 설정 값보다 크게 또는 낮게 설정해서 파드를 생성하면 에러가 발생한다.

# 테스트용 파드 생성
$ cat sample-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: sample-pod
spec:
  containers:
    - name: nginx-container
      image: nginx:1.16

$ kubectl apply -f sample-pod.yaml


# 리소스 제한 설정 확인
$ kubectl get pod sample-pod -o json | jq ".spec.containers[].resources"
{
  "limits": {
    "cpu": "500m",
    "memory": "512Mi"
  },
  "requests": {
    "cpu": "250m",
    "memory": "256Mi"
  }
}


(2) 파드에 대한 LimitRange

# 예제 2) sample-limitrange-pod.yaml

apiVersion: v1
kind: LimitRange
metadata:
    name: sample-limitrange-pod
    namespace: default
spec:
    limits:
    - type: Pod
      max:
        memory: 2048Mi
        cpu: 2000m
      min:
        memory: 128Mi
        cpu: 125m
      maxLimitRequestRatio:
        memory: 1.5
        cpu: 1.5


(3) 영구 볼륨 클레임에 대한 LimitRange

# 예제 3) sample-limitrange-pvc.yaml

apiVersion: v1
kind: LimitRange
metadata:
    name: sample-limitrange-pvc
    namespace: default
spec:
    limits:
    - type: PersistentVolumeClaim
      max:
        storage: 20Gi
      min:
        storage: 3Gi

KUBERNETES 카테고리 내 다른 글 보러가기

댓글 남기기