<한줄 요약>
(특정 네임스페이스 안에서)시스템 자원에 대한 사용량을 오브젝트 단위로 관리하는 방법
<세줄 요약>
시스템 자원에 대한 사용량을 오브젝트 단위로 관리하는 방법
별도의 오브젝트마다 정의해줄 수 있다.(pod에 대해, pvc에 대해)
Limit Ranges는 네임스페이스 단위로 관리한다
<특징>
- 오브젝트 단위로 사용량을 관리하되, 그 범위는 클러스터 전체가 아닌 특정 네임 스페이스 안에서만 적용된다.
- 1네임스페이스 1Limit Ranges
- A네임스페이스에 Limit Ranges가 생기면, 오직 해당 A네임스페이스에만 Limit Ranges가 적용된다.
- Limit Ranges의 type으로는 Container, Pod, PersistentVolumeClaim 세가지가 있다.
- Limit Ranges를 넘는 사양의 Pod를 생성하면 생성 단계에서 status가 'OutOfmemory'로 나타난다.
- 'OOMKilled' 상태는 Pod의 메모리가 부족하여 실패했음을 나타낸다. 이 때, Pod에 설정된 memory limit을 확인하자.
<그림 설명>
쿠버네티스에서 Resource Quota, Limit Ranges, Requests&Limit 의 역할을 그림으로 나타내면 다음과 같다.
위 그림에서 빨간색 선은 각 네임스페이스를 의미한다.
Resource Quota는 네임스페이스 전체 오브젝트에 대한 사용량을 관리한다.
Limit Ranges는 네임스페이스 안에서 각 오브젝트(pod, pvc, container)에 대한 사용량을 관리한다.
(Pod안의 Container에 설정하는)Requests&Limit는 컨테이너에 대한 사용량을 관리한다.
Resource Quota, Limit Ranges, Requests&Limit 가 영향끼치는 범위를 연한 색깔로 나타내면 다음과 같다.
<만드는 법>
apiVersion: v1
kind: LimitRange
metadata:
name: limits-dev1
namespace: ns-dev1
spec:
limits:
- type: Container
default:
memory: 512Mi
defaultRequest:
memory: 256Mi
<존재 이유 or 흐름 속 의미>
(dev, stage, production, monitoring, test)등 각 팀 별로 네임스페이스가 할당된 상황에서)각 팀은 팀의 목적에 알맞게 각 오브젝트의 사용량 limit을 설정해줄 수 있다.
<참고 링크>
공식 문서
https://kubernetes.io/ko/docs/concepts/policy/limit-range/
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
https://kubernetes.io/ko/docs/concepts/policy/resource-quotas/
https://kubernetes.io/ko/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/
강의
그림으로 배우는 쿠버네티스 > 8.5 Limit Ranges
그림으로 배우는 쿠버네티스 > 8.5 Limit Ranges 깃헙
블로그
Kubernetes LimitRange를 사용한 리소스 제한
'Kubernetes' 카테고리의 다른 글
[PKOS] 1주차 - AWS kops 설치 및 기본 사용 (2) | 2023.03.12 |
---|---|
Network Policy (0) | 2023.03.10 |
Ingress (2) | 2023.02.07 |
Rolling Update (0) | 2023.02.04 |
ServiceAccount (0) | 2023.01.29 |