์ ์ธํ๋ผ์ ๋ฐ๋ธ์ต์ค๋ฅผ ๊ณต๋ถํ๊ฒ ๋์๋์? ๐ค
์๋ ํ์ธ์, ์ค๋์ ์ธํ๋ผ์ ๋ฐ๋ธ์ต์ค์ ๊ดํ ์ด์ผ๊ธฐ๋ฅผ ์ ์ด๋ณด๋ ค ํฉ๋๋ค. (์ฐํด๋ผ ์ค๋๋ง์ ์ ์ด๋ด ๋๋ค! ์ผ์ผ์ ๋ง์ธ!)
ํ์ฌ ์ ๋ ํ์ฌ์์ ๋์ปค์ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์์ ์์ ์ค์ด์์. ํ์๋ค๊ณผ ์ํํ ์ํต์ ์ํด ์คํฐ๋์ ๊ฐ์ ๋ค์ํ ํ์ต์ ์์ํ๊ฒ ๋์์ต๋๋ค.
ํ์ง๋ง ๋จ์ํ ๊ฐ๋ ๋ง ๊ณต๋ถํ๋ ๊ฒ์ ์์ฌ์ ์ด์.
๊ทธ๋์ ์ค์ ๋ก ์ธํ๋ผ๋ฅผ ์ด์ํ๋ ๋ฐ๋ธ์ต์ค ํ๊ณผ์ ํ์ ์ด๋ผ๋ ๊ด์ ์์ ์ ๋ฆฌํด๋ณด๊ณ ์ถ์์ต๋๋ค.
๋ํ ์ ๊ฐ ๊ฐ์ธ์ ์ผ๋ก ์ด์ ์ค์ธ ์์ฉ ํ๋ก์ ํธ์์๋ ์์์ฌ๋ถ๋ค์ ์ด์๋น์ฉ ์ ๊ฐ์ ์ํด ์ธํ๋ผ ํ์ต์ด ํฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ํ๋จํ์ด์. ์ด๋ฐ ์ค์ง์ ์ธ ํ์์ฑ์ด ๋ ๊น์ ํ์ต์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด์ค๋๋ค.
์ด ๊ธ์ ํ์ฌ ์ ๊ฒ ํ์ํ ๋ด์ฉ๊ณผ ์ ์ฃผ๊ด์ด ๋ค์ด๊ฐ ์ ๋ฆฌ๋ณธ์ด๋, ์ฝ์ผ์๋ ๋ถ๋ค๋ ๊ผญ ๊ต์ฐจ๊ฒ์ฆ์ด๋ ์ถ๊ฐ์ ์ธ ํ์ต์ ์งํํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ ค์!
์ธํ๋ผ ์ง์์ ์ค๋ฌด์ ๊ฐ์น ๐
- ์ธํ๋ผ๋ฅผ ์ดํดํ๋ฉด ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ๋ฐฐํฌ ๊ณผ์ ์ ์๋ฒฝํ๊ฒ ์ ์ดํ ์ ์์ด์.
- ํด๋ผ์ฐ๋ ์ธํ๋ผ์ ๋ฅ์ํด์ง๋ฉด ๋ฆฌ์์ค ํ์ฅ๊ณผ ๋น์ฉ ์ต์ ํ๋ฅผ ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ด์.
- ๋์ปค & ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ๋ค๋ฃจ๋ฉด ์ด๋ค ํ๊ฒฝ์์๋ ์ผ๊ด๋ ๊ฐ๋ฐ๊ณผ ์ ์ํ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํด์ ธ ์์ ํจ์จ์ด ํฌ๊ฒ ํฅ์๋ผ์!
๋ฐ๋ธ์ต์ค ์ฒ ํ ๐ญ
- ๋ฐ๋ธ์ต์ค ์ฒ ํ์์๋ ๊ฐ๋ฐ์ด ์ด์๊น์ง ํ๋ ๊ฒ์ ์์น์ผ๋ก ํด์.
- ๊ฐ๋ฐ์๊ฐ ์ด์ํ๊ฒฝ๊น์ง ๊ด์ฌํ๋ ๊ฒ์ ๋ค๋ฃจ๋ ๊ฒ์ด ๋ฐ๋ธ์ต์ค ์ฒ ํ์ด์์.
- ์ด๋ ๋ง์ด ๋ค๋ฃจ๋ ๊ธฐ์ ์ ์ค ํ๋๊ฐ ๋์ปค์ ์ฟ ๋ฒ๋คํฐ์ค์์.
๋์ปค ์ญ๋์ ์ด๋์ ๋๊ฐ ํ์ํ ๊น์? ๐ณ
- ๊ฐ๋ฐ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ํจํค์ง, ๋ฐฐํฌ, ์คํํ๋ ์ ์ฒด ๊ณผ์ ์ธ ๋์ปค๋ผ์ด์ง์ ํ ์ ์์ด์ผ ํด์.
- ์ปจํ
์ด๋ ์ํฉ์์์ ์ต์ ํ์ ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ ์ํฉ์์์ ์ต์ ํ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด์์.
- ์: ์ปจํ ์ด๋ ๋ด๋ถ๋ ๋ถ๋ณ์ฑ(immutability)์ ๊ฐ์ง๋ฏ๋ก ๋ก๊ทธ๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ์ง ๊ณ ๋ฏผํด์ผ ํด์.
- ์ปจํ ์ด๋ ์ด๋ฏธ์ง ํฌ๊ธฐ ์ต์ํ: ๋ถํ์ํ ํ์ผ๊ณผ ์ข ์์ฑ์ ์ ๊ฑฐํ์ฌ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ผ ํด์.
- ์ปจํ ์ด๋ ๋ด๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ๋ก ๋งํฌ๋ฅผ ๊ฑธ์ด์ค ๋ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ(๋ณผ๋ฅจ)์ ํตํด ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํด์ผ ํด์.
- ๋์ปค๋ก ๊ฐ์ ๋ ์ด๋ค ํน์ฑ์ด ์๊ณ ์ด๋ค ์์ผ๋ก ์ต์ ํํด์ผ ํ ์ง ์ด๋ฐ ๊ฒ๋ค์ ์ค๊ณํ ์ ์์ด์ผ ํด์.
- ์ด๋ฏธ์ง ๋ ์ด์ด ์ต์ ํ (์บ์ฑ ํ์ฉ)
- ๋ฉํฐ ์คํ ์ด์ง ๋น๋ ์ฌ์ฉ: ํ๋์ Dockerfile์์ ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ต์ข ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋น๋ ๋๊ตฌ๋ ์์ค ์ฝ๋ ์์ด ์คํ ํ์ผ๋ง ํฌํจ๋ ์์ ํฌ๊ธฐ์ ์ต์ข ์ด๋ฏธ์ง๋ฅผ ์์ฑํด์.
- ๋น๋ฃจํธ ์ฌ์ฉ์๋ก ์ ํ๋ฆฌ์ผ์ด์ ์คํํ๊ธฐ
- ํ๊ฒฝ๋ณ์๋ฅผ ํตํ ์ค์ ๊ด๋ฆฌ
์ํคํ ์ฒ ์ค๊ณ ๋ฐฉ๋ฒ์? ๐๏ธ
- ์ผ๋ฐ์ ์ผ๋ก ๋จ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํด์ ์๋น์คํ ๋๋ ๋ชจ๋๋ฆฌ์(Monolithic) ์ํ๋ก ๋ฐฐํฌํด์ผ ํ ๋๊ฐ ์์ด์.
- ๋์ปค๋ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๋ค๋ฃจ๋ค ๋ณด๋ฉด ๋ง์ดํฌ๋ก์๋น์ค ์ํ๋ก ์ค๊ณํ๊ณ ์ชผ๊ฐ์ผ ํ ๋๊ฐ ๋ง์์.
- ์ฟ ๋ฒ๋คํฐ์ค์ ํน์ฑ์ ํ์ฉํ๋ ๊ฒฝ์ฐ๋ ๋ง์์.
- ์๋น์ค ๋ถ๋ฆฌ์ ๋ ๋ฆฝ์ ์ค์ผ์ผ๋ง
- ์ฅ์ ๊ฒฉ๋ฆฌ(Fault Isolation)
- ๊ธฐ๋ฅ๋ณ ๋ฐฐํฌ ๋ฐ ๋กค๋ฐฑ ์ฉ์ด์ฑ
- ์์)
- ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ๋ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ๋์ ํฐ ์ฝ๋๋ฒ ์ด์ค๋ก ๊ตฌ์ฑ๋์ด ์์ด ๊ฐ๋ฐ, ํ ์คํธ, ๋ฐฐํฌ๊ฐ ์๋์ ์ผ๋ก ๊ฐ๋จํด์.
- ๊ทธ๋ฌ๋ ์๋์๊ฐ์ ์ด์ ๋ก ๋์ปค๋ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ฐ์ ์ปจํ
์ด๋ ๊ธฐ์ ์ ๋ค๋ฃจ๋ค ๋ณด๋ฉด, ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ๋ก ์ค๊ณํ๊ณ ๋ถํ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ ธ์.
- ๋ ๋ฆฝ์ ์ธ ๋ฐฐํฌ: ๊ฐ ์๋น์ค๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ๋ฐฐํฌํ ์ ์์ด, ์ ์ฒด ์์คํ ์ ์ค๋จํ์ง ์๊ณ ๋ ํน์ ๊ธฐ๋ฅ์ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ํ์ฅํ ์ ์์ด์ (API ์๋ฒ, ํ๋ก ํธ์๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ๊ฐ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ์ปจํ ์ด๋๋ก ์ด์).
- ๋ฆฌ์์ค ํจ์จ์ฑ: ์ฟ ๋ฒ๋คํฐ์ค์ ํน์ฑ์ ๊ฐ ์๋น์ค์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ํ ๋นํ๊ณ ๊ด๋ฆฌํ ์ ์์ด, ๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ฉ์ ์ต์ ํํ ์ ์์ด์.
- ๊ธฐ์ ๋ค์์ฑ: ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ ๋ ๋ฆฝ์ ์ด๋ฏ๋ก, ์๋น์ค๋ณ๋ก ๊ฐ์ฅ ์ ํฉํ ๊ธฐ์ ์คํ์ ์ ํํ ์ ์์ด์.
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ ๋ฐฐํฌ์ ๊ด์ฌ์ ๊ฐ์ ธ์ผ ํด์! ๐
๋น์ฅ ๋์ปค๊น์ง ์๋๋๋ผ๋, React.js๋ฅผ ๋ค๋ฃจ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ถ๋ค ์ค์ ๋ฐฐํฌ๋ฅผ ์์ ํ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ ์ธํ๋ผํ์ ๋๊ธฐ๊ณ ๊ด์ฌ์ ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ด์. ํ์ง๋ง ์ด๋ฌ๋ฉด ๋ง์ด ์์ฝ์์์?!
์๋์ ์ ๊ธฐ์ค์ ์ ์ด๋จ์ด์.
- FE๋ ๋ฐฐํฌ๋ฅผ ํด๋ผ์ฐ๋์ชฝ์ ํ๋ค๋ณด๋ ํด๋ผ์ฐ๋ ๊ธฐ์ ๋ค์ ๋ง์ด ์๊ณ ์์ด์ผ ํด์.
- ์ด๋ฅผํ ๋ฉด FE์ชฝ์์ ๋ค๋ฃจ๋ค๋ณด๋ฉด Node.js๋ก ๊ฐ๋ฐํ๊ณ ์๋น์ ํ๊ฒ ๋ผ์.
- ์ค์ ๋ก ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด 'CFS3'๋ผ๊ณ ๋ง์ด ์ด์ผ๊ธฐ๋ฅผ ํ๋๋ฐ, ์ด๋ CloudFront ๋ํ๊ธฐ S3๋ก ์คํํฑํ๊ฒ ํ์ผ์ ๋น๋ํด์ ์๋นํ๋ค๋ ๋ป์ด์์.
- ์ด๋ฐ ๊ฒ๋ค์ ํ๊ธฐ ์ํด์๋ ๋ฐ๋ธ์ต์คํ๊ณผ ์ด์ผ๊ธฐ๋ฅผ ํด์ผ ํ๊ณ , ์ ์ด๋ ๋ด๊ฐ ๊ฐ๋ฐํ๋ ์์คํ ์ด ์ด๋ค ํ์์ผ๋ก ๋ฐฐํฌ๋์ด ์๋น๋ ๊ฒ์ธ์ง ๊ทธ ๊ตฌ์กฐ๋ฅผ ์์์ผ ์ธํ๋ผํ์ด๋ ๋ฐ๋ธ์ต์คํ, ํน์ ํด๋ผ์ฐ๋ ์์ง๋์ด์์ ๋ํ๊ฐ ํธํ์ค ๊ฑฐ์์.
๊ทธ๋ฌ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ถ๋ค๋ ๋ฐฐํฌ ๊ณผ์ ๊ณผ ์ธํ๋ผ์ ๋ํด ์๊ณ ๊ณ์ ์ผ ์ข์ต๋๋ค!!
๋ฐ๋ธ์ต์ค ์์ง๋์ด์์ ํ์ ์ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๊น์? ๐ค
- ๋ฐ๋ธ์ต์ค ์์ง๋์ด๋ ์๋น์ค๋ฅผ ์คํํ๊ธฐ ์ ์ด๋ ์ธํ๋ผ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ฐฐํฌํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ง๋ฌธ์ ํ๊ฒ ๋ผ์ (์ด๋ ์ ๋๋ตํ๊ธฐ ์ํด ์ง๊ธ๋ถํฐ ์ค๋ช ํ ๋ด์ฉ๋ค์ ํ์ตํด๋ณด์์).
- ์ด๋ ์ฟ ๋ฒ๋คํฐ์ค๋ ๋์ปค ๊ฐ์ ๊ธฐ๋ฐ๊ธฐ์ ์ ํญ๋๊ฒ ์๊ณ ์์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์.
- ๋ฆฌ์์ค ์๊ตฌ์ฌํญ(CPU, ๋ฉ๋ชจ๋ฆฌ)
- ๋คํธ์ํฌ ์ ์ฑ ๋ฐ ์๊ตฌ์ฌํญ
- ํ๊ฒฝ๋ณ์ ๋ฐ ๊ตฌ์ฑ ๊ด๋ฆฌ ๋ฐฉ๋ฒ
- ์ํ ๊ด๋ฆฌ ์ ๋ต
๊ทธ๋ผ ํ์ ์ ์ํด ์์์ผ ํ ์ฟ ๋ฒ๋คํฐ์ค ์ด๋ก ์ ๋ฌด์์ด ์์๊น์? โธ๏ธ
- ์ด์ ์ธก๋ฉด์์ ํ์ํ ์ฟ ๋ฒ๋คํฐ์ค ์ด๋ก ์ด ์๊ณ ๊ฐ๋ฐ์ด๋ ๋ฐฐํฌ ์ธก๋ฉด์์ ํ์ํ ์ฟ ๋ฒ๋คํฐ์ค ์ด๋ก ์ด ์์ด์.
- ๊ฐ๋ฐ์๋ ๊ฐ๋ฐ์ด๋ ๋ฐฐํฌ ์ธก๋ฉด์์ ํ์ํ ์ฟ ๋ฒ๋คํฐ์ค ์ด๋ก ์ ๋ง์ด ๋ค๋ฃจ๋ ๊ฒ์ด ์ข์์.
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค ๐ฆ
- ๊ฐ๋ฐ์ด๋ ๋ฐฐํฌ ์ธก๋ฉด์์ ๋ค๋ฃจ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค๋ค์:
- ํ๋(Pod): ์ฟ ๋ฒ๋คํฐ์ค์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฐํฌ ๋จ์์์ (์๋ ํ๊ธฐ๋ Pod์ด๋ฉฐ ํ๊ธ๋ก๋ 'ํ๋'๋ก ํ๊ธฐํด์).
- ์๋น์ค(Service): ํ๋ ์งํฉ์ ๋ํ ๋จ์ผ ์ง์
์ ์ ์ ๊ณตํ๋ ์ถ์ํ ๊ณ์ธต์ด์์.
- ์๋น์ค๋ ์ฌ๋ฌ ํ๋์ ๊ฑธ์ณ ํธ๋ํฝ์ ๋ก๋๋ฐธ๋ฐ์ฑ ํด์ฃผ๋ ์ญํ ์ ํด์.
- ClusterIP, NodePort, LoadBalancer, ExternalName ๋ฑ ๋ค์ํ ์ ํ์ด ์์ด์.
- ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ์ ๋ด๋ถ DNS๋ฅผ ํตํด ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํด์.
- ํ๋์ ์์ฑ, ์ญ์ , ์ฌ์์์ ๊ด๊ณ์์ด ์์ ์ ์ธ ์๋ํฌ์ธํธ๋ฅผ ์ ๊ณตํด์.
- ๋ ์ด๋ธ ์ ๋ ํฐ๋ฅผ ํตํด ์ด๋ค ํ๋๊ฐ ์๋น์ค์ ํฌํจ๋ ์ง ๊ฒฐ์ ํด์.
- ์ธ๊ทธ๋ ์ค(Ingress): ํด๋ฌ์คํฐ ์ธ๋ถ์์ ๋ด๋ถ ์๋น์ค๋ก์ HTTP/HTTPS ๋ผ์ฐํ ๊ท์น ๊ด๋ฆฌ์์.
- ์ธ๊ทธ๋ ์ค ์ปจํธ๋กค๋ฌ(Ingress Controller): ์ธ๊ทธ๋ ์ค ๊ท์น์ ์ค์ ๋ก ๊ตฌํํ๋ ์ปดํฌ๋ํธ์์.
- ์ปจํธ๋กค ํ๋ ์ธ ์์ญ์ ์์ง ๊น๊ฒ ์ ํ์ ์๋ค๊ณ ํ๋จํ์ด์. ๊ธฐ๋ณธ์ ์ธ ๊ฒ๋ง ์๋ฉด ๋ฉ๋๋ค!
- ๊ธฐ๋ณธ์ ์ธ๊ฒ์ ์์:
- kube-apiserver๊ฐ ๋ฌด์จ ์ผ์ ํ๋์ง, kube-dns(CoreDNS)๊ฐ ๋ฌด์จ ์ผ์ ํ๋์ง ์ ๋์ ๊ธฐ๋ณธ ๊ฐ๋ ๋ง ์๋ฉด ๋ผ์.
- ๊ธฐ๋ณธ์ ์ธ๊ฒ์ ์์:
๋ฐ๋ธ์ต์ค/์ธํ๋ผ ์ ๋ฌธ๊ฐ๊ฐ ์์์ผ ํ ๊ฒ ๐
- ์ธํ๋ผ๋ฅผ ์ ๋ฌธ์ ์ผ๋ก ๋ค๋ฃจ๊ฑฐ๋ ๋ฐ๋ธ์ต์ค๋ฅผ ํ๊ฒ ๋๋ฉด ์ปจํธ๋กค ํ๋ ์ธ ์์ญ์์ ๋ค๋ฃจ๋ 4๋ ์ปดํฌ๋ํธ์ ๋ํด ์์ธํ ์์์ผ ํด์.
- kube-apiserver: API ์์ฒญ์ ์ฒ๋ฆฌํ๋ ํ๋ก ํธ์๋์์.
- etcd: ํด๋ฌ์คํฐ ์ํ๋ฅผ ์ ์ฅํ๋ ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์.
- kube-scheduler: ํ๋๋ฅผ ๋ ธ๋์ ํ ๋นํ๋ ์ปดํฌ๋ํธ์์.
- kube-controller-manager: ๋ค์ํ ์ปจํธ๋กค๋ฌ๋ฅผ ์คํํ๋ ์ปดํฌ๋ํธ์์.
- IRSA(IAM Roles for Service Accounts) ๊ฐ์ ์ธ์ฆ ๋ฐฉ์์ ๋ํด์๋ ์ ์์์ผ ํด์.
- ์๋น์ค ๊ณ์ ์ ๋ํ IAM ์ญํ ์ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ณด์ ์ธ์ฆ ์ ๋ณด ์ฒด์ธ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด์์.
- GKE(Google Kubernetes Engine), AWS์ EKS(Elastic Kubernetes Service) ๋ฑ ๊ฐ ํด๋ผ์ฐ๋์์ ์ ๊ณตํ๋ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ๋ค์ ํน์ฑ์ ๋ํด์๋ ์ ์์์ผ ํด์.
๋ฆฌ์์ค ์ค๊ณ์ ๊ตฌ์ฑ ๊ฒฐ์ ๐
ํ์ฌ ํ๊ฒฝ
- ์ฐ๋ฆฌ๋ ํ์ฌ OKD(OpenShift Kubernetes Distribution)๋ผ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฐฐํฌํ์ ์ฌ์ฉํ๊ณ ์์ด์.
- OKD๋ Red Hat์ ์คํ์์ค ์ํฐํ๋ผ์ด์ฆ ์ฟ ๋ฒ๋คํฐ์ค ํ๋ซํผ์ผ๋ก, ๊ธฐ๋ณธ์ ์ธ ์ฟ ๋ฒ๋คํฐ์ค ๊ธฐ๋ฅ ์ธ์๋ ๋ค์ํ ์ถ๊ฐ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํฉ๋๋ค.
OKD ๋ด๋ถ ๋ฆฌ์์ค ์ค๊ณ
- OKD ํ๊ฒฝ์์ ๋ฆฌ์์ค ๊ตฌ์ฑ์ ์ด๋ป๊ฒ ํ ์ง ์ค๊ณํ์ฌ ๋ฐ๋ธ์ต์ค ํ์ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค:
- Routes vs Ingress: OKD๋ Route๋ผ๋ ๊ณ ์ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก HAProxy ๊ธฐ๋ฐ ์ธ๊ทธ๋ ์ค ์ปจํธ๋กค๋ฌ์ ํจ๊ป ์๋ํด์.
- ํ ํ๋ฆฟ๊ณผ ์คํผ๋ ์ดํฐ: OKD์์ ์ ๊ณตํ๋ ํ ํ๋ฆฟ๊ณผ ์คํผ๋ ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ๋ฅผ ๋จ์ํํ ์ ์์ด์.
- ํ๋ก์ ํธ์ ๋ค์์คํ์ด์ค: OKD์ ํ๋ก์ ํธ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ค์์คํ์ด์ค์ ํ์ฅ ๊ฐ๋ ์ผ๋ก, ์ถ๊ฐ์ ์ธ ๋ณด์ ๋ฐ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํด์.
- DeploymentConfig: OKD์์๋ Deployment ๋์ DeploymentConfig๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ ์ธ๋ฐํ ๋ฐฐํฌ ์ ๋ต์ ์ ๊ณตํด์.
์ปค์คํ ๋ฆฌ์์ค ๋ฐ ํ์ฅ ๊ตฌ์ฑ
- ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ถ๊ฐ ๊ตฌ์ฑ์ด ํ์ํ ์ ์์ต๋๋ค:
- ์ปค์คํ ๋ฆฌ์์ค(CustomResources) ์ ์๋ฅผ ํตํด OKD์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ์ง ์๋ ๋ฆฌ์์ค ํ์ ์ ๊ตฌํํ ์ ์์ด์.
- ์คํ ์ดํธํ์ (StatefulSet) ๊ตฌ์ฑ์ผ๋ก ์ํ ์ ์ง๊ฐ ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ (์: ๋ฐ์ดํฐ๋ฒ ์ด์ค)์ ๊ด๋ฆฌํ ์ ์์ด์.
- ์๋น์ค ๋ฉ์(Service Mesh): OKD์์๋ Red Hat Service Mesh(Istio ๊ธฐ๋ฐ)๋ฅผ ํตํฉํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ํต์ ์ ๊ด๋ฆฌํ ์ ์์ด์.
์ธ๊ทธ๋ ์ค ๋ฐ ํธ๋ํฝ ๊ด๋ฆฌ ์ต์
- OKD ํ๊ฒฝ์์ ๋ค์ํ ์ธ๊ทธ๋ ์ค ์ต์
์ ๊ณ ๋ คํ ์ ์์ต๋๋ค:
- ๊ธฐ๋ณธ HAProxy ์ธ๊ทธ๋ ์ค: OKD๋ ๊ธฐ๋ณธ์ ์ผ๋ก HAProxy ๊ธฐ๋ฐ ์ธ๊ทธ๋ ์ค ์ปจํธ๋กค๋ฌ๋ฅผ ์ ๊ณตํด์.
- NGINX ์ธ๊ทธ๋ ์ค ์ปจํธ๋กค๋ฌ: ๊ณ ๋ถํ ํธ๋ํฝ ํ๊ฒฝ์์๋ NGINX ์ธ๊ทธ๋ ์ค ์ปจํธ๋กค๋ฌ๋ฅผ ๋์์ผ๋ก ์ค์นํ ์ ์์ด์.
- ์ฅ์ : ๊ณ ์ฑ๋ฅ, ์ธ๋ฐํ ์ค์ ๊ฐ๋ฅ, ๊ด๋ฒ์ํ ์ปค๋ฎค๋ํฐ ์ง์
- ๋จ์ : ์ถ๊ฐ ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌ ํ์
- API ๊ฒ์ดํธ์จ์ด: Kong, Ambassador ๋ฑ์ API ๊ฒ์ดํธ์จ์ด๋ฅผ OKD ์์ ์ค์นํ์ฌ ๊ณ ๊ธ ๋ผ์ฐํ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ด์.
OKD์ ๋์์ฑ ๊ฒํ
- ํ์ฌ OKD๋ฅผ ์ฌ์ฉ ์ค์ด์ง๋ง, ํ์์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฟ ๋ฒ๋คํฐ์ค ๋ฐฐํฌํ๋ ๊ณ ๋ คํ ์ ์์ต๋๋ค:
- EKS(Amazon Elastic Kubernetes Service): AWS ํ๊ฒฝ์์ ๊ด๋ฆฌํ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ด์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
- ์ฅ์ : ๊ด๋ฆฌ ๋ถ๋ด ๊ฐ์, AWS ์๋น์ค์์ ํตํฉ ์ฉ์ด
- ๋จ์ : OKD์ ์ถ๊ฐ ๊ธฐ๋ฅ๋ค(CI/CD ํตํฉ, ๊ฐ๋ฐ์ ์นดํ๋ก๊ทธ ๋ฑ) ๋ถ์ฌ
- GKE(Google Kubernetes Engine): Google Cloud์์ ๊ด๋ฆฌํ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ํ ๊ฒฝ์ฐ
- AKS(Azure Kubernetes Service): Microsoft Azure์์ ๊ด๋ฆฌํ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ํ ๊ฒฝ์ฐ
- Rancher: ๋ค์ค ํด๋ฌ์คํฐ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ์ ๋์
- EKS(Amazon Elastic Kubernetes Service): AWS ํ๊ฒฝ์์ ๊ด๋ฆฌํ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ด์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
๊ฐ๋ฐ์์ ์ด์ ํ์
- ๊ฐ๋ฐ ํ์์๋ ์ธํ๋ผ๋ฅผ ์ถฉ๋ถํ ์ดํดํ ํ์๊ฐ ์์ต๋๋ค:
- OKD์ ์น ์ฝ์์ ํตํด ๊ฐ๋ฐ์๋ค๋ ๋ฐฐํฌ ๋ฐ ๋ชจ๋ํฐ๋ง ๊ณผ์ ์ ์ฐธ์ฌํ ์ ์์ด์.
- ๊ฐ๋ฐ์์ ์ด์ํ์ด ํจ๊ป ์ฌ์ฉํ ์ ์๋ OKD์ CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ์ด ๊ฐ๋ฅํด์.
- ๊ฐ๋ฐ์๋ค์ด ์ง์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฆฌ์์ค ์๊ตฌ์ฌํญ(CPU, ๋ฉ๋ชจ๋ฆฌ, ์คํ ๋ฆฌ์ง ๋ฑ)์ ์ ์ํ๋๋ก ๊ฐ์ด๋ํด์ค์ผ ํด์.
๋ฆฌ์์ค ๊ด๋ฆฌ ์ ๋ต โ๏ธ
- ํนํ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์์๋ ๋ฆฌ์์ค๋ฅผ ์ด๋ป๊ฒ ์ชผ๊ฐ๊ณ ๋๋ ๊ฒ์ธ์ง ๊ฒฐ์ ์ด ํ์ํด์.
- ์ด๋ ๋ถ๋ถ์ ConfigMap์ ๋๊ณ ์ด๋ ๋ถ๋ถ์ Secret์ผ๋ก ๊ด๋ฆฌํ ๊ฒ์ธ์ง์ ๋ํ ์ค๊ณ๋ ๊ฐ๋ฐ ํ์์ ์ ๊ณตํ๋ฉด ์ข์์.
- ConfigMap: ํ๊ฒฝ๋ณ ์ค์ , ๋ก๊ทธ ๋ ๋ฒจ, ์ฑ ๊ตฌ์ฑ ๋ฑ ๋ฏผ๊ฐํ์ง ์์ ์ค์ ์ด์์.
- Secret: API ํค, ์ธ์ฆ์, ํจ์ค์๋ ๋ฑ ๋ฏผ๊ฐํ ์ ๋ณด์์.
๋ง์น๋ฉฐ
์ด์์ผ๋ก ์ธํ๋ผ์ ๋ฐ๋ธ์ต์ค์ ๊ดํ ์ค์ ๊ฐ๋ ๋ค์ ๊ฐ๋ตํ ๋ณด์์ต๋๋ค! ์ด ๊ธ์ด ์ฌ๋ฌ๋ถ์ ํ์ต๊ณผ ์ ๋ฌด์ ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ด์.
๋ค์ ํ๋ฒ ๋ง์๋๋ฆฌ์ง๋ง, ์ด ๊ธ์ ์ ์ฃผ๊ด์ ์ธ ๊ด์ ๊ณผ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์์ฑ๋์๋ต๋๋ค. ๊ผญ ๋ค๋ฅธ ์๋ฃ๋ค๋ ํจ๊ป ์ฐธ๊ณ ํ์๊ณ , ์ค๋ฌด์ ์ ์ฉํ์ค ๋๋ ๊ต์ฐจ๊ฒ์ฆ์ ํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ ค์!
๊ถ๊ธํ ์ ์ด๋ ์๊ฒฌ์ด ์์ผ์๋ฉด ์ธ์ ๋ ์ง ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์. ํจ๊ป ์ฑ์ฅํ๋ ๊ธฐํ๊ฐ ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค!