샤인의 IT (막 적는) 메모장

[Kubernetes 기본 정리] 네임스페이스 리소스 설정 본문

Container/Kubernetes 기본

[Kubernetes 기본 정리] 네임스페이스 리소스 설정

신샤인 2022. 1. 11. 11:27
반응형

네임스페이스 리소스 관리를 위한 ResourceQuota와 LimitRange에 대해 알아본다.

ResourceQuota는 네임스페이스, LimitRange는 각 컨테이너에 대한 자원을 제한한다.

 

ResourceQuota

#ResourceQuota 오브젝트
apiVersion: v1
kind: ResourceQuota
metadata:
  name: mem-cpu-demo
spec:
  hard:
    requests.cpu: "1"  #Request 정보
    requests.memory: 1Gi
    limits.cpu: "2"  # Limit 정보
    limits.memory: 2Gi
    pods: "2" # 파드 수 제한


#리소스 쿼타 생성하고 해당 resourceQuota 리소스의 status를 확인하면 현재 사용 중인 정보를 알 수 있다.
status:
  hard:
    limits.cpu: "2"
    limits.memory: 2Gi
    requests.cpu: "1"
    requests.memory: 1Gi
  used:
    limits.cpu: 800m
    limits.memory: 800Mi
    requests.cpu: 400m
    requests.memory: 600Mi

#resourceQuota 리소스양 초과 시 에러
pods "demo-1" is forbidden: exceeded quota: mem-cpu-demo,
requested: requests.memory=700Mi,used: requests.memory=600Mi, limited: requests.memory=1Gi

 

LimitRange

 

#네임스페이스 기본 메모리 요청 및 상한 구성
#생성되는 파드 내 컨테이너에 대한 LimitRange 구성 시
apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container
---
apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-limit-range
spec:
  limits:
  - default:
      cpu: 1
    defaultRequest:
      cpu: 0.5
    type: Container

#제한량을 더 높였을 때 그대로 적용되지만 요청량은 제한한 양까지만 설정되어 있음.
#리소스의 ㅚ소 및 최대 제약 조건 구성 시
apiVersion: v1
kind: LimitRange
metadata:
  name: mem-min-max-demo-lr
spec:
  limits:
  - max:
      memory: 1Gi
    min:
      memory: 500Mi
    type: Container

#LimitRange 지정 내에서는 그대로 적용 되지만 최소 및 최대 사항 요건에 미치지 못할 경우 에러 발생
pods "demo-0" is forbidden: minimum memory usage per Container is 500Mi, but request is 100Mi.
반응형
Comments