Information in this document may be out of date

This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Configure Default CPU Requests and Limits for a Namespace

๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ CPU ์š”์ฒญ๋Ÿ‰๊ณผ ์ƒํ•œ ๊ตฌ์„ฑ

ํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— CPU ๋ฆฌ์†Œ์Šค ์ƒํ•œ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ •์˜ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ฏธ๋ฆฌ ์„ค์ •ํ•œ CPU ๋ฆฌ์†Œ์Šค ์ƒํ•œ์ด ํ•ด๋‹น ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ์ƒˆ๋กœ์šด ํŒŒ๋“œ์— ์„ค์ •๋˜๋„๋ก ํ•œ๋‹ค.

์ด ํŽ˜์ด์ง€๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ CPU ์š”์ฒญ๋Ÿ‰(request) ๋ฐ ์ƒํ•œ(limit)์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค€๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ CPU ์ƒํ•œ์ด ์„ค์ •๋˜์–ด ์žˆ๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ–ˆ๋Š”๋ฐ, ํ•ด๋‹น ํŒŒ๋“œ์˜ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์— CPU ์ƒํ•œ์ด ๋ช…์‹œ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด, ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์— ๊ธฐ๋ณธ CPU ์ƒํ•œ์„ ํ• ๋‹นํ•œ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๊ธฐ๋ณธ CPU ์‚ฌ์šฉ๋Ÿ‰์„ ํ• ๋‹นํ•˜๋Š”๋ฐ, ์ด๋Š” ์ด ํŽ˜์ด์ง€์˜ ์ดํ›„ ๋ถ€๋ถ„์—์„œ ์„ค๋ช…๋  ํŠน์ • ์กฐ๊ฑด ํ•˜์—์„œ๋งŒ ์ˆ˜ํ–‰๋œ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๊ณ , kubectl ์ปค๋งจ๋“œ-๋ผ์ธ ํˆด์ด ํด๋Ÿฌ์Šคํ„ฐ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ํ˜ธ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ๊ฐ€ ์ ์–ด๋„ 2๊ฐœ ํฌํ•จ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ๋งŒ์•ฝ, ์•„์ง ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด, minikube๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ์— ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ โ€œ1.0 CPUโ€๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ต์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋ฉด, CPU์˜ ์˜๋ฏธ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ƒ์„ฑ

์ด ์—ฐ์Šต์—์„œ ์ƒ์„ฑํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋‚˜๋จธ์ง€์™€ ๊ฒฉ๋ฆฌ๋˜๋„๋ก ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

kubectl create namespace default-cpu-example

๋ฆฌ๋ฐ‹๋ ˆ์ธ์ง€(LimitRange)์™€ ํŒŒ๋“œ ์ƒ์„ฑ

๋‹ค์Œ์€ ์˜ˆ์‹œ ๋ฆฌ๋ฐ‹๋ ˆ์ธ์ง€์— ๋Œ€ํ•œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์ด๋‹ค. ์ด ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋Š” ๊ธฐ๋ณธ CPU ์š”์ฒญ๋Ÿ‰ ๋ฐ ๊ธฐ๋ณธ CPU ์ƒํ•œ์„ ์ง€์ •ํ•œ๋‹ค.

apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-limit-range
spec:
  limits:
  - default:
      cpu: 1
    defaultRequest:
      cpu: 0.5
    type: Container

default-cpu-example ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฆฌ๋ฐ‹๋ ˆ์ธ์ง€๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

kubectl apply -f https://k8s.io/examples/admin/resource/cpu-defaults.yaml --namespace=default-cpu-example

์ด์ œ ํŒŒ๋“œ๋ฅผ default-cpu-example ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ƒ์„ฑํ•˜๊ณ , ํ•ด๋‹น ํŒŒ๋“œ์˜ ์–ด๋–ค ์ปจํ…Œ์ด๋„ˆ๋„ ์ž์ฒด CPU ์š”์ฒญ๋Ÿ‰(request)๊ณผ ์ƒํ•œ(limit)์„ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด, ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์— CPU ์š”์ฒญ๋Ÿ‰์˜ ๊ธฐ๋ณธ๊ฐ’(0.5)๊ณผ ์ƒํ•œ์˜ ๊ธฐ๋ณธ๊ฐ’(1)์„ ์ง€์ •ํ•œ๋‹ค.

๋‹ค์Œ์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•˜๋‚˜์ธ ํŒŒ๋“œ์˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์ด๋‹ค. ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋Š” CPU ์š”์ฒญ๋Ÿ‰๊ณผ ์ƒํ•œ์„ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.

apiVersion: v1
kind: Pod
metadata:
  name: default-cpu-demo
spec:
  containers:
  - name: default-cpu-demo-ctr
    image: nginx

ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

kubectl apply -f https://k8s.io/examples/admin/resource/cpu-defaults-pod.yaml --namespace=default-cpu-example

ํŒŒ๋“œ์˜ ์‚ฌ์–‘์„ ํ™•์ธํ•œ๋‹ค.

kubectl get pod default-cpu-demo --output=yaml --namespace=default-cpu-example

์ถœ๋ ฅ์„ ๋ณด๋ฉด ํŒŒ๋“œ ๋‚ด ์œ ์ผํ•œ ์ปจํ…Œ์ด๋„ˆ์˜ CPU ์š”์ฒญ๋Ÿ‰์ด 500m cpu("500 ๋ฐ€๋ฆฌcpu"๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์Œ)์ด๊ณ , CPU ์ƒํ•œ์ด 1 cpu์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฆฌ๋ฐ‹๋ ˆ์ธ์ง€์— ์˜ํ•ด ์ง€์ •๋œ ๊ธฐ๋ณธ๊ฐ’์ด๋‹ค.

containers:
- image: nginx
  imagePullPolicy: Always
  name: default-cpu-demo-ctr
  resources:
    limits:
      cpu: "1"
    requests:
      cpu: 500m

์ปจํ…Œ์ด๋„ˆ ์ƒํ•œ์€ ์ง€์ •ํ•˜๊ณ , ์š”์ฒญ๋Ÿ‰์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜?

๋‹ค์Œ์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•˜๋‚˜์ธ ํŒŒ๋“œ์˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์ด๋‹ค. ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋Š” CPU ์ƒํ•œ์€ ์ง€์ •ํ•˜์ง€๋งŒ, ์š”์ฒญ๋Ÿ‰์€ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.

apiVersion: v1
kind: Pod
metadata:
  name: default-cpu-demo-2
spec:
  containers:
  - name: default-cpu-demo-2-ctr
    image: nginx
    resources:
      limits:
        cpu: "1"

ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

kubectl apply -f https://k8s.io/examples/admin/resource/cpu-defaults-pod-2.yaml --namespace=default-cpu-example

์ƒ์„ฑํ•œ ํŒŒ๋“œ์˜ ๋ช…์„ธ๋ฅผ ํ™•์ธํ•œ๋‹ค.

kubectl get pod default-cpu-demo-2 --output=yaml --namespace=default-cpu-example

์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ CPU ์š”์ฒญ๋Ÿ‰์ด CPU ์ƒํ•œ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ์„ค์ •๋˜์—ˆ์Œ์„ ๋ณด์—ฌ์ค€๋‹ค. ์ฐธ๊ณ ๋กœ ์ปจํ…Œ์ด๋„ˆ์—๋Š” CPU ์š”์ฒญ๋Ÿ‰์˜ ๊ธฐ๋ณธ๊ฐ’์ธ 0.5 cpu๊ฐ€ ํ• ๋‹น๋˜์ง€ ์•Š์•˜๋‹ค.

resources:
  limits:
    cpu: "1"
  requests:
    cpu: "1"

์ปจํ…Œ์ด๋„ˆ์˜ ์š”์ฒญ๋Ÿ‰์€ ์ง€์ •ํ•˜๊ณ , ์ƒํ•œ์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜?

๋‹ค์Œ์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•˜๋‚˜์ธ ํŒŒ๋“œ์˜ ์˜ˆ์‹œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์ด๋‹ค. ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋Š” CPU ์š”์ฒญ๋Ÿ‰์€ ์ง€์ •ํ•˜์ง€๋งŒ, ์ƒํ•œ์€ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.

apiVersion: v1
kind: Pod
metadata:
  name: default-cpu-demo-3
spec:
  containers:
  - name: default-cpu-demo-3-ctr
    image: nginx
    resources:
      requests:
        cpu: "0.75"

ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

kubectl apply -f https://k8s.io/examples/admin/resource/cpu-defaults-pod-3.yaml --namespace=default-cpu-example

์ƒ์„ฑํ•œ ํŒŒ๋“œ์˜ ๋ช…์„ธ๋ฅผ ํ™•์ธํ•œ๋‹ค.

kubectl get pod default-cpu-demo-3 --output=yaml --namespace=default-cpu-example

์ถœ๋ ฅ์„ ๋ณด๋ฉด ํŒŒ๋“œ ์ƒ์„ฑ ์‹œ ๋ช…์‹œํ•œ ๊ฐ’๋Œ€๋กœ ์ปจํ…Œ์ด๋„ˆ์˜ CPU ์š”์ฒญ๋Ÿ‰์ด ์„ค์ •๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค(๋‹ค์‹œ ๋งํ•ด, ๋งค๋‹ˆํŽ˜์ŠคํŠธ์™€ ์ผ์น˜ํ•œ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜, ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์˜ CPU ์ƒํ•œ์€ 1 cpu๋กœ ์„ค์ •๋˜๋ฉฐ, ์ด๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ CPU ์ƒํ•œ ๊ธฐ๋ณธ๊ฐ’์ด๋‹ค.

resources:
  limits:
    cpu: "1"
  requests:
    cpu: 750m

CPU ์ƒํ•œ ๋ฐ ์š”์ฒญ๋Ÿ‰์˜ ๊ธฐ๋ณธ๊ฐ’์— ๋Œ€ํ•œ ๋™๊ธฐ

๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฆฌ์†Œ์Šค ์ฟผํ„ฐ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, CPU ์ƒํ•œ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋‹ค์Œ์€ CPU ๋ฆฌ์†Œ์Šค ์ฟผํ„ฐ๊ฐ€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ ์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ œํ•œ ์‚ฌํ•ญ์ด๋‹ค.

  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ํŒŒ๋“œ์— ๋Œ€ํ•ด, ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์— CPU ์ƒํ•œ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • CPU ์ƒํ•œ์€ ํ•ด๋‹น ํŒŒ๋“œ๊ฐ€ ์Šค์ผ€์ค„๋ง๋  ๋…ธ๋“œ์— ๋ฆฌ์†Œ์Šค ์˜ˆ์•ฝ์„ ์ ์šฉํ•œ๋‹ค. ํ•ด๋‹น ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ๋ชจ๋“  ํŒŒ๋“œ์— ๋Œ€ํ•ด ์˜ˆ์•ฝ๋œ CPU ์ด๋Ÿ‰์ด ์ง€์ •๋œ ์ƒํ•œ์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

๋ฆฌ๋ฐ‹๋ ˆ์ธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ์—๋Š” ๋‹ค์Œ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ํ•ด๋‹น ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ํŒŒ๋“œ๊ฐ€ ์ž์ฒด CPU ์ƒํ•œ์„ ์ง€์ •ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์— CPU ์ƒํ•œ ๊ธฐ๋ณธ๊ฐ’์„ ์ ์šฉํ•˜๋ฉฐ, ํ•ด๋‹น ํŒŒ๋“œ๋Š” CPU ๋ฆฌ์†Œ์Šค์ฟผํ„ฐ๊ฐ€ ์ ์šฉ๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ—ˆ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

์ •๋ฆฌ

๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

kubectl delete namespace default-cpu-example

๋‹ค์Œ ๋‚ด์šฉ

ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๋ฌธ์„œ

์•ฑ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๋ฌธ์„œ

์ตœ์ข… ์ˆ˜์ • June 07, 2023 at 5:58 PM PST: [ko] Update links in dev-1.26-ko.1 (00461e0912)