์ด ํ์ด์ง์์๋ Spot VM์ ์ ์์ Spot VM์ด Google Kubernetes Engine(GKE)์์ ์ด๋ค ๋ฐฉ์์ผ๋ก ์๋ํ๋์ง์ ๋ํด ์ค๋ช ํฉ๋๋ค. Spot VM ์ฌ์ฉ ๋ฐฉ๋ฒ์ Spot VM ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
GKE์ Spot VM ๊ฐ์
์คํ VM์ ํ์ค Compute Engine VM๋ณด๋ค ์ ๋ ดํ๊ณ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ์ง ์๋ Compute Engine ๊ฐ์ ๋จธ์ (VM) ์ธ์คํด์ค์ ๋๋ค. ์คํ VM์ ํ์ค VM๊ณผ ๋์ผํ ๋จธ์ ์ ํ ๋ฐ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
ํด๋ฌ์คํฐ ๋ฐ ๋ ธ๋ ํ์์ Spot VM์ ์ฌ์ฉํ๋ฉด Spot VM์ ์์ ํน์ฑ์ผ๋ก ์ธํ ์ค๋จ์ ํ์ฉํ ์ ์๋ ์คํ ์ดํธ๋ฆฌ์ค(Stateless), ์ผ๊ด ๋๋ ๋ด๊ฒฐํจ์ฑ ์ํฌ๋ก๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
Compute Engine์์ ํ์ค VM์ ๋ํ ๋ฆฌ์์ค๊ฐ ํ์ํ ๋๊น์ง Spot VM์ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Spot VM์ ๋ํ ์์ธํ ๋ด์ฉ์ Compute Engine ๋ฌธ์์ Spot VM์ ์ฐธ์กฐํ์ธ์.
Spot VM์ ์ด์
Spot VM ๋ฐ ์ ์ ํ VM์๋ ๋ค์๊ณผ ๊ฐ์ ๋ง์ ์ด์ ์ด ์์ต๋๋ค.
- ํ์ค Compute Engine VM๋ณด๋ค ์ ๋ ดํ ๊ฐ๊ฒฉ
- ์ด๋ฌํ VM์ ์์ ํน์ฑ์ ๋ด์ฑ์ด ์๋ ์คํ ์ดํธ๋ฆฌ์ค(Stateless), ๋ด๊ฒฐํจ์ฑ ์ํฌ๋ก๋์ ์ ํฉ
- ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ ๋ฐ ๋ ธ๋ ์๋ ํ๋ก๋น์ ๋๊ณผ ํจ๊ป ์๋
24์๊ฐ ํ ๋ง๋ฃ๋๋ ์ ์ ํ VM๊ณผ ๋ฌ๋ฆฌ Spot VM์ ๋ง๋ฃ ์๊ฐ์ด ์์ต๋๋ค. Spot VM์ Compute Engine์์ ๋ค๋ฅธ ๊ณณ์ ๋ฆฌ์์ค๋ฅผ ํ์๋ก ํ๋ ๊ฒฝ์ฐ์๋ง ์ข ๋ฃ๋ฉ๋๋ค.
GKE์์ Spot VM ์๋ ๋ฐฉ์
Spot VM์ด ์๋ ํด๋ฌ์คํฐ ๋๋ ๋ ธ๋ ํ์ ๋ง๋ค๋ฉด GKE๋ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน(MIG)์ฒ๋ผ ์๋ํ๋ ๊ธฐ๋ณธ Compute Engine Spot VM์ ๋ง๋ญ๋๋ค. Spot VM์ ์ฌ์ฉํ๋ ๋ ธ๋๋ ํ์ค GKE ๋ ธ๋์ฒ๋ผ ์๋ํ์ง๋ง ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ์ง ์์ต๋๋ค. Spot VM์์ ์ฌ์ฉํ๋ ๋ฆฌ์์ค๊ฐ ํ์ค VM์ ์คํํ๋ ๋ฐ ํ์ํ ๊ฒฝ์ฐ Compute Engine์ ๋ค๋ฅธ ์์น์์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋๋ก Spot VM์ ์ข ๋ฃํฉ๋๋ค.
Spot VM์ ์ข ๋ฃ ๋ฐ ๋จ๊ณ์ ์ข ๋ฃ
Compute Engine์ด Spot VM์์ ์ฌ์ฉํ๋ ๋ฆฌ์์ค๋ฅผ ํ์ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ข ๋ฃ ์๋ฆผ์ด GKE๋ก ์ ์ก๋ฉ๋๋ค. Spot VM์ ์ข ๋ฃ ์๋ฆผ์ ๋ฐ์ ํ 30์ด ๋์ ์ข ๋ฃ๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ฌ์คํฐ๋ ๋จ๊ณ์ ๋ ธ๋ ์ข ๋ฃ๋ฅผ ์ฌ์ฉํฉ๋๋ค. kubelet์ ์ข ๋ฃ ์๋ฆผ์ ํ์ธํ๊ณ ๋ ธ๋์์ ์คํ ์ค์ธ ํฌ๋๋ฅผ ๋จ๊ณ์ ์ผ๋ก ์ข ๋ฃํฉ๋๋ค. ํฌ๋๊ฐ ๋ฐฐํฌ์ ๊ฐ์ ๊ด๋ฆฌํ ์ํฌ๋ก๋์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ ์ปจํธ๋กค๋ฌ๊ฐ ์ข ๋ฃ๋ ํฌ๋๋ฅผ ๋์ฒดํ ์ ํฌ๋๋ฅผ ๋ง๋ค๊ณ ์์ฝํฉ๋๋ค.
kubelet์ ์ต์์ ๋ฐฉ์์ผ๋ก ๋น์์คํ
ํฌ๋์ 15์ด์ ๋จ๊ณ์ ์ข
๋ฃ ๊ธฐ๊ฐ์ ๋ถ์ฌํ๋ฉฐ ์ดํ ์์คํ
ํฌ๋(system-cluster-critical
๋๋ system-node-critical
priorityClasses ๊ฐ์ง)๋ 15์ด ๋์ ๋จ๊ณ์ ์ผ๋ก ์ข
๋ฃ๋ฉ๋๋ค. ๋จ๊ณ์ ๋
ธ๋ ์ข
๋ฃ ์ค์ kubelet์ ํฌ๋ ์ํ๋ฅผ ์
๋ฐ์ดํธํ๊ณ Failed
๋จ๊ณ์ Terminated
์ด์ ๋ฅผ ์ข
๋ฃ๋ ํฌ๋์ ํ ๋นํฉ๋๋ค.
ํฌ๋ ๋งค๋ํ์คํธ์ terminationGracePeriodSeconds
ํ๋์ 15์ด๋ณด๋ค ํฐ ๊ฐ์ ์ง์ ํ๋๋ผ๋ ์ข
๋ฃ ์๋ฆผ ํ 30์ด๊ฐ ์ง๋๋ฉด VM์ด ์ข
๋ฃ๋ฉ๋๋ค.
์ข ๋ฃ๋ ํฌ๋ ์๊ฐ ๋ ธ๋ 100๊ฐ ๋ฏธ๋ง์ธ ํด๋ฌ์คํฐ์ ๊ฒฝ์ฐ 1,000๊ฐ, ๋ ธ๋ ์๊ฐ 100๊ฐ ์ด์์ธ ํด๋ฌ์คํฐ์ ๊ฒฝ์ฐ 5,000๊ฐ์ ๊ธฐ์ค์ ์ ๋๋ฌํ๋ฉด ๊ฐ๋น์ง ์ปฌ๋ ์ ์ด ํฌ๋๋ฅผ ์ญ์ ํฉ๋๋ค.
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ข ๋ฃ๋ ํฌ๋๋ฅผ ์๋์ผ๋ก ์ญ์ ํ ์๋ ์์ต๋๋ค.
kubectl get pods --all-namespaces | grep -i NodeShutdown | awk '{print $1, $2}' | xargs -n2 kubectl delete pod -n
kubectl get pods --all-namespaces | grep -i Terminated | awk '{print $1, $2}' | xargs -n2 kubectl delete pod -n
์คํ VM์์ ์ํฌ๋ก๋ ์์ฝ
GKE๋ cloud.google.com/gke-spot=true
๋ฐ cloud.google.com/gke-provisioning=spot
(GKE ๋ฒ์ 1.25.5-gke.2500 ์ด์์ ์คํํ๋ ๋
ธ๋) ๋ผ๋ฒจ์ ์๋์ผ๋ก ์คํ VM์ ์ฌ์ฉํ๋ ๋
ธ๋์ ์ถ๊ฐํฉ๋๋ค. ํฌ๋ ์ฌ์์ nodeSelector ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์คํ VM์ ์ฌ์ฉํ๋ ๋
ธ๋์์ ํน์ ํฌ๋๋ฅผ ์์ฝํ ์ ์์ต๋๋ค. ๋ค์ ์์์์๋ cloud.google.com/gke-spot
๋ผ๋ฒจ์ ์ฌ์ฉํฉ๋๋ค.
apiVersion: v1
kind: Pod
spec:
nodeSelector:
cloud.google.com/gke-spot: "true"
๋๋ ๋ค์ ์์์ ๊ฐ์ด ๋ ธ๋ ์ดํผ๋ํฐ๋ฅผ ์ฌ์ฉํ์ฌ GKE๊ฐ ์คํ VM์์ ํฌ๋๋ฅผ ์์ฝํ๋๋ก ์ง์ ํ ์ ์์ต๋๋ค.
apiVersion: v1
kind: Pod
spec:
...
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: cloud.google.com/gke-spot
operator: In
values:
- "true"
...
๋ํ nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
์ ์ฌ์ฉํ์ฌ GKE๊ฐ Spot VM ์ฌ์ฉ ๋
ธ๋์ ํฌ๋๋ฅผ ๋ฐฐ์นํ๋ ๊ฒ์ ์ ํธํ๋๋ก ํ ์๋ ์์ต๋๋ค.
๋์ ์ GKE๊ฐ ํ์ค VM์ ์ฌ์ฉํ๋ ๊ธฐ์กด ๋
ธ๋์ ํฌ๋๋ฅผ ์์ฝํ ์๋ ์์ผ๋ฏ๋ก Spot VM์ ์ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์์ต๋๋ค.
์์ฝ์ taint ๋ฐ ํจ๋ฌ๋ ์ด์ (toleration) ์ฌ์ฉ
์์คํ ์ค๋จ์ ๋ฐฉ์งํ๊ธฐ ์ํด์๋ ๋ ธ๋ taint๋ฅผ ์ฌ์ฉํ์ฌ GKE๊ฐ ์ค์ํ ์ํฌ๋ก๋๋ฅผ Spot VM์ ์์ฝํ์ง ์๋์ง ํ์ธํฉ๋๋ค. Spot VM์ ์ฌ์ฉํ๋ ๋ ธ๋๋ฅผ taintํ๋ฉด GKE๋ ํด๋น ๋ ธ๋์ ๋ํ ํด๋น ํจ๋ฌ๋ ์ด์ (toleration)์ด ์๋ ํฌ๋๋ง ์์ฝํฉ๋๋ค.
๋ ธ๋ taint๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ์ค Compute Engine VM์ ์ฌ์ฉํ๋ ๋ ธ๋ ํ์ด ํด๋ฌ์คํฐ์ ํ๋ ์ด์ ์์ด์ผ ํฉ๋๋ค. ํ์ค VM์ ์ฌ์ฉํ๋ ๋ ธ๋ ํ์ GKE๊ฐ DNS์ ๊ฐ์ ์ค์ํ ์์คํ ๊ตฌ์ฑ์์๋ฅผ ์์ฝํ ์ ์๋ ์์ ์ ์ธ ์์น๋ฅผ ์ ๊ณตํฉ๋๋ค.
Spot VM์ ๋ ธ๋ taint๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Spot VM์ taint ๋ฐ ํจ๋ฌ๋ ์ด์ (toleration) ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
GPU ๋ ธ๋ ํ์ Spot VM ์ฌ์ฉ
Spot VM์ GPU ์ฌ์ฉ์ ์ง์ํฉ๋๋ค.
์ GPU ๋
ธ๋ ํ์ ๋ง๋ค๋ฉด GKE๊ฐ ์๋์ผ๋ก nvidia.com/gpu=present:NoSchedule
taint๋ฅผ ์ ๋
ธ๋์ ์ถ๊ฐํฉ๋๋ค. ํด๋น ํจ๋ฌ๋ ์ด์
(toleration)์ด ์๋ ํฌ๋๋ง ์ด๋ฌํ ๋
ธ๋์์ ์คํ๋ ์ ์์ต๋๋ค. GKE๋ GPU๋ฅผ ์์ฒญํ๋ ํฌ๋์ ์ด ํจ๋ฌ๋ ์ด์
(toleration)์ ์๋์ผ๋ก ์ถ๊ฐํฉ๋๋ค.
Spot VM์ ์ฌ์ฉํ๋ GPU ๋
ธ๋ ํ์ ๋ง๋ค๋ ค๋ฉด ๋จผ์ ํ์ค VM์ ์ฌ์ฉํ๋ ๋นGPU ๋
ธ๋ ํ์ด ํด๋ฌ์คํฐ์ ํ๋ ์ด์ ์์ด์ผ ํฉ๋๋ค. ํด๋ฌ์คํฐ์ Spot VM์ ์ฌ์ฉํ๋ GPU ๋
ธ๋ ํ๋ง ์๋ ๊ฒฝ์ฐ GKE๋ ํด๋น ๋
ธ๋์ nvidia.com/gpu=present:NoSchedule
taint๋ฅผ ์ถ๊ฐํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ GKE๋ Spot VM์ ์ฌ์ฉํ๋ GPU ๋
ธ๋ ํ์ ์์คํ
์ํฌ๋ก๋๋ฅผ ์์ฝํ ์ ์์ต๋๋ค. GPU ๋
ธ๋๊ฐ ๋นGPU ๋
ธ๋๋ณด๋ค ์ปดํจํ
๋น์ฉ์ด ๋๊ธฐ ๋๋ฌธ์ Spot VM์ผ๋ก ์ธํด ์ค๋จ์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ ๋ฆฌ์์ค ์๋น๋ฅผ ๋๋ฆด ์ ์์ต๋๋ค.
ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ ๋ฐ ๋ ธ๋ ์๋ ํ๋ก๋น์ ๋
ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ ๋ฐ ๋ ธ๋ ์๋ ํ๋ก๋น์ ๋์ ์ฌ์ฉํ์ฌ ์ํฌ๋ก๋์ ์๊ตฌ์ ๋ฐ๋ผ ํด๋ฌ์คํฐ ๋ฐ ๋ ธ๋ ํ์ ์๋์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค. ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ์ ๋ ธ๋ ์๋ ํ๋ก๋น์ ๋์ ๋ชจ๋ Spot VM์ ์ฌ์ฉํ์ฌ ์ง์๋ฉ๋๋ค.
Spot VM ๋ฐ ๋ ธ๋ ์๋ ํ๋ก๋น์ ๋
๋
ธ๋ ์๋ ํ๋ก๋น์ ๋์ ์ํฌ๋ก๋์ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๋๋ก ํด๋ฌ์คํฐ์ ๋
ธ๋ ํ์ ์๋์ผ๋ก ๋ง๋ค๊ณ ์ญ์ ํฉ๋๋ค. nodeSelector
๋๋ ๋
ธ๋ ์ดํผ๋ํฐ๋ฅผ ์ฌ์ฉํ์ฌ Spot VM์ด ํ์ํ ์ํฌ๋ก๋๋ฅผ ์์ฝํ๋ฉด ๋
ธ๋ ์๋ ํ๋ก๋น์ ๋์ด ์ํฌ๋ก๋์ ํฌ๋๋ฅผ ์์ฉํ๊ธฐ ์ํด ์ ๋
ธ๋ ํ์ ๋ง๋ญ๋๋ค. GKE๋ ์ ๋
ธ๋ ํ์ ๋
ธ๋์ cloud.google.com/gke-spot=true:NoSchedule
taint๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํฉ๋๋ค. ํด๋น ํจ๋ฌ๋ ์ด์
(toleration)์ด ์๋ ํฌ๋๋ง ์ด๋ฌํ ๋
ธ๋ ํ์ ๋
ธ๋์์ ์คํ๋ ์ ์์ต๋๋ค. GKE๊ฐ Spot VM์ ํฌ๋๋ฅผ ๋ฐฐ์นํ ์ ์๋๋ก ๋ฐฐํฌ์ ํด๋น ํจ๋ฌ๋ ์ด์
(toleration)์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
tolerations:
- key: cloud.google.com/gke-spot
operator: Equal
value: "true"
effect: NoSchedule
ํจ๋ฌ๋ ์ด์
(toleration)๊ณผ nodeSelector
๋๋ ๋
ธ๋ ์ดํผ๋ํฐ ๊ท์น์ ๋ชจ๋ ์ฌ์ฉํ์ฌ GKE๋ง Spot VM์์ ํฌ๋๋ฅผ ์์ฝํ๋๋ก ํ ์ ์์ต๋๋ค.
ํจ๋ฌ๋ ์ด์
(toleration)๋ง ์ฌ์ฉํ์ฌ ์ํฌ๋ก๋๋ฅผ ์์ฝํ๋ฉด GKE๋ Spot VM ๋๋ ์ฉ๋์ด ์๋ ๊ธฐ์กด Standard VM์ ํฌ๋๋ฅผ ์์ฝํ ์ ์์ต๋๋ค. ์คํ VM์ ์ํฌ๋ก๋๋ฅผ ์์ฝํด์ผ ํ๋ ๊ฒฝ์ฐ ํจ๋ฌ๋ ์ด์
(toleration) ์ธ์๋ nodeSelector
๋๋ ๋
ธ๋ ์ดํผ๋ํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์คํ VM์์ ์ํฌ๋ก๋ ์์ฝ์ ์ฐธ์กฐํ์ธ์.
Spot VM ๋ฐ ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ
ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ๋ ํ์์ ๋ฐ๋ผ ๋ ธ๋ ํ์ ๋ ธ๋๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ๊ณ ์ญ์ ํฉ๋๋ค. ์คํ VM์ ์ฐ์ ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋๋ก ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์คํ VM ๋ฐ ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๊ธฐ๋ณธ ์ ์ฑ
GKE ๋ฒ์ 1.24.1-gke.800๋ถํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ ์์น ์ ์ฑ
์ ์ ์ํ ์ ์์ต๋๋ค. ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๊ณ ๊ธฐ๋ณธ ์์น ์ ์ฑ
์ด ANY
๋ก ์ค์ ๋๋ฉด ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ๊ฐ ์คํ VM ๋
ธ๋ ํ์ ํ๋ก๋น์ ๋ํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ด ์ ์ฑ
์์ Spot VM์ ์ ์ ๋ ์ํ์ด ๋ฎ์ต๋๋ค. ๋ค๋ฅธ VM ์ ํ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํด๋ฌ์คํฐ ์๋ ํ์ฅ ์ฒ๋ฆฌ ๋ฐฐํฌ ์ ์ฑ
์ BALANCED
์
๋๋ค.
์คํ VM์ ์ฌ์ฉํ์ฌ Standard ๋ ธ๋ ํ ์ ๊ทธ๋ ์ด๋
์คํ VM์ ์ฌ์ฉํ๋ Standard ํด๋ฌ์คํฐ ๋ ธ๋ ํ์ด ์ผ์ ๊ธ์ฆ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ GKE๋ ์คํ VM์ผ๋ก ์ผ์ ๊ธ์ฆ ๋ ธ๋๋ฅผ ๋ง๋ญ๋๋ค. ํ์ง๋ง GKE๋ ์คํ VM์์ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ์ง ์์ผ๋ฏ๋ก ๊ธฐ์กด ๋ ธ๋๋ฅผ ์ฐจ๋จํ๊ณ ๋๋ ์ด๋ํ๊ธฐ ์ ์ ์คํ VM์ด ์ค๋น๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ผ์ ๊ธ์ฆ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
Kubernetes ๋์ ์์
GKE์์ Spot VM์ ์ฌ์ฉํ๋ฉด Kubernetes๊ฐ ์ ๊ณตํ๋ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ๋ณด์ฆ ๋ฐ ์ ์ฝ์กฐ๊ฑด์ด ์์ ๋ฉ๋๋ค.
- Spot VM ํ์๋ ๋น์๋ฐ์ ์ด๋ฉฐ
PodDisruptionBudgets
์ด ์ ์ฉ๋์ง ์์ต๋๋ค. ๊ตฌ์ฑ๋PodDisruptionBudget
๋ณด๋ค ๋ ๋์ ๋น๊ฐ์ฉ์ฑ์ ๊ฒฝํํ ์ ์์ต๋๋ค.
Spot VM ๊ถ์ฅ์ฌํญ
Spot VM์ ์ฌ์ฉํ๋ ์์คํ ์ ์ค๊ณํ ๋ ๋ค์ ๊ฐ์ด๋๋ผ์ธ์ ์ฌ์ฉํ๋ฉด ์ฌ๊ฐํ ์ค๋จ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- Spot VM์๋ ๊ฐ์ฉ์ฑ์ด ๋ณด์ฅ๋์ง ์์ต๋๋ค. GKE๋ Spot VM์ ์ผ๋ถ ๋๋ ์ ๋ถ๋ฅผ ์ธ์ ๋ ์ง ํ์ํ ์ ์๋ค๋ ๊ฐ์ ํ์ ์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ์์ ์ ๋ณด์ฅํ์ง ์๊ณ ์์คํ ์ ์ค๊ณํฉ๋๋ค.
- ์ฌ์ฉ ๊ฐ๋ฅํ Spot VM์ด ์์ด๋ ์ํฌ๋ก๋ ๋ฐ ์์ ์ด ์ฒ๋ฆฌ๋๋๋ก ํ๋ ค๋ฉด ํด๋ฌ์คํฐ์ Spot VM์ ์ฌ์ฉํ๋ ๋ ธ๋ํ๊ณผ ํ์ค Compute Engine VM์ ์ฌ์ฉํ๋ ๋ ธ๋ ํ์ด ํผํฉ๋์ด ์์ด์ผ ํฉ๋๋ค.
- Spot VM์ ์ฌ์ฉํ๋ GPU ๋ ธ๋ ํ์ ์ถ๊ฐํ๊ธฐ ์ ์ ํด๋ฌ์คํฐ์ ํ์ค VM์ ์ฌ์ฉํ๋ GPU๊ฐ ์๋ ๋ ธ๋ ํ์ด ํ๋ ์ด์ ์๋์ง ํ์ธํฉ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ๋ ธ๋ ์ฌ์์ฑ ์ ๋ ธ๋ ์ด๋ฆ์ ๋ณ๊ฒฝ๋์ง ์์ง๋ง Spot VM์์ ์ฌ์ฉํ๋ ๋ด๋ถ ๋ฐ ์ธ๋ถ IP ์ฃผ์๋ ์ฌ์์ฑ ํ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
- ๋ ธ๋ taint ๋ฐ ํจ๋ฌ๋ ์ด์ (toleration)์ ์ฌ์ฉํ์ฌ ์ค์ํ ํฌ๋๊ฐ Spot VM์ ์ฌ์ฉํ๋ ๋ ธ๋ ํ์ ์์ฝ๋์ง ์์๋์ง ํ์ธํฉ๋๋ค.
- ์คํ VM์์ ์คํ ์ดํธํ(Stateful) ์ํฌ๋ก๋๋ฅผ ์คํํ๋ ค๋ฉด ์ข ๋ฃ ํ 25์ด ์ด๋ด์ ์ํฌ๋ก๋๊ฐ ์ ์์ ์ผ๋ก ์ข ๋ฃ๋๋์ง ํ ์คํธํ์ฌ ์๊ตฌ ๋ณผ๋ฅจ ๋ฐ์ดํฐ ์์ ์ํ์ ์ต์ํํฉ๋๋ค.
- Kubernetes ํฌ๋ ์ข ๋ฃ ๊ถ์ฅ์ฌํญ์ ๋ฐ๋ฆ ๋๋ค.
๋ค์ ๋จ๊ณ
- ๋ ธ๋ ํ์์ Spot VM์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- ํด๋ฌ์คํฐ ์๋ ํ์ฅ์ ๋ํด ์์๋ณด๊ธฐ
- ๋ฐฐํฌ๋ ์ฑ์ ํ์ฅํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- Compute Engine ๋ฌธ์์์ Spot VM์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ
- GKE์์ Spot VM์ ์ฌ์ฉํ์ฌ ์ผ๊ด ์ํฌ๋ก๋ ๋ฐฐํฌ์ ๋ํ ํํ ๋ฆฌ์ผ ๋๋ฌ๋ณด๊ธฐ