728x90
๐ Taint & Toleration
- ์ฝ๊ฒ ๋งํด ๋ ธ๋์ ํ๋ ๊ฐ์ ์ํธ์์ฉ์ ์ ์ดํ๋ ๊ธฐ๋ฅ์ด๋ค.
- Taint์ Toleration์ ํจ๊ป ์ฌ์ฉํ๋ฉด ํน์ ๋
ธ๋์๋ง ํน์ ์ ํ์ ํ๋๋ฅผ ์ค์ผ์ค๋งํ๋๋ก ์ ํํ ์ ์๋ค.
- ์ด๋ฅผ ํตํด ํน์ ํ ์ญํ ์ ๊ฐ์ง ๋ ธ๋์๋ง ํน์ ํ ์ ํ์ ํ๋๋ฅผ ํ ๋นํ๊ฑฐ๋, ๋ ธ๋๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ํ๋๊ฐ ์ค์ผ์ค๋ง๋์ง ์๋๋ก ํ ์ ์๋ค.
๐ Taint
- ๋ ธ๋์ ํน์ ํ ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ๋ค.
- ์ฃผ๋ก ๋
ธ๋์ ํน์ ํ ์ํฉ์ด๋ ์ ์ฝ ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ํน์ ๋ ธ๋์๋ ํน์ ํ ์ ํ์ ํ๋๋ง ์ค์ผ์ค๋งํ๊ณ ์ถ๋ค๋ฉด ํด๋น ๋ ธ๋์ Taint๋ฅผ ์ค์ ํ์ฌ ๋ค๋ฅธ ์ ํ์ ํ๋๊ฐ ํด๋น ๋ ธ๋์ ์ค์ผ์ค๋ง๋์ง ์๋๋ก ํ ์ ์๋ค.
Kubectl taint nodes <nodeName> key=value:<taintEffect>
๐ก taint-effect
NoSchedule
- Taint๊ฐ ์ค์ ๋ ๋ ธ๋์ ํด๋น toleration์ด ์๋ ํ๋๋ฅผ ์ค์ผ์ค๋งํ ์ ์๋๋ก ๋ง๋ ์ต์ ์ด๋ค.
- ๋ง์ฝ ๋ ธ๋์ NoSchedule Taint๊ฐ ์ค์ ๋์ด ์๋ค๋ฉด ํด๋น ๋ ธ๋์๋ ํ๋๊ฐ ์๋์ผ๋ก ์ค์ผ์ค๋ง๋์ง ์๋๋ค.
PreferNoSchedule
- Taint๊ฐ ์ค์ ๋ ๋
ธ๋์ ํ๋๋ฅผ ์ค์ผ์ค๋งํ๊ธด ํ์ง๋ง ๋ค๋ฅธ ๋
ธ๋(Taint๊ฐ ์ค์ ๋์ง ์์)๋ฅผ ์ฐ์ ์ ์ผ๋ก ๊ณ ๋ คํ๋ ์ต์
์ด๋ค.
- ์ฆ, ํ๋๋ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ ธ๋์ ์ค์ผ์ค๋ง๋์ง๋ง, ํด๋น ๋ ธ๋์๋ง ์ค์ผ์ค๋ง์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ ๊ทธ๋๋ก ์ค์ผ์ค๋ง๋๋ค.
- ํน์ ๋ ธ๋๋ฅผ ํผํ๊ณ ์ ํ์ง๋ง, ์ด์ฉ ์ ์์ ๋์๋ ํด๋น ๋ ธ๋์ ์ค์ผ์ค๋ง๋๋ ๊ฒ์ ํ์ฉํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
NoExecute
- Taint๊ฐ ์ค์ ๋ ๋ ธ๋์ ์ด๋ฏธ ์ค์ผ์ค๋ง๋์ด ์๋ ํ๋๋ค์๊ฒ ์ํฅ์ ์ฃผ๋ ์ต์ ์ด๋ค.
- NoExecute Taint๊ฐ ์ค์ ๋ ๋
ธ๋์ ํ๋๊ฐ ์ด๋ฏธ ์ค์ผ์ค๋ง๋์ด ์๋ ๊ฒฝ์ฐ, ํด๋น ๋
ธ๋์์ Taint๋ฅผ ํ์ฉํ์ง ์๋ ํ๋๋ค์ ๋ค๋ฅธ ๋
ธ๋๋ก ์ด๋ํ๊ฒ ๋ฉ๋๋ค.
- ์ด๋ ๋ ธ๋์ ์ํ๊ฐ ๋ณ๊ฒฝ๋์ด ํ๋๋ฅผ ์์ ํ๊ฒ ์ด๋์ํค๊ณ ์ ํ ๋ ์ ์ฉํฉ๋๋ค.
๐งน taint ์ ๊ฑฐ
kubectl taint nodes controlplane node-role.kubernetes.io/control-plane:NoSchedule-
์ ๋ช ๋ น์ด์ ๊ฐ์ด '-'๋ฅผ ๋ถ์ด๋ ๊ฒ์ผ๋ก taint๋ฅผ ์ ๊ฑฐํ ์ ์๋ค.
๐ Toleration
- ํ๋๊ฐ ํน์ ํ Taint๋ฅผ ํ์ฉํ๋๋ก ์ง์ ํ๋ ๊ฒ์ด๋ค.
- Toleration์ ์ค์ ํ ํ๋๋ ํด๋น Taint๊ฐ ์ค์ ๋ ๋ ธ๋์ ์ค์ผ์ค๋ง๋ ์ ์๊ฒ ๋๋ค.
- ํ๋์ ์คํ์ tolerations ํ๋๋ฅผ ์ถ๊ฐํ์ฌ ์ค์ ํ ์ ์๋ค.
์์
- key: ๋ง ๊ทธ๋๋ก key์ด๋ค.
- value: ๋ง๊ทธ๋๋ก value์ด๋ค.
- effect: ์์ taint-effect๋ฅผ ๋งํ๋ค.
operator
- "Equal" ์ฐ์ฐ์ (=): Tolerations์ ํค-๊ฐ ์๊ณผ ๋ ธ๋์ Taint์ ํค-๊ฐ ์์ด ์ ํํ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ํ๋๋ฅผ ํด๋น ๋ ธ๋์ ์ค์ผ์ค๋งํ๋ค.
- "Exists" ์ฐ์ฐ์ (Exists): Tolerations์ ํค-๊ฐ ์๊ณผ ๋ ธ๋์ Taint์ ํค๊ฐ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ํ๋๋ฅผ ํด๋น ๋ ธ๋์ ์ค์ผ์ค๋งํฉ๋๋ค. ๊ฐ์ ์ผ์นํ์ง ์์๋ ๋๋ค.
- "DoesNotExist" ์ฐ์ฐ์ (DoesNotExist): Tolerations์ ํค๊ฐ ๋ ธ๋์ ์ด๋ค Taint์๋ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ์๋ง ํ๋๋ฅผ ํด๋น ๋ ธ๋์ ์ค์ผ์ค๋งํ๋ค.
๐ Node Selector & Node Affinity
- ํ๋๊ฐ ํน์ ๋ ธ๋์ ์ค์ผ์ค๋งํ ์ ์๋๋ก ๋ ธ๋ ์ ํ์ ์ ํ์ ๋๋ ๊ธฐ๋ฅ์ด๋ค.
๐ Node Selector
- ํ๋๊ฐ ์ด๋ค ๋ ธ๋์ ์ค์ผ์ค๋ง๋ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
- ๋ ธ๋์ ๋ ์ด๋ธ(Label)๊ณผ ์ผ์นํ๋ ์กฐ๊ฑด์ ์ง์ ํ์ฌ ํน์ ๋ ธ๋์ ํ๋๋ฅผ ์ค์ผ์ค๋งํ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด, "env=production"์ด๋ผ๋ ๋ ์ด๋ธ์ด ์๋ ๋ ธ๋์๋ง ํ๋๋ฅผ ํ ๋นํ๊ณ ์ ํ ๋ ํด๋น ๋ ธ๋์ ๋ ์ด๋ธ์ ํ๋์ spec.nodeSelector์ ํ์์ ์ ๋ ฅํ์ฌ ์ฌ์ฉํ๋ค.
๐ก ๋ ธ๋์ Label์ ์ ์ฉํ๊ธฐ
kubectl label nodes <node-name> <label-key>=<label-value>
๐ Node Affinity
- ํ๋๊ฐ ํน์ ๋ ธ๋์ ์ค์ผ์ค๋ง๋๋๋ก ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- Node Selector๋ณด๋ค ๋ ์ ์ฐํ ์ค์ผ์ค๋ง ์ ์ด๊ฐ ๊ฐ๋ฅํ์ฌ ๋ณต์กํ ์๊ตฌ์ฌํญ์ ๋์ํ ์ ์๋ค.
operator
"In" ์ฐ์ฐ์
- key์ ์ผ์นํ๋ ๋ ธ๋ ๋ ์ด๋ธ์ ๊ฐ์ด ๋ฆฌ์คํธ์ ํฌํจ๋๋ ๊ฒฝ์ฐ์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ค.
- ์๋ฅผ ๋ค์ด size: ["small", "medium"]๋ผ๋ ๋ ์ด๋ธ์ด ์๋ ๋ ธ๋์ ํ๋๋ฅผ ์ค์ผ์ค๋งํ๊ณ ์ ํ ๋ operator: In์ ์ฌ์ฉํ๋ฉด size์ ๊ฐ์ด "small" ๋๋ "medium"์ธ ๋ ธ๋์๋ง ํ๋๋ฅผ ํ ๋นํ ์ ์๋ค.
"NotIn" ์ฐ์ฐ์
- key์ ์ผ์นํ๋ ๋ ธ๋ ๋ ์ด๋ธ์ ๊ฐ์ด ๋ฆฌ์คํธ์ ํฌํจ๋์ง ์๋ ๊ฒฝ์ฐ์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ค.
- ์๋ฅผ ๋ค์ด size: ["large", "x-large"]๋ผ๋ ๋ ์ด๋ธ์ด ์๋ ๋ ธ๋์ ํ๋๋ฅผ ์ค์ผ์ค๋งํ๊ณ ์ ํ ๋ operator: NotIn์ ์ฌ์ฉํ๋ฉด size ํค์ ๊ฐ์ด "medium"์ด๋ "small" ๋ฑ "large" ๋๋ "x-large"์ด ์๋ ๋ ์ด๋ธ์ ๊ฐ์ง ๋ ธ๋์๋ง ํ๋๋ฅผ ํ ๋นํ ์ ์๋ค.
"Exists" ์ฐ์ฐ์
- key์ ์ผ์นํ๋ ๋ ธ๋ ๋ ์ด๋ธ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ค.
- ์๋ฅผ ๋ค์ด, size๋ผ๋ ๋ ์ด๋ธ์ด ์๋ ๋ ธ๋์ ํ๋๋ฅผ ์ค์ผ์ค๋งํ๊ณ ์ ํ ๋ operator: Exists๋ฅผ ์ฌ์ฉํ๋ฉด size ๋ ์ด๋ธ์ด ์กด์ฌํ๋ ๋ ธ๋์๋ง ํ๋๋ฅผ ํ ๋นํ ์ ์๋ค.
"DoesNotExist" ์ฐ์ฐ์
- key์ ์ผ์นํ๋ ๋ ธ๋ ๋ ์ด๋ธ์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ค.
- ์๋ฅผ ๋ค์ด, size๋ผ๋ ๋ ์ด๋ธ์ด ์๋ ๋ ธ๋์ ํ๋๋ฅผ ์ค์ผ์ค๋งํ๊ณ ์ ํ ๋ operator: DoesNotExist๋ฅผ ์ฌ์ฉํ๋ฉด size๋ ์ด๋ธ์ด ์กด์ฌํ์ง ์๋ ๋ ธ๋์๋ง ํ๋๋ฅผ ํ ๋นํ ์ ์๋ค.
๐ก Node Affinity์ ์ธ ๊ฐ์ง ์ ํ
- ์๋์ ์ธ ์ ํ์ ํ์ฉํ์ฌ ํน์ ๋ ธ๋์ ํ๋๋ฅผ ํ ๋นํ๊ฑฐ๋ ํน์ ๋ ธ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ ํํ ์ ์๋ค.
requiredDuringSchedulingIgnoredDuringExecution
- ํ๋๊ฐ ์ค์ผ์ค๋ง๋ ๋ ๋ฐ๋์ ์ง์ ๋ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๋ ธ๋์ ํ ๋น๋์ด์ผ ํ๋ค.
- ์ค์ผ์ค๋ง ๋จ๊ณ์์๋ง Node Affinity๋ฅผ ๊ณ ๋ คํ๋ฉฐ ์ด๋ฏธ ์คํ ์ค์ธ ํ๋๋ ๋ฌด์ํ๋ค.
preferredDuringSchedulingIgnoredDuringExecution
- ํ๋๊ฐ ์ค์ผ์ค๋ง๋ ๋ ์ง์ ๋ ์กฐ๊ฑด์ ๊ฐ์ง ๋
ธ๋์ ๊ฐ๋ฅํ ํ ํ ๋น๋๋๋ก ํ๋ค.
- ํด๋น ์กฐ๊ฑด์ ์ถฉ์กฑํ์ง ์๋ ๋ค๋ฅธ ๋ ธ๋์ ํ ๋น๋ ์ ์๋ค.
- ์ค์ผ์ค๋ง ๋จ๊ณ์์๋ ์ ํธ๋๋ฅผ ๊ณ ๋ คํ์ฌ ์ค์ผ์ค๋ง ํ์ง๋ง ์ด๋ฏธ ์คํ ์ค์ธ ํ๋๋ ๋ฌด์ํ๋ค.
requiredDuringSchedulingRequiredDuringExecution
- ํ๋๊ฐ ์ค์ผ์ค๋ง๋ ๋ ์ง์ ๋ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๋ ธ๋์ ํ ๋น๋์ด์ผ ํ๋ค.
- ์คํ ์ค์ธ ํ๋๋ ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋
ธ๋์์ ๊ณ์ ์คํ๋์ด์ผ ํ๋ค.
- ๋ง์ฝ, ์คํ์ค์ธ ํ๋๊ฐ ํด๋น ์กฐ๊ฑด์ ์ถฉ์กฑํ์ง ๋ชปํ๋ฉด ๋ ธ๋์์ ํด์ถ๋นํ๋ค.
์ถ์ฒ
๋คผํผ
Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests
728x90
'[DevOps] > Kubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
kubernetes - DaemonSet, Static Pod (0) | 2023.12.04 |
---|---|
์ฟ ๋ฒ๋คํฐ์ค CKA ์์๋ฃ ํ ์ธ๋ฐ๊ณ ์ ์ํ๊ธฐ(Cyber Monday 50% ํ ์ธ) (2) | 2023.12.03 |
์ฟ ๋ฒ๋คํฐ์ค Labels & Selector ๊ฐ๋จ ์ ๋ฆฌ (0) | 2023.11.10 |
์ฟ ๋ฒ๋คํฐ์ค์ ์ค์ผ์ค๋ฌ ๊ฐ๋จ ์ ๋ฆฌ (0) | 2023.11.10 |
kubernetes - Label & Selector์ ์ญํ ์ฝ๊ฒ ์ดํดํ๊ธฐ (1) | 2023.10.26 |