Kubernetes의 자원관리 with aks

혹시·2024년 10월 28일

K8S

목록 보기
8/11

Kubernetes에서 request와 limit은 컨테이너가 사용할 수 있는 리소스를 제어하는 개념입니다. pod가 요청하는 전체 리소스는 pod의 모든 컨테이너가 요청하는 합계다.

  1. Request
    정의: 컨테이너가 시작될 때 필요한 최소 리소스를 지정합니다. Kubernetes는 이 값을 기준으로 노드에 Pod를 배치합니다.
    용도: 요청한 리소스가 확보되지 않으면 Pod가 배치되지 않으므로, 필요한 리소스를 미리 확보하고 싶을 때 사용합니다.
  2. Limit
    정의: 컨테이너가 사용할 수 있는 최대 리소스를 지정합니다. 이 한계를 초과하면, Kubernetes는 해당 컨테이너의 리소스 사용을 제한하거나, CPU의 경우 일시적으로 throttling을 적용합니다.
    용도: 다른 컨테이너와의 리소스 경쟁을 방지하고, 특정 컨테이너가 노드의 모든 리소스를 소모하지 않도록 합니다.

spec.containers.resources.requests : 리소스 관리 요청 값 설정 spec.containers.resources.requests.cpu: 100m는 0.1cpu를 의미
spec.containers.resources.requests.memory: Ei, Pi, Ti, Gi, Mi, Ki 형식으로 지정
spec.containers.resources.limits: 리소스 제한 값 설정

vi pod-resource.yml
kubectl apply -f ./pod-resource.yml
kubectl describe pods kuard-pod-resource



describe로 리소스 요청과 제한을 확인한다.

[2 cpu, request 0.5 cpu 일 경우]
pod 1개, 2 cpu 모두 사용
pod 2개, 1cpu 씩 사용
pod가 4개가 될 경우 0.5 cpu씩 사용하게 됨
이후로는 더 이상 pod를 스케줄링 하지 않음.

profile
클라우드하는 귀여운 애

0개의 댓글