[쿠버네티스]yaml 파일

신동혁·2023년 5월 23일

쿠버네티스

목록 보기
3/3

apiVersion
kind
metadata

name

spec

containers

- name
resources

requests
limits

리소스 관리

spec.containers.resources
포드나 디플로이먼트 등을 생성할 때 자원 할당량을 명시적으로 제한하지 않을 경우 해당 오브젝트는 해당 오브젝트가 포함된 노드의 모든 물리 자원을 사용할 수 있게 된다.

  • cpu 제한 : 1 = 1000m(millicores) = 1vCPU
  • 메모리 제한 : 1G = 1000M(1Gi = 1024Mi)
  • ephemeral-storage 제한 : 1G = 1000M(1Gi = 1024Mi)
  • GPU 제한 : 1(1개), 2(2개)... (cpu와 달리 부분적 요청 불가능)
ex)
requests:
	memory: 1024Mi
    cpu: 500m
    ephemeral-storage: 1024Mi
    nvidia.com/gpu:2
limits:
	memory: 2048Mi
    cpu: 1
    ephemeral-storage: 2048Mi
    nvidia.com/gpu:2

포드의 우선순위(QoS: Quality of Service)

1) Quranteed 클래스
limits만 설정하거나, limits와 request를 동일하게 설정한 경우 부여받는 등급이다. 해당 클래스는 오버커밋되는 경우가 없으므로 자원의 사용을 안정적으로 보장받는다.

2) BestEffort 클래스
request와 limits 모두 설정되지 않은 경우 부여받는 등급이다. 즉, 남은 자원에 대해서는 자유롭게 사용할 수 있지만 최소 사용 가능 자원을 보장받지도 못한다.

3) Burstable 클래스
limits값이 request보다 더 큰 경우 부여받는 등급이다. request와 limits의 본분을 다하는 경우.

위 3가지 등급 중 메모리가 부족한 경우 포드가 evict(퇴거)되는 순서는 BestEffort, Burstable, Quranteed 순입니다. 하지만 이 순서는 절대적이지 않고 포드가 현재 사용 중인 실제 메모리량에 따라 우선순위가 바뀔 수도 있습니다.

0개의 댓글