Kubernetes ResourceQuota 완벽 가이드! Namespace별 CPU·Memory 제한과 Cluster 관리 구조 이해하기

Kubernetes Cluster에서는 여러 팀과 Application이 하나의 Infrastructure를 공유합니다.

하지만 제한 없이 Resource를 사용하면 특정 Application이 CPU와 Memory를 모두 점유하여 다른 서비스에 영향을 줄 수 있습니다.

예:

Team A Application

CPU 100% 사용

다른 Application 실행 불가

이 문제를 해결하기 위해 Kubernetes는 ResourceQuota 기능을 제공합니다.

ResourceQuota는 Namespace 단위로 CPU, Memory, Pod 개수 등의 사용량을 제한하는 Kubernetes Resource 관리 기능입니다.

구성 요소역할
ResourceQuotaNamespace Resource 제한
LimitRangeContainer 기본 제한
NamespaceResource 관리 영역
Scheduler배치 판단
kubelet실제 Resource 관리

ResourceQuota 구조를 이해하면 Multi Tenant 환경과 Enterprise Kubernetes 운영 방식을 이해할 수 있습니다.

Kubernetes ResourceQuota란?

ResourceQuota는 Namespace에서 사용할 수 있는 Resource 최대량을 설정하는 기능입니다.

관리 대상:

  • CPU
  • Memory
  • Pod 개수
  • PVC 개수
  • Storage 용량
  • Service 개수

구조:

Namespace

ResourceQuota 적용

Application Resource 제한

Cluster Resource를 효율적으로 관리할 수 있습니다.

Kubernetes ResourceQuota가 필요한 이유

공유 Cluster 환경에서는 Resource 경쟁이 발생합니다.

예:

Application A

CPU:

8 Core 사용

Application B

실행 필요

하지만 Resource 부족

서비스 영향 발생

ResourceQuota를 적용하면 팀별 또는 서비스별 Resource 사용량을 제한할 수 있습니다.

Kubernetes ResourceQuota 동작 구조

흐름:

사용자 Pod 생성 요청

API Server

ResourceQuota 확인

사용 가능 여부 판단

허용 또는 차단

Quota를 초과하면 Resource 생성이 거부됩니다.

Kubernetes ResourceQuota 종류

주요 제한 항목:

항목설명
requests.cpuCPU 예약량 제한
limits.cpuCPU 최대 사용량 제한
requests.memoryMemory 예약량 제한
limits.memoryMemory 최대 사용량 제한
podsPod 개수 제한
persistentvolumeclaimsPVC 개수 제한

환경에 맞게 설정합니다.

Kubernetes ResourceQuota 예제

예:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: team-quota
  namespace: production
spec:
  hard:
    requests.cpu: "10"
    requests.memory: 20Gi
    pods: "20"

Production Namespace에서 사용할 수 있는 Resource를 제한합니다.

Kubernetes ResourceQuota 확인 방법

Quota 확인:

kubectl get resourcequota

상세 확인:

kubectl describe resourcequota quota-name

현재 사용량과 제한량을 확인할 수 있습니다.

Kubernetes ResourceQuota와 Namespace 관계

ResourceQuota는 Namespace 단위로 적용됩니다.

구조:

Cluster

Namespace A

ResourceQuota

Pod 제한

팀별 환경 분리에 적합합니다.

Kubernetes LimitRange와 ResourceQuota 차이

두 기능은 함께 사용됩니다.

구분역할
ResourceQuota전체 Namespace 제한
LimitRange개별 Container 제한

예:

ResourceQuota:

팀 전체 CPU 20 Core 제한

LimitRange:

Container 하나당 CPU 2 Core 제한

둘을 조합해야 안정적인 관리가 가능합니다.

Kubernetes ResourceQuota와 Scheduler 관계

Scheduler는 ResourceQuota를 직접 계산하지 않습니다.

흐름:

Pod 요청

API Server

Quota 확인

저장

Scheduler 배치

Quota 검증은 API Server 단계에서 수행됩니다.

Kubernetes ResourceQuota와 CPU Memory 관리

운영 환경에서는 Request와 Limit 관리가 중요합니다.

Request:

Scheduler 판단 기준

Limit:

최대 사용량 제한

ResourceQuota는 이 값을 기준으로 제한합니다.

Kubernetes ResourceQuota 초과 문제

예:

Quota:

CPU 10 Core

현재 사용:

CPU 10 Core

새로운 Pod 생성

Quota 초과

생성 실패

Error:

exceeded quota

Resource 증가 또는 조정이 필요합니다.

Kubernetes ResourceQuota 장애 분석

확인 순서:

1단계

Quota 확인

kubectl get resourcequota

2단계

Namespace Resource 확인

kubectl describe namespace

3단계

Pod Request 확인

kubectl describe pod

Resource 부족 원인을 찾습니다.

Kubernetes Multi Tenant 환경과 ResourceQuota

Enterprise 환경에서는 여러 팀이 Cluster를 공유합니다.

예:

개발팀 Namespace

Quota 설정

운영팀 Namespace

별도 Quota 설정

서로 영향을 줄일 수 있습니다.

Kubernetes ResourceQuota와 Cloud 비용 관리

Cloud Kubernetes에서는 Resource 사용량이 비용과 연결됩니다.

Quota 적용:

불필요한 Resource 사용 제한

Cloud 비용 관리

FinOps 운영과 연결됩니다.

Kubernetes ResourceQuota 운영 전략

Production 환경:

Namespace 설계

Quota 정책 설정

Monitoring 구성

Alert 설정

정기 조정

지속적인 Resource 관리가 필요합니다.

Kubernetes ResourceQuota Monitoring

확인 항목:

  • CPU 사용량
  • Memory 사용량
  • Quota 초과
  • Resource 증가 추세

Prometheus와 연결하여 관리합니다.

Kubernetes ResourceQuota 장점

장점설명
Resource 보호서비스 영향 방지
Multi Tenant 지원팀별 분리
비용 관리Cloud 비용 절감
운영 안정성Resource 예측 가능

ResourceQuota는 Kubernetes Cluster 운영의 핵심 관리 기능입니다.

자주 묻는 질문

ResourceQuota를 설정하면 Pod가 자동으로 제한되나요?

아닙니다.

설정된 Resource 요청량 기준으로 생성 가능 여부를 판단합니다.

ResourceQuota와 LimitRange는 같이 사용해야 하나요?

Production 환경에서는 함께 사용하는 경우가 많습니다.

Quota 초과하면 기존 Pod도 종료되나요?

아닙니다.

새로운 Resource 생성 요청이 제한됩니다.

마무리

Kubernetes ResourceQuota는 Namespace별 Resource 사용량을 제한하여 Cluster 안정성을 유지하는 핵심 기능입니다.

구성 요소역할
ResourceQuotaNamespace 전체 제한
LimitRangeContainer 제한
Namespace관리 영역
API ServerQuota 검증

ResourceQuota 구조를 이해하면 Kubernetes Multi Tenant 환경과 대규모 Cluster 운영 전략을 설계할 수 있습니다.

다음 글에서는 Container 단위 Resource 기본값을 관리하는 Kubernetes LimitRange 완벽 가이드! Container CPU·Memory 기본 제한과 Resource 관리 구조 이해하기를 진행하겠습니다.

댓글 남기기