Search

Pod Anti-Affinity์™€ Topology Spread Constraints

๋‘˜์˜ ์—ญํ•  ๋น„๊ต

๊ธฐ๋Šฅ
๋ชฉ์ 
์‚ฌ์šฉ ์˜ˆ
์ œ์–ด ๋ฐฉ์‹
Pod Anti-Affinity
ํŠน์ • ํŒŒ๋“œ์™€ ๊ฐ™์€ ๋…ธ๋“œ์— ๋ฐฐ์น˜๋˜์ง€ ์•Š๋„๋ก ์ œํ•œ
๊ฐ™์€ ์•ฑ์˜ ํŒŒ๋“œ๋ฅผ ๋…ธ๋“œ์— 1๊ฐœ์”ฉ๋งŒ ๋ฐฐ์น˜
์ œํ•œ์  (์ œํ•œ ์œ„์ฃผ)
Topology Spread Constraints
ํŒŒ๋“œ๋“ค์„ ์ง€์ •๋œ ๋ฒ”์œ„(๋…ธ๋“œ, ์กด ๋“ฑ)์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„์‚ฐ
ํŒŒ๋“œ๋“ค์„ ๊ฐ€๋Šฅํ•œ ํ•œ ๋ชจ๋“  ๋…ธ๋“œ/์กด์— ํผ๋œจ๋ฆฌ๊ธฐ
๋ถ„์‚ฐ ์ค‘์‹ฌ (์ •์ฑ… ๊ธฐ๋ฐ˜)

์™œ ํ•จ๊ป˜ ์“ฐ๋Š”๊ฐ€?

์˜ˆ์‹œ: ๊ณ ๊ฐ€์šฉ์„ฑ์ด ์ค‘์š”ํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

๋ชฉํ‘œ:
โ€ข
๋™์ผํ•œ ์•ฑ์˜ ํŒŒ๋“œ๊ฐ€ ํ•œ ๋…ธ๋“œ/์กด์— ๋ชฐ๋ฆฌ์ง€ ์•Š๊ฒŒ
โ€ข
์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๋‹ค๋ฅธ ๋…ธ๋“œ/์กด์—์„œ ์„œ๋น„์Šค ์œ ์ง€ ๊ฐ€๋Šฅ

์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app: myapp topologyKey: "kubernetes.io/hostname" # ๋…ธ๋“œ ๋‹จ์œ„ ๋ถ„์‚ฐ topologySpreadConstraints: - maxSkew: 1 topologyKey: "topology.kubernetes.io/zone" whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: app: myapp
YAML
๋ณต์‚ฌ

๊ฒฐ๊ณผ

โ€ข
Pod Anti-Affinity: ๋™์ผ ๋…ธ๋“œ์—๋Š” ๊ฐ™์€ ์•ฑ ํŒŒ๋“œ๋ฅผ ๋‘์ง€ ์•Š์Œ โ†’ ๋…ธ๋“œ ๋‹จ์œ„ ๊ฒฉ๋ฆฌ
โ€ข
Topology Spread: ์ „์ฒด ๊ฐ€์šฉ ์˜์—ญ(zone) ๊ฐ„์— ํŒŒ๋“œ๋ฅผ ๊ณ ๋ฅด๊ฒŒ ๋ถ„์‚ฐ โ†’ ์žฅ์•  ๋„๋ฉ”์ธ ๊ฐ„ ๊ฒฉ๋ฆฌ

์ฃผ์˜ํ•  ์ 

โ€ข
๋‘˜ ๋‹ค ๋„ˆ๋ฌด ๊ฐ•ํ•˜๊ฒŒ ์„ค์ •ํ•˜๋ฉด โ†’ ํŒŒ๋“œ๊ฐ€ Pending ์ƒํƒœ์— ๋น ์งˆ ์ˆ˜ ์žˆ์Œ
(ํŠนํžˆ ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ๋…ธ๋“œ ์ˆ˜๊ฐ€ ์ ์€ ๊ฒฝ์šฐ)
โ€ข
๊ทธ๋Ÿด ๋• preferred / ScheduleAnyway๋กœ ์™„ํ™” ํ•„์š”

์‹ค์ „ ์ ์šฉ ์‹œ ๊ถŒ์žฅ ์ „๋žต

์ „๋žต
์„ค์ •
๋…ธ๋“œ ๊ฐ„ ๋ถ„์‚ฐ
Pod Anti-Affinity + topologyKey: kubernetes.io/hostname
Zone ๊ฐ„ ๋ถ„์‚ฐ
TopologySpreadConstraints + topologyKey: topology.kubernetes.io/zone
์™„ํ™”๋œ ์กฐ๊ฑด
TopologySpreadConstraints with ScheduleAnyway, AntiAffinity with preferred

๊ฒฐ๋ก 

Pod Anti-Affinity๋Š” ๊ฐ•์ œ์ ์ธ ๋…ธ๋“œ ๋ถ„์‚ฐ
Topology Spread Constraints๋Š” ์ •์ฑ… ๊ธฐ๋ฐ˜์˜ ๋ฒ”์šฉ ๋ถ„์‚ฐ
๋‘˜์€ ๊ฐ™์€ ๋ชฉ์ (๋ถ„์‚ฐ ๋ฐฐ์น˜)์„ ์ถ”๊ตฌํ•˜์ง€๋งŒ, ์—ญํ• ๊ณผ ์ œ์–ด ๋ฐฉ์‹์ด ๋‹ฌ๋ผ ๋ณด์™„์ ์œผ๋กœ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
ํŠนํžˆ ๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค, StatefulSet, ReplicaSet ๋“ฑ์—์„œ ๋งŽ์ด ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.