Kubelet Garbage Collection
kubelet ์์๋ ํน์ ์๊ณ์น์ ๋๋ฌํ๋ฉด garbage image๋ค์ ์ง์ฐ๋ ์ ์ฑ
์ด ์๋ค.
์ด๊ฒ์ garbage collection ์ด๋ผ๊ณ ํ๋๋ฐ default๋ disk usage๊ฐ 85% ์ด์์ด ๋๋ฉด ์๋ํ๋ค.
disk usage๊ฐ 85% ์ด์์ด ๋๋ฉด ์ผ๋จ ์ฌ์ฉํ์ง ์๋ image๋ถํฐ ์ ๊ฑฐํ์ฌ disk๋ฅผ ํ๋ณดํ๊ณ ๊ทธ๋ผ์๋ ํ๋ณด๋์ง์์ผ๋ฉด evcition์ ์์ํ๋ค.
์ด๋ eviction์ soft ๋ฐฉ์๊ณผ hard ๋ฐฉ์์ผ๋ก ๊ตฌ๋ถ๋๋๋ฐ
soft ๋ฐฉ์์ ๊ด๋ฆฌ์๊ฐ ๋ณ๋์ ์ ์์๊ฐ์ ์ค์ ํด์ค ๊ฒฝ์ฐ kubelet์ด ํด๋น ์ ์ ์๊ฐ์ด
์ด๊ณผ๋ ๋ ๊น์ง ํ๋๋ฅผ ์ถ๋ฐฉํ์ง ์๋ ๋ฐฉ์
hard ๋ฐฉ์์ ๋ณ๋์ ์ ์ ์๊ฐ ์์ด ์ฆ์ ํ๋๋ฅผ ์ถ๋ฐฉ ์ํค๋ ๋ฐฉ์์ด๋ค.
nodefs
๋
ธ๋์ ์ฃผ ํ์ผ ์์คํ
์ ๊ฐ๋ฆฌํจ๋ค. ์ผ๋ฐ์ ์ผ๋ก (/) ํด๋น.
์์คํ
๋ก๊ทธ, kubelet ๋ฐ ์ปจํ
์ด๋ ๋ฐํ์ ๊ด๋ จ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ ๋จ.
imagefs
์ปจํ
์ด๋ ์ด๋ฏธ์ง์ ๊ณ์ธต์ ์คํ ๋ฆฌ์ง๋ฅผ ์ ์ฅํ๋ ํ์ผ ์์คํ
์ ๊ฐ๋ฅดํจ๋ค.
imagefs ๊ณต๊ฐ ๋ถ์กฑ์ ์๋ก์ด ์ปจํ
์ด๋ ์ด๋ฏธ์ง Pull ํ๊ฑฐ๋ ์์ฑํ๋๋ฐ ๋ฌธ์ ๋ฅผ
์ผ๊ธฐ ํ ์ ์์.
์์ ๋ฐฉ์
1. ๊ฐ ๋
ธ๋์ /etc/kubernetes/kubelet-config.yaml ๋๋ kubelet.env ์์ ํ restart
2. configmap์ผ๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ # 1.24 ๋ถํฐ๋ ์ง์ํ์ง ์์
# kubelet.env
KUBELET_ARGS="
(other flag)
--eviction-soft=nodefs.available< 10%,imagefs.available<10% \
--eviction-soft-grace-period=nodefs.available=2m, imagefs.available=2m \
--eviction-hard=nodefs.available< 5%,imagefs.available<5%"
# --eviction-minimum-reclaim -> ์ต์ recalim ํฌ๊ธฐ๋ฅผ ์ ํ๋ ์ค์
# --eviction-pressure-transition-period=5m" -> ์งง์ ์๊ฐ ๋์ ๋ฐ๋ณต์ ์ผ๋ก eviction ์ํ ๋ฐฉ์ง
# kubelet-config.yaml
evictionSoft:
nodefs.available: "10%"
imagefs.available: "10%"
evctionSfotGracePeriod:
nodefs.available: "2m"
imagefs.available: "2m"
evictionHard:
nodefs.available: "5%"
imagefs.available: "5%"
# evictionMinimumReclaim:
# nodefs.available: "15%"
# imagefs.available: "15%"
# evictionPressureTransitionPeriod: "5m"