본문 바로가기

Tech/[Container] Kubernetes

쿠버네티스 기본 오브젝트 - Namespace, ResourceQuota, LimitRange

Namespace, ResourceQuota, LimitRange

Namespace, ResourceQuota, LimitRange Overview

  • Kubernetes Cluster의 Memory, CPU 등을 수많은 Pod들이 동시에 사용
  • Namespace: 리소스 관리·격리·정책 적용을 위한 논리적 구분 단위
  • ResourceQuota: 네임스페이스 전체에서 사용할 수 있는 리소스의 총량(최대치)을 제한하는 정책
  • LimitRange: 네임스페이스 내 각 Pod의 리소스 사용량 최소·최대 범위를 설정하는 정책

 

Namespace

  • Namespace: 리소스 관리·격리·정책 적용을 위한 논리적 구분 단위이다.
  • Service의 Selector는 동일 Namespace 인 Pod의 Label 만 선택할 수 있다.
    다른 Namespace의 Pod는 selector로 연결할 수 없다.
  • PV, Node: cluster-scoped
    PVC: namespace-scoped

 

ResourceQuota

  • ResourceQuota: 네임스페이스 전체에서 사용할 수 있는 리소스의 총량(최대치)을 제한하는 정책
    → Pod이 요구하는 리소스 총합이 Namespace의 ResourceQuota의 잔여량을 초과하면 스케줄링 실패
    → 또한, Pod의 request/limit 값이 없거나(default 없는 경우) 규칙을 충족하지 않으면 Pod 생성이 거부됨

 

LimitRange

  • LimitRange: 네임스페이스 내 각 Pod의 리소스 사용량 최소·최대 범위를 설정하는 정책
  • min: 최소 Pod의 리소스 사용량 제한
  • max: 최대 Pod의 리소스 사용량 제한
  • maxLimitRequestRatio: request와 limit 간의 최대 비율 제한
  • defaultRequest: Pod에 할당된 request가 없을 때 사용될 default 값
  • default: Pod에 할당된 limit가 없을 때 사용될 default 값

 

Reference : https://inf.run/yW34