https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/
์ค์ผ์ค๋ง์ด๋?
์ฟ ๋ฒ๋คํฐ์ค์์ ์ค์ผ์ค๋ง์ด๋ kubelet์ผ๋ก ์คํํ ์ ์๋๋ก ํฌ๋๋ฅผ ๋ ธ๋์ ํ ๋นํ๋ ๊ฒ์ ๋งํ๋ค. ์ค์ผ์ค๋ฌ๋ ๋ ธ๋์ ํ ๋น๋์ง ์์ ์๋ก ๋ง๋ค์ด์ง pod๋ฅผ ๊ฐ์ํ๋ค. ๋ฐ๊ฒฌํ ๋ชจ๋ ํฌ๋์ ๋ํด ์ค์ผ์ค๋ฌ๋ ํฌ๋๋ฅผ ์คํํ ์ ์๋ ์ต์์ ๋ ธ๋๋ฅผ ์ฐพ๋๋ค. ์ค์ผ์ค๋ฌ๋ ์ค์ผ์ค๋ง ์๋ฆฌ๋ฅผ ๊ณ ๋ คํ์ฌ ๋ฐฐ์น๋ฅผ ๊ฒฐ์ ํ๋ค.
Kube-scheduler
kube-scheduler๋ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ธฐ๋ณธ ์ค์ผ์ค๋ฌ์ด๊ณ ์ปจํธ๋กค ํ๋ ์ธ์ ์ผ๋ถ๋ก ์คํ๋๋ค kube-scheduler๋ ์ํ๊ฑฐ๋ ํ์ํ ๊ฒฝ์ฐ ์ง์ ์ค์ผ์ค๋ง ๊ตฌ์ฑ ์์๋ฅผ ์์ฑํ๊ณ ๋์ ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋์๋ค.
kube-scheduler๋ ์๋ก ์์ฑ๋๊ฑฐ๋ ์์ง ์ค์ผ์ค๋ง๋์ง ์์ ํฌ๋๋ฅผ ์คํํ๊ธฐ ์ํ ์ต์ ์ ๋ ธ๋๋ฅผ ์ ํํ๋ค. ํ๋ ์ ์ปจํ ์ด๋๋ ๋ค๋ฅธ ์๊ตฌ์ฌํญ๋ค์ ๊ฐ์ง ์ ์๊ธฐ ๋๋ฌธ์ ์ค์ผ์ค๋ฌ๋ ํฌ๋์ ๊ตฌ์ฒด์ ์ธ ์ค์ผ์ค๋ง ์๊ตฌ์ฌํญ์ ๋ง์กฑํ์ง ์๋ ๋ ธ๋๋ฅผ ๊ฑธ๋ฌ๋ธ๋ค. ๋ํ, API๋ ํ๋๊ฐ ์์ฑ๋ ๋ ๊ทธ์ ๋ํ ๋ ธ๋๋ฅผ ๋ช ์ํ๋๋ก ํ ์ ์์ง๋ง ๋๊ฒ๋ ํน์ดํ ๊ฒฝ์ฐ์ด๋ค.
ํด๋ฌ์คํฐ์์ ํฌ๋์ ๋ํ ์ค์ผ์ค๋ง ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๋ ๋ ธ๋๋ค์ ์ด์ฉ๊ฐ๋ฅํ ๋ ธ๋๋ผ๊ณ ํ๋ค. ์ ํฉํ ๋ ธ๋๊ฐ ์๋ค๋ฉด ํฌ๋๋ ์ค์ผ์ค๋ฌ๊ฐ ๊ฐ๋ฅํ ์์น๋ฅผ ์ฐพ์ ๋๊น์ง ์ค์ผ์ค๋งํ์ง ์๋๋ค.
์ค์ผ์ค๋ง ๊ฒฐ์ ์ ์ํด ๊ณ ๋ คํด์ผ ํ๋ ์์์๋ ๊ฐ๋ณ ๋ฐ ์ง๋จ ๋ฆฌ์์ค ์๊ตฌ์ฌํญ, ํ๋์จ์ด/์ํํธ์จ์ด/์ ์ฑ ์ ์ฝ, affinity์ anit-affinity ์ฌ์, ๋ฐ์ดํฐ ์ง์ญ์ฑ ๋ฑ์ด ํฌํจ๋๋ค.
kube-scheduler๋ 2๋จ๊ณ๋ฅผ ๊ฑธ์ณ ํฌ๋์ ๋ํ ๋ ธ๋๋ฅผ ์ ํํ๋ค.
- Filtering
filtering
๋จ๊ณ๋ ํฌ๋๋ฅผ ์ค์ผ์ค๋งํ๊ธฐ ์ํด ์ด์ฉ ๊ฐ๋ฅํ ๋ ธ๋์ ์งํฉ์ ์ฐพ๋๋ค. ์ด ๋จ๊ณ ์ดํ์ ๋ ธ๋ ๋ชฉ๋ก์ ์ ํฉํ ๋ ธ๋๊ฐ ํฌํจ๋๋ฉฐ ๋ ๊ฐ ์ด์์ ๋ ธ๋๊ฐ ํฌํจ๋ ์๋ ์๋ค. ๋ชฉ๋ก์ด ๋น์ด์์ผ๋ฉด ํด๋น ํฌ๋๋ ์์ง ์ค์ผ์ค๋งํ ์ ์๋ค. - Scoring
scoring
๋จ๊ณ์์ ์ค์ผ์ค๋ฌ๋ ๊ฐ์ฅ ์ ํฉํ ํ๋ ์์น๋ฅผ ์ ํํ๊ธฐ ์ํด ๋๋จธ์ง ๋ ธ๋๋ค์ ์์๋ฅผ ๋งค๊ธด๋ค. ์ค์ผ์ค๋ฌ๋ scoring ๊ท์น์ ๊ธฐ๋ฐ์ผ๋ก ํํฐ๋ง์์ ์ด์๋จ์ ๋ ธ๋์ ์ ์๋ฅผ ํ ๋นํ๋ค.
Assigning Pods to Nodes
ํน์ ๋ ธ๋์์ ์คํ๋๋๋ก ์ ํํ๊ฑฐ๋ ์ ํธํ๋๋ก ํฌ๋๋ฅผ ์ ํํ ์ ์๋ค. ์ด๋ฌํ ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ ํ์๊ฐ ์์ผ๋ฉฐ, ์ค์ผ์ค๋ฌ๋ ์๋์ ์ผ๋ก ํฉ๋ฆฌ์ ์ธ ๋ฐฐ์น๋ฅผ ์ํํ๋ค. ๊ทธ๋ฌ๋ ํฌ๋๊ฐ SSD๊ฐ ์ฐ๊ฒฐ๋ ๋ ธ๋์ ๋ฐฐํฌ๋๋์ง ํ์ธํ๊ฑฐ๋ ๋ง์ ํต์ ์ ์ํํ๋ ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ์๋น์ค์์ ํฌ๋๋ฅผ ๋์ผํ ๊ฐ์ฉ์ฑ ์์ญ์ผ๋ก ๊ณต๋ ์์น ์ง์ ํ๋ ๋ฑ ๋ช ๊ฐ์ง ์ํฉ์ด ๋ฐ์ํ ์ ์๋ค.
์๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํด ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ํน์ ํฌ๋๋ฅผ ์ค์ผ์ค๋งํ ์์น๋ฅผ ์ ํํ ์ ์๋ค.
- node label์ ๋ํ
nodeSelector
ํ๋ affinity
์anti-affinity
nodeName
ํ๋- Pod topology spread constraints
์ฒ์์ ์ ๋ฆฌํ๋ ๋ด์ฉ ์์ ์ ์ฅ ์ ๋ผ์ ๋ค ๋ ์๊ฐ์ ์ ๋ฆฌ ์ ํ๋ ค๋ค๊ฐ ๊ณต๋ถํ๋ ๊ฑฐ๋๊น๋ผ๋ ๋ง์ธ๋๋ก ๋ค์ ์ด์ฌํ ์ ๋ฆฌํ๋ค.๐
๋ค์์๋ ๋
ธ๋ ํ ๋น ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ๊ฒ ๋ค.
'Infra > Kubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[k8s] Pod๋? (0) | 2024.11.25 |
---|---|
[k8s] Kubernetes ๊ตฌ์ฑ ์์ (0) | 2024.11.24 |
[k8s] Kubernetes๋? (1) | 2024.11.16 |
[k8s] Kubernetes ๋ก๊ทธ - PLG ๊ฐ์ (0) | 2024.11.04 |
[k8s] Kubernetes ๋ก๊ทธ - PLG ๊ตฌ์ถ (0) | 2024.11.04 |