๋ณธ ํฌ์คํ ์ ๊ทธ๋ฆผ๊ณผ ์ค์ต์ผ๋ก ๋ฐฐ์ฐ๋ ๋์ปค & ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋?
์ฟ ๋ฒ๋คํฐ์ค๋ ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋(=์๋ฒ)๋ฅผ ๊ด๋ฆฌํ๋ ๋๊ตฌ์ด๋ค.
์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ์ ์ผ์ข ์ด๋ค. ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์ด๋ ์์คํ ์ ์ฒด๋ฅผ ํต๊ดํ๊ณ ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๋ ์ผ์ ๋งํ๋ค. ๊ทธ ์ด๋ฆ ๊ทธ๋๋ก ์ค์ผ์คํธ๋ผ๋ฅผ ๋ ์ฌ๋ฆฌ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค. ์ง์ทจ์๊ฐ ์ ์ฒด ์ ๋จ์ ์งํํ๋ฏ, ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์งํํ๋ ๋๊ตฌ๊ฐ ๋ฐ๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ฅผ K8S๋ผ๊ณ ์ค์ฌ์ฐ๊ธฐ๋ ํ๋ค. k์ s ์ฌ์ด์ 8๊ฐ์ ๊ธ์๊ฐ ์๋ค๋ ์๋ฏธ์ ์ฝ์นญ์ผ๋ก, ์ฟ ๋ฒ๋คํฐ์ค์ ๊ด๋ จ๋ ๊ฒ์์ด๋ก ์ ์ฉํ๋ค.
๋ํ ์ฌ๋ฌ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋น์ค๋ฅผ ๋๋ฆด ๋ worker node ์ค์ ํ๋๊ฐ ์์ด์ ธ๋ ๋๊ธฐ์ง ์๊ณ ์๋น์ค์ ์ด์์ด ์๊ฒ(no downtime)ํ๋ ๊ฐ๋ ์ ๋ดํฌํ๋ค.
๋์ปค์์ ์ฐจ์ด์
๋์ปค๋ ํ ๋์ ๋ฌผ๋ฆฌ์ ์๋ฒ์์ ์คํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ง๋ง ์ฟ ๋ฒ๋คํฐ์ค๋ ์ฌ๋ฌ ๋์ ๋ฌผ๋ฆฌ์ ์๋ฒ๊ฐ ์กด์ฌํ๋ ๊ฒ์ ์ ์ ๋ก ํ๋ค. ๋ ์ด ๋ฌผ๋ฆฌ์ ์๋ฒ ํ ๋ ํ ๋ ๋ง๋ค ์ ๊ฐ๊ธฐ ์ฌ๋ฌ ๋์ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ค.
๋์ปค์์๋ docker run ์ปค๋งจ๋๋ฅผ 20๋ฒ ์คํํด์ผ ์ผ์ผ์ด ๋ง๋ค ์ ์๋๋ฐ, ์ฟ ๋ฒ๋คํฐ์ค๋ ์ด๋ฐ ๋ฒ๊ฑฐ๋ก์ด ์ปจํ ์ด๋ ์์ฑ์ด๋ ๊ด๋ฆฌ์ ์๊ณ ๋ฅผ ๋์ด์ฃผ๋ ๋๊ตฌ๋ค. ์ ์ ํ์ผ(๋งค๋ํ์คํธ ํ์ผ)๋ง ์์ฑํ๋ฉด ์ด ์ ์์ ๋ฐ๋ผ ๋ชจ๋ ๋ฌผ๋ฆฌ์ ์๋ฒ์ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ , ์์ฑํ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํด ์ค๋ค.
ํด๋ฌ์คํฐ์ ๊ตฌ์ฑ - ๋ง์คํฐ ๋ ธ๋์ ์์ปค ๋ ธ๋
์ฟ ๋ฒ๋คํฐ์ค๋ ์ ์ฒด์ ์ธ ์ ์ด๋ฅผ ๋ด๋นํ๋ ๋ง์คํฐ ๋ ธ๋์ ์ค์ ๋์์ ๋ด๋นํ๋ ์์ปค ๋ ธ๋๋ผ๋ ๋ ๊ฐ์ง ์ ํ์ ๋ ธ๋๋ก ๊ตฌ์ฑ๋๋ค.
๋ง์คํฐ ๋ ธ๋: ์ด๋ฆ ๊ทธ๋๋ก ๊ฐ๋ ๊ณผ ๊ฐ์ ์กด์ฌ๋ค. ์ง์ผ๋ก ๋งํ๋ฉด ๋๋ค๋ณด ๊ฐ์ ๊ฒ์ผ๋ก, ๋ง์คํฐ ๋ ธ๋์์ ์ปจํ ์ด๋๋ฅผ ์คํํ์ง๋ ์์ผ๋ฉฐ ์์ปค ๋ ธ๋์์ ์คํ๋๋ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค. ๋ฐ๋ผ์ ๋์ปค ์์ง ๊ฐ์ ์ปจํ ์ด๋ ์์ง๋ ์ค์น๋์ง ์๋๋ค. ๋ง์คํฐ๋ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๋ ์ ๋ฌด๋ก๋ ์ฌ๋ ฅ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ด๋ฆฌ์ง์ด ๋ฐ์ ๊ฒ์ ๋น๋จ ์ฌ๋์๊ฒ๋ง ํด๋น๋๋ ์๊ธฐ๋ ์๋ ๊ฒ ๊ฐ๋ค.
๋ง์คํฐ ๋ ธ๋์๋ ์ปจํ ์ด๋ ๋ฑ์ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด etcd๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ค์น๋๋ค.
์์ปค๋ ธ๋: ์ค์ ์๋ฒ์ ํด๋นํ๋ ๋ถ๋ถ์ผ๋ก, ์ปจํ ์ด๋๊ฐ ์ค์ ๋์ํ๋ ์๋ฒ๋ค. ์ปจํ ์ด๋๊ฐ ๋์ํด์ผ ํ๋ฏ๋ก ์ปจํ ์ด๋ ์์ง์ด ์ค์น๋ผ์ผ ํ๋ ๊ฒ์ ๋ฌผ๋ก ์ด๋ค.
ํด๋ฌ์คํฐ: ์ด๋ ๊ฒ ๋ง์คํฐ ๋ ธ๋์ ์์ปค ๋ ธ๋๋ก ๊ตฌ์ฑ๋ ์ผ๊ตฐ์ ์ฟ ๋ฒ๋คํฐ์ค ์์คํ ์ ํด๋ฌ์คํฐ๋ผ๊ณ ํ๋ค.
ํด๋ฌ์คํฐ๋ ์ฌ๋์ด ๊ฐ์ ํ์ง ์์๋ ๋ง์คํฐ ๋ ธ๋์ ์ค์ ๋ ๋ด์ฉ์ ๋ฐ๋ผ ์์ปค ๋ ธ๋๊ฐ ๊ด๋ฆฌ๋๋ฉฐ ์์จ์ ์ผ๋ก ๋์ํ๋ค.
๊ด๋ฆฌ์๋ ๋ง์คํฐ ๋ ธ๋์ ์ด๊ธฐ ์ค์ ํ ๊ฐ๋ ์กฐ์ ๋ง ํ๋ฉด ๋๋ฉฐ, ๊ด๋ฆฌ์(๋)๊ฐ ์ง์ ์์ปค ๋ ธ๋๋ฅผ ๊ด๋ฆฌํ๋ ์ผ๋ ์๋ค.
๋ง์คํฐ ๋ ธ๋๋ฅผ ์ค์ ํ๋ ๊ด๋ฆฌ์์ ์ปดํจํฐ์๋ kubectl์ ์ค์นํ๋ค. kubectl์ ์ค์นํด์ผ ๋ง์คํฐ ๋ ธ๋์ ๋ก๊ทธ์ธํด ์ด๊ธฐ ์ค์ ์ ์งํํ๊ฑฐ๋ ์ถํ ์กฐ์ ์ด ๊ฐ๋ฅํ๋ค.
๋ง์คํฐ ๋ ธ๋ - ์ปจํธ๋กค ํ๋ ์ธ
๋ง์คํฐ ๋ ธ๋๋ 5๊ฐ์ ์ปจํธ๋กค ํ๋ ์ธ์ ํตํด ์์ปค ๋ ธ๋๋ฅผ ๊ด๋ฆฌํ๋ค.
1. kube-apiserver: ์ธ๋ถ์ ํต์ ํ๋ ํ๋ก์ธ์ค, kubectl๋ก๋ถํฐ ๋ช ๋ น์ ์ ๋ฌ๋ฐ์ ์คํํ๋ค.
2. kube-controller-manager: ์ปจํธ๋กค๋ฌ๋ฅผ ํตํฉ ๊ด๋ฆฌ, ์คํํ๋ค.
3. kube-scheduler: ํ๋๋ฅผ ์์ปค ๋ ธ๋์ ํ ๋นํ๋ค.
4. cloud-controller-manager: ํด๋ผ์ฐ๋ ์๋น์ค์ ์ฐ๋ํด ์๋น์ค๋ฅผ ์์ฑํ๋ค.
5. etcd: ํด๋ฌ์คํฐ ๊ด๋ จ ์ ๋ณด ์ ๋ฐ์ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
etcd ์ธ์๋ ์ฟ ๋ฒ๋คํฐ์ค์ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๊ตณ์ด ์ถ๊ฐ๋ก ์ค์นํ ํ์๋ ์๋ค. etcd์ ์ฟ ๋ฒ๋คํฐ์ค๋ง ์ค์นํ๋ฉด ๋ชจ๋ ์ค์น๊ฐ ์๋ฃ๋๋ค.
์์ปค ๋ ธ๋ - kube-let๊ณผ kube proxy
kubelet: ๋ง์คํฐ ๋ ธ๋์ ์๋ kube-scheduler์ ์ฐ๋ํ๋ฉฐ ์์ปค ๋ ธ๋์ ํ๋๋ฅผ ๋ฐฐ์นํ๊ณ ์คํํ๋ค. ๋ ์คํ ์ค์ธ ํ๋์ ์ํ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๋ฉฐ kube-scheduler์ ํต์งํ๋ค.
kube-proxy: ๋คํธ์ํฌ ํต์ ์ ๋ผ์ฐํ ๋งค์ปค๋์ฆ
์ฟ ๋ฒ๋คํฐ์ค๋ ํญ์ ๋ฐ๋์งํ ์ํ๋ฅผ ์ ์งํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์ญ์ ํ ์ ์์ง๋ง ์ผ์ผ์ด ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ ๋ฐฉ์์ ์ฌ์ฉํ์ง๋ ์๋๋ค.
"์ปจํ ์ด๋๋ ใ ใ ๊ฐ, ๋ณผ๋ฅจ์ xx ๊ฐ๋ก ๊ตฌ์ฑํ๋ผ" ์ ๊ฐ์ด ์ด๋ค ๋ฐ๋์งํ ์ํ๋ฅผ YAML ํ์ผ์ ์ ์ํ๊ณ , ์๋์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์ญ์ ํ๋ฉด์ ์ด ์ํ๋ฅผ ๋ง๋ค๊ณ ์ ์งํ๋ ๊ฒ์ด ์ฟ ๋ฒ๋คํฐ์ค์ ๊ธฐ๋ณธ์ ์ธ ์์ด๋์ด๋ค.
๋์ปค ์ปดํฌ์ฆ์๋ ๋ค๋ฅด๊ฒ ์ด ์ํ๋ฅผ ์ ์งํ๋ ๊ธฐ๋ฅ์ด ์๋ค. ๋์ปค ์ปดํฌ์ฆ๋ ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฅ์ด ์์ด์ ์ปจํ ์ด๋์ ์๋ฅผ ๋ฐ๊พธ๋ ๋ฑ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค ๋ ์ธ์๋ ๊ด์ฌํ์ง ์๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ด๋ค ์ด์ ๋ก ์ปจํ ์ด๋๊ฐ ๋ง๊ฐ์ก๋ค๋ฉด ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ์์์ ๋ง๊ฐ์ง ์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๊ณ ์ ์ปจํ ์ด๋๋ก ๋์ฒดํ๋ฉฐ,์ ์์์ '์ปจํ ์ด๋ 5๊ฐ'๋ฅผ '์ปจํ ์ด๋ 4๊ฐ'๋ก ์์ ํ๋ฉด ์ปจํ ์ด๋๋ฅผ ํ ๊ฐ ์ญ์ ํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค์ ๊ธฐ๋ฅ์ ์ด๋๊น์ง๋ ์๋์ผ๋ก ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ผ๋ก, ์ปจํ ์ด๋๋ฅผ ์ญ์ ํ๊ณ ์ถ๋ค๋ฉด ์ญ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ ๊ฒ์ด ์๋๋ผ ํ์ผ์์ ๋ฐ๋์งํ ์ํ๋ฅผ ์์ ํด์ผ ํ๋ค. ์ฌ๋์ด ๊ฐ์ ํด์ ์ง์๋ดค์ ๋ง์คํฐ ๋ ธ๋์ ๋ช ๋ น์ผ๋ก ์ข๋น๊ฐ์ด ๋ค์ ์๊ธด๋ค ใ ใ
์ฟ ๋ฒ๋คํฐ์ค์ ๊ตฌ์ฑ๊ณผ ๊ด๋ จ๋ ์ฉ์ด(ํ๋, ์๋น์ค, ๋ํ๋ก์ด๋จผํธ, ๋ ํ๋ฆฌ์นด์ธํธ)
ํ๋: ์ฟ ๋ฒ๋คํฐ์ค์์ ์ปจํ ์ด๋๋ ํ๋๋ผ๋ ๋จ์๋ก ๊ด๋ฆฌ๋๋ค. ํ๋๋ ์ปจํ ์ด๋์ ๋ณผ๋ฅจ์ ํจ๊ป ๋ฌถ์ ๊ฒ์ผ๋ก, ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ ํ๋๊ฐ ์ปจํ ์ด๋ ํ๋์ด์ง๋ง ์ปจํ ์ด๋๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ํ๋๋ ์์ ์ ์๋ค.
๊ทธ๋ฆผ์์์ ๋ ธ๋๊ฐ ์์ปค ๋ ธ๋.
์๋น์ค: ์ด๋ค ํ๋๋ฅผ ์ด๋๋ ๊ฒ์ด ์๋น์ค๋ค. ์๋น์ค๊ฐ ๊ด๋ฆฌํ๋ ํ๋๋ ๋ชจ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ ๊ตฌ์ฑ์ ๊ฐ๋๋ค. ๊ตฌ์ฑ์ด ๋ค๋ฅธ ํ๋๋ ๋ณ๋์ ์๋น์ค๋ก ๊ด๋ฆฌํ๋ค. ์๋น์ค๋ ์ฌ๋ฌ ๊ฐ์ ํ๋๋ฅผ ์ด๋๋ ๋ฐ์ฅ์ด๋ฏ๋ก ํ๋๊ฐ ์ฌ๋ฌ ๊ฐ์ ์์ปค ๋ ธ๋(๋ฌผ๋ฆฌ์ ์๋ฒ)์ ๊ฑธ์ณ ๋์ํ๋๋ผ๋ ์ด๋ค์ ๋ชจ๋ ๊ด๋ฆฌํ๋ค.
์๋น์ค๊ฐ ๊ด๋ฆฌํ๋ ํ๋๋ ๋ชจ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ ๊ตฌ์ฑ์ ๊ฐ๋๋ค. ๊ตฌ์ฑ์ด ๋ค๋ฅธ ํ๋๋ ๋ณ๋์ ์๋น์ค๋ก ๊ด๋ฆฌํ๋ค.
์๋น์ค๋ ํด๋ผ์ด์ธํธ๊ฐ ํ๋๋ฅผ ๊ฒ์ํ๊ณ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
์๋น์ค๋ ๊ฐ ํ๋์ ์์ฒญ์ ๋ฐฐ๋ถํ๋ค.
์๋น์ค์ ์ญํ ์ ์ฝ๊ฒ ๋งํด ๋ก๋ ๋ฐธ๋ฐ์(๋ถํ ๋ถ์ฐ์ฅ์น)์ด๋ค. ๊ฐ ์๋น์ค๋ ์๋์ ์ผ๋ก ๊ณ ์ ๋ IP ์ฃผ์๋ฅผ ๋ถ์ฌ๋ฐ์ผ๋ฉฐ(Cluter IP), ์ด ์ฃผ์๋ก ๋ค์ด์ค๋ ํต์ ์ ์ฒ๋ฆฌํ๋ค.
๋ด๋ถ์ ์ผ๋ก๋ ์ฌ๋ฌ ๊ฐ์ ํ๋๊ฐ ์์ด๋ ๋ฐ์์๋ ํ๋์ IP ์ฃผ์(Cluster IP๋ง ๋ณผ ์ ์์ผ๋ฉฐ, ์ด ์ฃผ์๋ก ์ ๊ทผํ๋ฉด ์๋น์ค๊ฐ ํต์ ์ ์ ์ ํ ๋ถ๋ฐฐํด์ฃผ๋ ๊ตฌ์กฐ๋ค.
์๋ฅผ ๋ค์ด, ์๋ํ๋ ์ค ํ๋๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ์ฅ์ ์๋ํ๋ ์ค๋ก ๋ค์ด์ค๋ ์์ฒญ์ด ํ ํ๋์ ๋ชฐ๋ฆฌ์ง ์๊ฒ๋ ์ ์ ํ ๋ถ๋ฐฐํ๋ค.
ํ์ง๋ง ์๋น์ค๊ฐ ๋ถ๋ฐฐํ๋ ํต์ ์ ํ ์์ปค ๋ ธ๋ ์์ผ๋ก ๊ตญํ๋๋ค. ์ฌ๋ฌ ์์ปค ๋ ธ๋ ๊ฐ์ ๋ถ๋ฐฐ๋ ์ค์ ๋ก๋ ๋ฐธ๋ฐ์ ๋๋ ์ธ๊ทธ๋ ์ค๊ฐ ๋ด๋นํ๋ค. ์ด๋ค์ ๋ง์คํฐ ๋ ธ๋๋ ์์ปค ๋ ธ๋๋ ์๋ ๋ณ๋์ ๋ ธ๋์์ ๋์ํ๊ฑฐ๋ ๋ฌผ๋ฆฌ์ ์ ์ฉ ํ๋์จ์ด๋ค.
๋ ํ๋ฆฌ์นด์ธํธ: ์๋น์ค๊ฐ ์์ฒญ์ ๋ฐฐ๋ถํ๋ ๋ฐ์ฅ์ด๋ผ๋ฉด ๋ ํ๋ฆฌ์นด ์ธํธ๋ ํ๋์ ์๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ์ฅ์ด๋ค. ์ฅ์ ๋ฑ์ ์ด์ ๋ก ํ๋๊ฐ ์ข ๋ฃ๋์ ๋, ๋ชจ์๋ผ๋ ํ๋๋ฅผ ๋ณด์ถฉํ๊ฑฐ๋ ์ ์ ํ์ผ์ ์ ์๋ ํ๋์ ์๊ฐ ๊ฐ์ํ๋ฉด ๊ทธ๋งํผ ํ๋์ ์๋ฅผ ์ค์ ๋ก ๊ฐ์์ํจ๋ค.
ํ๋๋ ํ๋์ ์์ฒญ์ ๋ฐฐ๋ถํ๋ ์๋น์ค๋ผ๋ ๋ฐ์ฅ๊ณผ ํ๋์ ์๋ฅผ ๊ด๋ฆฌํ๋ ๋ ํ๋ฆฌ์นด์ธํธ๋ผ๋ ๋ฐ์ฅ์ ์ํด ๊ด๋ฆฌ๋๋ค.
๋ํ๋ก์ด๋จผํธ: ๋ ํ๋ฆฌ์นด์ธํธ๋ ๋จ๋ ์ผ๋ก ์ฐ์ด๋ ๊ฒฝ์ฐ๊ฐ ๋๋ฌผ๋ค. ์๋ํ๋ฉด ์ํ๋๋๋ก ๋ค๋ฃจ๊ธฐ๊ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ๋ ํ๋ฆฌ์นด ์ธํธ๋ ๋ํ๋ก์ด๋จผํธ์ ํจ๊ป ์ฐ์ผ ๋๊ฐ ๋ง๋ค.
๋ํ๋ก์ด๋จผํธ๋ ํ๋์ ๋ฐฐํฌ(๋ํ๋ก์ด)๋ฅผ ๊ด๋ฆฌํ๋ ์์๋ก, ํ๋๊ฐ ์ฌ์ฉํ๋ ์ด๋ฏธ์ง ๋ฑ ํ๋์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๋ค. ๋ ํ๋ฆฌ์นด ์ธํธ๊ฐ ๋ฐ์ฅ์ด๋ผ๋ฉด ๋ํ๋ก์ด๋จผํธ๋ ๋ฐ์ฅ๋ณด๋ค ์์ ์๋ ์์ฌ๋ค.
ํ๋๊ฐ ์์ด๋ ๊ทธ๋ฃน์ด๊ณ ์ปจํ ์ด๋๋ ๊ฐ์ธ ๋ฉค๋ฒ๋ผ๋ฉด ๋ํ๋ก์ด๋จผํธ๋ ์์์ฌ์ ๋น์ ํ ์ ์๋ค.
๋ฆฌ์์ค: ํ๋, ์๋น์ค, ๋ํ๋ก์ด๋จผํธ, ๋ ํ๋ฆฌ์นด์ธํธ ๋ฑ์ ๋ฆฌ์์ค๋ผ๊ณ ํ๋ค.
ํ๋: ์ปจํ ์ด๋ ๋ฌถ์
์๋น์ค: ํ๋์ ๋ํ ์์ฒญ์ ๊ด๋ฆฌํ๋ ๋ฐ์ฅ - ์์ฒญ ๊ด๋ จ
ํด๋ฌ์คํฐ IP: ๊ฐ ์๋น์ค์ ๋ถ์ฌ๋๋ ๋ํ IP - ์์ฒญ ๊ด๋ จ
๋ ํ๋ฆฌ์นด์ธํธ: ํ๋์ ์๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ์ฅ - ์์ ๊ด๋ จ
๋ํ๋ก์ด๋จผํธ: ๋ ํ๋ฆฌ์นด์ธํธ์ ์์ฌ ๊ฐ์ ๊ฐ๋ ์ผ๋ก, ํ๋์ ๋ฐฐํฌ์ ๊ดํ ์ ๋ณด๋ฅผ ๊ด๋ฆฌ - ์์ ๊ด๋ จ
๋งค๋ํ์คํธ ํ์ผ์ด๋?
ํ๋๋ ์๋น์ค์ ๋ํ ์ค์ ์ ๋งค๋ํ์คํธ๋ผ๊ณ ํ๊ณ , ์ด๋ฅผ ์ ์ ํ์ผ์ ๋งค๋ํ์คํธ ํ์ผ(์ ์ ํ์ผ)์ด๋ผ๊ณ ํ๋ค. ๋งค๋ํ์คํธ ํ์ผ์ YAML ๋๋ JSON ํ์์ผ๋ก ๊ธฐ์ฌํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ ๋งค๋ํ์คํธํ์ผ(์ ์ ํ์ผ)์ ๊ธฐ์ฌ๋ ๋ด์ฉ์ ๋ฐ๋ผ ํ๋๋ฅผ ์์ฑํ๋ค.
๋งค๋ํ์คํธ ํ์ผ์ ๋ด์ฉ์ ์ฟ ๋ฒ๋คํฐ์ค์ ์ ๋ก๋ํ๋ฉด ๊ทธ ๋ด์ฉ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค(etcd)์ ๋ฐ๋์งํ ์ํ๋ก ๋ฑ๋ก๋๋ฉฐ, ์๋ฒ ํ๊ฒฝ์ ์ด ๋ฐ๋์งํ ์ํ๋ก ์ ์งํ๋ค.
๋งค๋ํ์คํธ ์์ฑ
๋ฆฌ์์ค ๋จ์๋ก ์์ฑํ๋ค.
์๋ฅผ ๋ค์ด ๋ํ๋ก์ด๋จผํธ๋ ์๋น์ค ๋จ์๋ก ์์ฑ.
์๋ฅผ ๋ค์ด ์ํ์น ํ๋๋ฅผ ๋ง๋ค๋ ค๋ฉด ์ํ์น ๋ํ๋ก์ด๋จผํธ์ ์ํ์น ์๋น์ค ์ด๋ ๊ฒ ๋ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ์์ฑํ๋ฉด ๋๋ค.
ํ๋๋ ๋จ๋ ์ผ๋ก ๋งค๋ํ์คํธ ํ์ผ์ด ๊ธฐ์ฌ๋๋ ๊ฒฝ์ฐ๊ฐ ๋๋ฌผ๋ฉฐ, ๋๋ถ๋ถ ๋ํ๋ก์ด๋จผํธ์ ํฌํจ๋๋ ํํ๋ก ๊ธฐ์ฌ๋๋ค.
ํ๋ ํญ๋ชฉ์ ์ ๋ง๋ก ํ๋๋ง์ ๋ง๋ค ๋ ์ฌ์ฉํ๋ ํญ๋ชฉ์ด๋ค.
๋ํ๋ก์ด๋จผํธ ํญ๋ชฉ์ ๋ ํ๋ฆฌ์นด ์ธํธ์ ํ๋๊ฐ ํฌํจ๋์ด ์๋ ๊ณ์ธต์ ๊ตฌ์กฐ๋ค.
apiVersion: API ๊ทธ๋ฃน ๋ฐ ๋ฒ์
kind: ๋ฆฌ์์ค ์ ํ
metadata: ๋ฉํ๋ฐ์ดํฐ
spec: ๋ฆฌ์์ค ๋ด์ฉ
๋ฉํ๋ฐ์ดํฐ์ ์คํ
๋งค๋ํ์คํธ ํ์ผ์๋ ๋ฉํ๋ฐ์ดํฐ์ ์คํ์ ๊ธฐ์ฌํ๋ค.
๋ฉํ๋ฐ์ดํฐ์๋ ๋ฆฌ์์ค์ ์ด๋ฆ์ด๋ ๋ ์ด๋ธ์ ๊ธฐ์ฌํ๋ค.
์คํ์ ๋ฆฌ์์ค์ ๋ด์ฉ์ ์ ์ํ๋ค. ์์ฝํ์๋ฉด ์ด๋ค ๋ฆฌ์์ค๋ฅผ ๋ง๋ค ๊ฒ์ธ๊ฐ์ ํด๋นํ๋ ๋ถ๋ถ์ด๋ค.
metadata(๋ฆฌ์์ค์ ์ด๋ฆ, ๋ ์ด๋ธ)
์คํ(์ํ์น ์ปจํ ์ด๋, ๊ฐ์๋ 3๊ฐ..)
๋ ์ด๋ธ๊ณผ ์ ๋ ํฐ
ํ๋๋ ์๋น์ค ๊ฐ์ ๋ฆฌ์์ค์ ์ํ๋ ๋ ์ด๋ธ์ ๋ถ์ผ ์ ์๋ค.
๋ ์ด๋ธ์ ํค-๊ฐ ์์ ํํ๋ก ๋ฉํ๋ฐ์ดํฐ๋ก ์ค์ ํ๋ค. ๋ ์ด๋ธ์ ๋ถ์ฌํ๋ฉด ์ ๋ ํฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํด ํน์ ๋ ์ด๋ธ์ด ๋ถ์ฌ๋ ํ๋๋ง์ ๋ฐฐํฌํ๋ ๋ฑ ํน์ ํ๋๋ฅผ ์ ํํด ์ค์ ํ ์ ์๋ค.
์๋ฅผ ๋ค์ด ํญ๊ท ์์คํ , ๋ฐ๋ค์ฝ๋ผ๋ฆฌ ์์คํ ์ด๋ผ๋ ์๋น์ค๋ฅผ ์ด์ํ๋ ํ์ฌ๊ฐ ๊ณจ๋ ํ์, ์ค๋ฒํ์, ์๋ฃจ๋๋ ํ์์ ๋ฑ๊ธ๋ณ๋ก ํ๋๋ฅผ ๋๋ด๋ค๊ณ ์๊ฐํด๋ณด์. ์ด๋ฅผ ๋ ์ด๋ธ๋ก ๊ด๋ฆฌํ๋ค๋ฉด ํญ๊ท ์์คํ ๊ณผ ๊ด๋ จ๋ ํ๋, ๊ณจ๋ ํ์๊ณผ ๊ด๋ จ๋ ํ๋๋ฅผ ์ง์ ํด ์ก์ ์ ์ทจํ ์ ์๋ค.
system: ํญ๊ท
rank: ๊ณจ๋
system: ๋ฐ๋ค์ฝ๋ผ๋ฆฌ
rank: ์ค๋ฒ
๋ฑ์ด ์์ ๋ [rank: ๊ณจ๋]์ธ ๋ฆฌ์์ค๋ง์ ๋์์ผ๋ก ์ ํํด ์ก์ ์ ์ทจํ ์ ์๋ค.
์ ํ
์ ํ์ ์๋น์ค์ ์ข ๋ฅ๋ฅผ ๋งํ๋ค. ๋ค์ ๋งํด ์ธ๋ถ๋ก๋ถํฐ ์๋น์ค์ ์ด๋ค ์ ํ์ IP ์ฃผ์ (๋๋ DNS)๋ก ์ ๊ทผํ ์ง๋ฅผ ์ค์ ํ๋ค.
1. cluster IP: ํด๋ฌ์คํฐ Ip๋ฅผ ํตํด ์๋น์ค์ ์ ๊ทผํ๋๋ก ํจ
2. nodePort: ์์ปค ๋ ธ๋์ IP๋ฅผ ํตํด ์๋น์ค์ ์ ๊ทผํ๋๋ก ํจ
3. LoadBalancer: ๋ก๋๋ฐธ๋ฐ์์ IP๋ฅผ ํตํด ์๋น์ค์ ์ ๊ทผํ๋๋ก ํจ
4. ExternalName: ํ๋์์ ์๋น์ค๋ฅผ ํตํด ์ธ๋ถ๋ก ๋๊ฐ๊ธฐ ์ํ ์ค์
์ฟ ๋ฒ๋คํฐ์ค ๋ช ๋ น์ด
kubectl
create ์์ฑ
apply ๋ฆฌ์์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์
describe ์์ธ ์ ๋ณด๋ฅผ ํ์ธ
scale ๋ ํ๋ฆฌ์นด ์๋ฅผ ๋ณ๊ฒฝ
rollout ๋กค์์์ ์ํ
exec ์ปจํ ์ด๋์์ ๋ช ๋ น์ ์ํ
run ์ปจํ ์ด๋์์ ๋ช ๋ น์ ํ ๋ฒ ์คํ
attach ์ปจํ ์ด๋์ ์ ์
logs ์ปจํ ์ด๋์ ๋ก๊ทธ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅ
get pods ํ๋์ ๋ชฉ๋ก์ ํ๋ฉด์ ์ถ๋ ฅ
๋งค๋ํ์คํธ ํ์ผ ์์
๋ฉ๋ํ์คํธ ํ์ผ๋ก ํ๋์ ๊ฐ์๋ฅผ ๋๋ฆฌ๋ ค๋ฉด replicas๋ฅผ ์์ ํ๋ฉด ๋๋ค.
๋งค๋ํ์คํธ ํ์ผ๋ก ์ํ์น๋ฅผ nginx๋ก ๋ฐ๊พธ๋ ค๋ฉด image ์ด๋ฆ์ apache์์ nginx๋ก ๋ฐ๊พธ๋ฉด ๋๋ค.
๋ณธ ํฌ์คํ ์ ๊ทธ๋ฆผ๊ณผ ์ค์ต์ผ๋ก ๋ฐฐ์ฐ๋ ๋์ปค & ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
์ฑ ์ ์ ๋ง ์ถ์ฒํฉ๋๋ค.
์ค๋ช ์ด ์ ๋์ ์์ต๋๋ค.
'๐๋คํธ์ํฌ&์๋ฒ > โ๏ธํด๋ผ์ฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํด๋ผ์ฐ๋ ๋ณด์์ ๊ฐ์์ ๊ทธ ์์ธ(1) (0) | 2023.08.02 |
---|---|
๋์ปค ๊ฐ๋ ์ด์ ๋ฆฌ!!! ๊ทธ๋ฆผ๊ณผ ์ค์ต์ผ๋ก ๋ฐฐ์ฐ๋ ๋์ปค & ์ฟ ๋ฒ๋คํฐ์ค (0) | 2023.07.29 |
ํด๋ผ์ฐ๋ 1์ผ์ฐจ Git (4) | 2023.06.14 |