ํ•ด๋‹น ๋ฌธ์„œ์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฒ„์ „: v1.30

Kubernetes v1.30 ๋ฌธ์„œ๋Š” ๋” ์ด์ƒ ์ ๊ทน์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Œ. ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” ๋ฌธ์„œ๋Š” ์ •์  ์Šค๋ƒ…์ƒท์ž„. ์ตœ์‹  ๋ฌธ์„œ๋ฅผ ์œ„ํ•ด์„œ๋Š”, ๋‹ค์Œ์„ ์ฐธ๊ณ . ์ตœ์‹  ๋ฒ„์ „.

๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ 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)