이 오브젝트를 왜 써야하나?
Kubernetes Cluster라고 하여 전체 사용할 수 있는 자원이 있다.
(일반적으로 메모리나 cpu)
클러스터 안에는 여러 namespace를 만들 수 있고
또 namespace 안에 여러 파드를 만들 수 있다.
각 파드는 필요한 자원을 클러스터 자원을 공유하여 사용 하는데
만약 한 namepace 안에 있는 파드가 클러스터 안에 있는 모든
자원을 모두 사용하면
다른 파드 입장에서는 더이상 쓸 자원이 없어 문제가 발생한다..
이런 문제를 해결하기 위해 ResourceQuota 를 namespace 마다
달면 namespace마다 최대 한계를 설정할 수 있다.
그러하여 한계를 넘을 수 없어 다른 namespace에 있는 파드들에 영향을 끼치지 않게 된다.
한 파드가 자원 사용량을 너무 크게 해버리면 다른 파드들이 이 namespace에 더이상 들어올 수 없게 되는데
이러지 못하게 관리하기 위하여 limit range를 두어 namespace에 들어오는
파드의 크기를 제한할 수 있다.
클러스터에도 달아 전체 자원에 대한 제한을 할 수 있다.
1.Namespace
한 네임스페이스 안에 중복 이름 파드 존재 x
타 네임 스페이스에 있는 자원과 분리가 되어 관리됨
셀렉터나 라벨이 같아도 네임스페이스가 다르면
서비스,파드 모두 서로 연결이 되지 않음
Node나 PV같이 모든 네임스페이스에서 공용으로 사용되는 경우도 있음
네임스페이스를 지우면 안 자원들도 모두 지워짐
2.ResourceQuota
네임스페이스의 자원한계를 설정하는 오브젝트
전체 리퀘스트 자원 최대 3gb
메모리 제한 6gb
제한이 있는데 파드에 메모리를 지정해줘야하며 전체
한계치를 넘지 않아야한다.
3.LimitRange
각각의 파드마다 namespace에 들어올 수 있는지 자원을 체크
Min : 파드에서 설정되는 메모리의 리미트 값이 0.1보다 넘어야한다.
Max : 초과할 수 없다.
maxLimitRequestRatio : request값과 limit값의 비율이 최대 3배를 넘지 x
default를 주면 파드를 만들때 request, limit을 넣지 않으면 해당값으로 자동 설정
'kubernetes' 카테고리의 다른 글
Deployment (0) | 2023.08.10 |
---|---|
Pod-Lifecycle (0) | 2023.08.10 |
Service (0) | 2023.08.10 |
Controller (0) | 2023.08.10 |
Volume (0) | 2023.08.10 |