์๋ ํ์ธ์ ๊ตฌ๋ ์๋, DevOps ์์๊ณผ ๊ธฐ์ ์ง์์ ์ ๋ฆฌํด์ ๊ณต์ ํด๋๋ฆฌ๋ DevOps ์ฌํ์ ์ํ ์์์ง์ ๋๋ค.
Kubernetes๋ ๋งค ๋ฆด๋ฆฌ์ฆ๋ง๋ค ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ฌํญ์ ํตํด ๋ฐ์ ํ๊ณ ์์ต๋๋ค.
์ต๊ทผ v1.32 ๋ฒ์ ์ ๋ค์ํ ์ ๋ฐ์ดํธ์ ํจ๊ป Memory Manager ๊ธฐ๋ฅ์ด GA(General Availability) ๋จ๊ณ๋ก ์ง์ ๋ ๊ฒ์ด ๊ฐ์ฅ ์ฃผ๋ชฉ๋ฐ๋ ๋ณํ ์ค ํ๋์ธ๋ฐ์.
์ด๋ฒ ๋ด์ค๋ ํฐ์์๋ ์ฟ ๋ฒ๋คํฐ์ค v1.32์ ์ฃผ์ ๋ด์ฉ๊ณผ Memory Manager์ ์๋ฏธ, ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก์ ์ํฅ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๐ Kubernetes v1.32 ๋ฒ์ ์ ๋ฐ์ดํธ์ ์ฃผ์ ๋ด์ฉ
Kubernetes v1.32๋ ์ปดํฌ๋ํธ ์ฑ๋ฅ ์ต์ ํ์ ๋ค์ํ ์ต์ ๋์ ์ด ํฌํจ๋ ๋ฆด๋ฆฌ์ฆ์ธ๋ฐ์. ์ฃผ์ ์ ๋ฐ์ดํธ๋ฅผ ์์ฝํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
- Memory Manager GA ๋จ๊ณ ์ง์
- ์ํฌ๋ก๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๋ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ์ฑ๋ฅ ๊ฐ์ ๋ฐ ์์ ์ฑ ์ ๊ณ
- CPU Manager ๊ธฐ๋ฅ ๊ฐํ
- ์ํฌ๋ก๋๊ฐ ์ฌ์ฉํ CPU๋ฅผ ๋์ฑ ์๊ฒฉํ ํ ๋นํ์ฌ ์ฑ๋ฅ ํฅ์์ ์ด๋์ด๋ด๋ 'strict-cpu-reservation' ์ต์ ๋์ ์์
- CSI(์ปจํ ์ด๋ ์คํ ๋ฆฌ์ง ์ธํฐํ์ด์ค) ๊ด๋ จ ๊ธฐ๋ฅ ๊ฐํ
- ์ฌ๋ฌ ๋ณผ๋ฅจ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ทธ๋ฃน์ ๋ณต์ฌ๋ณธ ์ ์ฅ์ด ๊ฐ๋ฅํ Volume Group Snapshot ๊ธฐ๋ฅ Beta ๋จ๊ณ ์ง์
- Kubernetes API Server ์ฑ๋ฅ ํฅ์
- ๊ธฐ์กด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ์ปธ๋ List ์์ฒญ์ Watch List ์์ฒญ์ผ๋ก ๋์ฒดํ๋ 'WatchListClient' ์ต์ ๋์ ์์
๐ ์ด๋ฒ ์ ๋ฐ์ดํธ๋ก GA ์ํ์ ์ง์ ํ Memory Manager ๊ธฐ๋ฅ์ด๋?
Memory Manager๋ ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ ์์์ ๋ ํจ์จ์ ์ผ๋ก ํ ๋นํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค.
Memory Manager์ ์ญํ ์ ์ดํดํ๋ ค๋ฉด, NUMA(Non-Uniform Memory Access)๋ผ๋ ๋์์ธ ๊ฐ๋ ์ ์์์ผ ํ๋๋ฐ์. ํ์ํ ๋ถ๋ถ๋ง ๋น ๋ฅด๊ฒ ํ์ด๋ณด๊ฒ ์ต๋๋ค.
NUMA๋ ๋ฉํฐํ๋ก์ธ์ ๊ตฌ์กฐ์ ์ฐ์ด๊ธฐ ์ํด ๋ฑ์ฅํ์ต๋๋ค. ๋ฉํฐํ๋ก์ธ์ ๊ตฌ์กฐ์์ ๋ฉ๋ชจ๋ฆฌ์ ์์น์ ๋ฐ๋ผ ํ๋ก์ธ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ์๋๊ฐ ๋ฌ๋ผ์ง๋๋ฐ์.
ํ๋ก์ธ์๊ฐ ์์ ์ ์ง์ญ(Local)์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๊ฒ ํ์ฌ ์ฑ๋ฅ์ ํฅ์ ์ํจ ๊ฒ์ด ๋ฐ๋ก NUMA ์ค๊ณ์ ๋๋ค.
ํ์ง๋ง ๋ฐ๋๋ก ํ๋ก์ธ์๊ฐ ๋ค๋ฅธ ์ง์ญ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋ ์๊ฐ์ด ๋ ๊ฑธ๋ฆฌ๊ฒ ๋์ฃ .
์ด๋ฐ ํน์ง์ ๊ณ ๋ คํด Pod๋ฅผ ๋ฐฐํฌํ ๋ ๊ฐ์ ์ง์ญ์ ์๋ CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ํ ๋นํด์ ์ฑ๋ฅ ํฅ์์ ๊พํ๋ ๊ฒ์ด ๋ฐ๋ก, CPU Manager์ Memory Manager์ ์ญํ ์ ๋๋ค.
๊ทธ๋์ Memory Manager์ ์ฌ์ฉํ๋ฉด...
- ์ค์๊ฐ ์ฒ๋ฆฌ๊ฐ ์๊ตฌ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ ๋ณด์ฅํ์ฌ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ง์์ด ๊ฐ๋ฅํ๊ณ ,
- ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐํ๋ฅผ ์ค์ด๊ณ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๋๋ฅผ ์ต์ ํํ์ฌ ์์ ํจ์จ์ฑ์ด ํฅ์๋๋ฉฐ,
- ์ํฌ๋ก๋๊ฐ ์์ธก ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ๋ณด์ฅํ์ฌ ์ปจํ ์ด๋ํ๋ ์ํฌ๋ก๋์ ์์ ์ฑ์ ๊ฐํํ ์ ์์ต๋๋ค.
Memory Manager๋ ์ด์ ์ ์ํ์ ๋ฒ ํ ๋จ๊ณ์์ ์ ๊ณต๋์๋ค๊ฐ ์ฌ์ฉ์๋ค์ ํผ๋๋ฐฑ๊ณผ ์ค์ง์ ์ธ ๊ฒ์ฆ์ ๊ฑฐ์ณ ์ด๋ฒ v1.32์์ GA ์ํ๋ก ์ ํ๋์๋๋ฐ์. GA๋ก์ ์ ํ์ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ค๋ ์๋ฏธ๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
๐ Memory Manager์ GA ์ง์ ์ด ์์ผ๋ก ๋ฏธ์น ์ํฅ์?
Memory Manager์ GA ์ง์ ์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ์ ๊ณผ ๊ฐ๋ฐ์๋ค์๊ฒ ๋ค์๊ณผ ๊ฐ์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ๊ฒ์ผ๋ก ๊ธฐ๋๋ฉ๋๋ค.
- ์ฑ๋ฅ ๋ฏผ๊ฐํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ํ๋
- ๊ธ์ต์ด๋ ์๋ฃ ๋ฑ ์ค์๊ฐ ์ฒ๋ฆฌ๊ฐ ์ค์ํ ์ฐ์ ์์ ์ฟ ๋ฒ๋คํฐ์ค์ ํ์ฉ๋๊ฐ ๋์์ง ๊ฒ์ ๋๋ค.
- ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ํฌ๋ก๋์ ์์ ์ฑ ์ฆ๊ฐ
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ์ฅ์ ๋ฅผ ์ค์ด๊ณ ํด๋ฌ์คํฐ ์์ ์ฑ์ ๊ฐ์ ํจ์ผ๋ก์จ DevOps ํ์ ์ด์ ๋ถ๋ด์ ์ค์ฌ์ค๋๋ค.
- ์คํ์์ค ์ปค๋ฎค๋ํฐ์ ์ํ๊ณ ์ฑ์ฅ
- Memory Manager๋ฅผ ํ์ฉํ ๋ค์ํ ํด๊ณผ ํ์ฅ ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค.
๐ญ๋ง์น๋ฉฐ...
์ฟ ๋ฒ๋คํฐ์ค v1.32๋ Memory Manager ๊ธฐ๋ฅ์ GA ์ง์ ์ ๋น๋กฏํด ๋ง์ ๋ฐ์ ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
Memory Manager๋ ์ค์๊ฐ ์ฒ๋ฆฌ์ ์ฑ๋ฅ ์ต์ ํ๊ฐ ์ค์ํ ์ํฌ๋ก๋ ๋ฐฐํฌ ์ธก๋ฉด์์ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ฐ์น๋ฅผ ๋์ฑ ๋์ฌ์ค ๊ฒ์ผ๋ก ๋ณด์ด๋๋ฐ์.
์์ผ๋ก ์ด ๊ธฐ๋ฅ์ด ์ค์ ํ๊ฒฝ์์ ์ด๋ป๊ฒ ํ์ฉ๋ ์ง ๊ธฐ๋๋ฉ๋๋ค.
ํน์ ์ด๋ฒ ๋ด์ฉ ๊ด๋ จํด์ ๋ ๊ถ๊ธํ ์ ์ด ์์ผ์๋ค๋ฉด ์๋ ๋ฉ์ผ๋ฆฌ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์.๐
๊ทธ๋ผ, ๋ค์ ์์์ง์์ ๋ณด๋ค ์์ฐจ๊ณ ํฅ๋ฏธ๋ก์ด ๋ด์ฉ์ผ๋ก ์ฐพ์๋ต๊ฒ ์ต๋๋ค.
์ค๋๋ ๊ฐ์ฌํฉ๋๋ค, ๊ตฌ๋ ์๋ ๐บ
๐References
- https://kubernetes.io/blog/2024/12/11/kubernetes-v1-32-release/
- https://en.wikipedia.org/wiki/Non-uniform_memory_access
- https://kubernetes.io/blog/2021/08/11/kubernetes-1-22-feature-memory-manager-moves-to-beta/
์๊ฒฌ์ ๋จ๊ฒจ์ฃผ์ธ์