๊ทธ๋์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๋ฉด์ ํท๊ฐ๋ ธ๋ ๋ถ๋ถ์ด๋ ์ฌ์ฉ์ ํ์ง๋ง ์๋ฆฌ๋ฅผ ์์ง ๋ชปํ๋ ๋ถ๋ถ๋ค์ ๋ํด ์ ๋ฆฌํด๋ณด๊ณ ์ ๊ธ์ ์์ฑํ๋ ค๊ณ ํฉ๋๋ค. ์ด ๊ธ์ Kubernetes In Action์ ์ฝ๊ณ ์ฐธ๊ณ ํ์ฌ ์์ฑํ๋ ๊ธ์ ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ด๋ถ ์ํคํ ์ณ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ ์ปจํธ๋กค ํ๋ ์ธ(๋ง์คํฐ ๋ ธ๋)์ ์์ปค ๋ ธ๋๋ก ์ด๋ฃจ์ด์ง๋๋ค. ๋จผ์ ์ปจํธ๋กค ํ๋ ์ธ๋ถํฐ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ปจํธ๋กค ํ๋ ์ธ
์ปจํธ๋กค ํ๋ ์ธ์ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ๊ธฐ๋ฅ์ ์ ์ดํ๋ ์ญํ ์ ํฉ๋๋ค. ์ปจํธ๋กค ํ๋ ์ธ์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์ฑ์์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- API Server
- Scheduler
- Controller Manager
- etcd
์ปจํธ๋กค ํ๋ ์ธ์์ ํด๋น ์์๋ค์ ๊ฐ๋ณ์ ์ธ ํ๋ก์ธ์ค๋ก ๋์ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ฐ ๊ตฌ์ฑ ์์๋ค์ ์ด๋ค ๋ฐฉ์์ผ๋ก ํต์ ์ ํ๊ฒ ๋ ๊น์? ์ ๋ต์ '๋ชจ๋ ๊ตฌ์ฑ์์๋ API ์๋ฒ๋ก๋ง ํต์ ํ๋ค' ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ปจํธ๋กค๋ฌ ๋งค๋์ ๊ฐ etcd์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ API ์๋ฒ๋ฅผ ํตํด ์์ฒญ์ ๋ณด๋ด์ผํฉ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ๊ธฐ๋ฅ์ ์ ์ดํ๊ธฐ ๋๋ฌธ์ ์ปจํธ๋กค ํ๋ ์ธ์ด ์ ๊ธฐ๋ฅ์ ์ํํ์ง ๋ชปํ๋ค๋ฉด ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณธ๋์ ๊ธฐ๋ฅ์ ์ํํ์ง ๋ชปํ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ปจํธ๋กค ํ๋ ์ธ์ด ๋จ์ผ ์คํจ ์ง์ (SPOF)์ด ๋์ง ์๋๋ก ๊ฐ์ฉ์ฑ์ ํ๋ณดํด์ผ ํฉ๋๋ค.
๊ตฌ์ฑ ์์๊ฐ ๊ฐ์ ๋ ธ๋์ ์กด์ฌํด์ผํ๋ ์์ปค ๋ ธ๋์ ๋ค๋ฅด๊ฒ ์ปจํธ๋กค ํ๋ ์ธ์ ๊ตฌ์ฑ ์์๋ ์ฌ๋ฌ ์๋ฒ์ ๊ตฌ์ถ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ฌ ๋ ธ๋์ ์ปจํธ๋กค ํ๋ ์ธ์ ๊ตฌ์ฑ ์์ ์ธ์คํด์ค๋ฅผ ์ฌ๋ฌ๊ฐ ๋์ ๊ฐ์ฉ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด ๋ ์์๋ฌ์ผ ํ ์ ์ etcd์ API ์๋ฒ๋ ์ฌ๋ฌ ์ธ์คํด์ค๋ฅผ ๋์์ ํ์ฑํ์์ผ ๋ณ๋ ฌ๋ก ์คํ์ด ๊ฐ๋ฅํ์ง๋ง, ์ค์ผ์ค๋ฌ์ ์ปจํธ๋กค๋ฌ ๋งค๋์ ๋ ๋๋จธ์ง ์ธ์คํด์ค๋ ๋๊ธฐ ์ํ๋ก ์ ์งํ๋ค๋ ์ ์ ๋๋ค.
๊ทธ๋ผ ๊ฐ ์ปดํฌ๋ํธ๊ฐ ์ด๋ค ์ญํ ์ ๋ด๋นํ๋์ง ์ข ๋ ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
etcd
์ฟ ๋ฒ๋คํฐ์ค์์ ์์ฑ๋ ๋ชจ๋ ์ค๋ธ์ ํธ๋ ์ํ์ ๋ฉ๋ํ์คํธ๋ฅผ ์์์ ์ผ๋ก ์ ์งํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด์ ์ฟ ๋ฒ๋คํฐ์ค๋ ๋ถ์ฐ key-value ์ ์ฅ์์ธ etcd๋ฅผ ์ฌ์ฉํฉ๋๋ค. etcd๋ ๋ถ์ฐ๋ ์ํคํ ์ฒ ํํ๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ๊ณตํ๊ฒ ๋ฉ๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ etcd v2๋ v3๋ฅผ ๋ชจ๋ ์ง์ํ์ง๋ง v3๊ฐ ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ v3๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋ฐ๋ผ์ v3 ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๋๋์ง ์ดํด๋ณด๋ฉด etcd๋ ๊ณ์ธต์ key ๊ตฌ์กฐ๋ฅผ ํตํด ์ฟ ๋ฒ๋คํฐ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด ๋, /registry ์๋์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฒ ๋ฉ๋๋ค.
์์ ๋ง์๋๋ฆฐ ๊ฒ๊ณผ ๊ฐ์ด ์ปจํธ๋กค ํ๋ ์ธ ๋ด๋ถ์ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ API ์๋ฒ๋ฅผ ํตํด์๋ง etcd์ ํต์ ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๊ฒ ๊ฐ์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๋ฉด์ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
- ์ ํจ์ฑ ๊ฒ์ฌ
etcd์ ์ ์ฅํ๊ธฐ ์ API ์๋ฒ๋ฅผ ํตํด ์ ์ฅํ๋ ค๋ ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฆํ ์ ์์ต๋๋ค. - ๋๊ด์ ๋์์ฑ ์ ์ด
๋๊ด์ ๋์์ฑ ์ ์ด๋ ๋ฐ์ดํฐ์ ์ ๊ธ์ ์ค์ ํด ์ ๋ฐ์ดํธ๋ฅผ ๋ง๋ ๋์ ๋ฐ์ดํฐ์ ๋ฒ์ ์ ํฌํจํ๋ ๋ฐฉ์์ ๋๋ค. ๋ง์ฝ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ ๋ฐ์ดํธ๋ฅผ ์ ์ถํ๋ ์ฌ์ด์ ๋ฒ์ ๋ฒํธ๊ฐ ๋ณ๊ฒฝ๋์๋ค๋ฉด ํด๋น ์ ๋ฐ์ดํธ๋ ๊ฑฐ๋ถ๋๊ณ ์ด์ ์ ์ ๋ฐ์ดํธ ๋ ๋ด์ฉ์ ์ฝ๊ณ ๋ค์ ์ ๋ฐ์ดํธ๋ฅผ ์ํํ๊ฒ ๋ฉ๋๋ค.
์ด์ ๋ฐ๋๋๋ ๊ฐ๋ ์ธ ๋น๊ด์ ๋์์ฑ ์ ์ด๋ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ ๋ฐ ์ฝ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ์ฌ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ๊ฐ ์์ ์ ์ํํ์ง ๋ชปํ๋๋ก ํฉ๋๋ค. ํ์ง๋ง ๋๊ด์ ๋์์ฑ ์ ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ์ง ์๊ธฐ๋๋ฌธ์ ์ฑ๋ฅ์ ์ด์ ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค. ๋ํ, ์ด๋ฅผ ํตํด ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ณ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์๊ฒ ํด์ค๋๋ค.
RAFT ํฉ์ ์๊ณ ๋ฆฌ์ฆ
๋ถ์ฐ๋ etcd ํด๋ฌ์คํฐ๋ RAFT ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ฒ ๋ฉ๋๋ค. RAFT ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด ํด๋ฌ์คํฐ์ Split Brain ํ์์ด ๋ฐ์ํ๊ฒ ๋๋ฉด ๊ณผ๋ฐ์๊ฐ ๋๋ ๋ ธ๋๊ฐ ์๋ ์ชฝ๋ง ์ ํจํ ์์ฒญ์ ์ํํ ์ ์๋ค๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. RAFT ํฉ์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ด๋ จ๋ ๋ด์ฉ์ ์ด ๊ธ์ ์ดํด๋ณด์๋ฉด ๋ ์์ธํ ๋ด์ฉ์ ๋ณด์ค ์ ์์ต๋๋ค. ์ถ๊ฐ์ ์ผ๋ก etcd ์ธ์คํด์ค ์๋ฅผ ์ผ๋ฐ์ ์ผ๋ก ํ์๋ก ๋ฐฐํฌํ๊ฒ ๋๋๋ฐ ์ด๋ ์ง์์ธ ๊ฒฝ์ฐ ๊ณผ๋ฐ์ด ์กด์ฌํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
API Server
API Server๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๊ตฌ์ฑ์์๊ฐ ๋ค๋ฅธ ๊ตฌ์ฑ์์์ ํต์ ํ๊ธฐ ์ํด ํ์ํ ์ค์ ๊ตฌ์ฑ์์์ ๋๋ค. API Server๋ ํด๋ฌ์คํฐ์ ๊ด๋ จ๋ ๋ค์ํ REST API๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ API ์๋ฒ์ ๋ฆฌ์์ค ์์ฑ ๋ฐ ์กฐํ์ ์์ฒญ์ ๋ณด๋ด๊ฒ ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋ฉ๋๋ค.
- ์์ฒญ์ ๋ณด๋ธ ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ฆ๋ ํด๋ผ์ด์ธํธ์ธ์ง ํ์ธ
- ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ํ์ฌ ๋ณด๋ธ ์์ฒญ์ ์ํํ ์ ์๋ ๊ถํ์ด ์๋์ง ํ์ธ
- (๋ฆฌ์์ค ์์ฑ ๋ฐ ์์ , ์ญ์ ) ๋ฆฌ์์ค๋ฅผ ๊ธฐ์กด์ ์ ์๋ ํ๋ฌ๊ทธ์ธ์ ํตํด ์์
- ๋ฆฌ์์ค์ ์ ํจ์ฑ์ ํ์ธํ ํ etcd์ ์ ์ฅ
- ๋ฆฌ์์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ํ๊ณ ์๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ์๊ฒ ํต๋ณด
Scheduler
ํด๋ผ์ด์ธํธ๊ฐ Pod์ ์์ฑํ๋ฉด ๋ฆฌ์์ค๋ฅผ ๊ณ ๋ คํด ์ด๋ค ๋ ธ๋์ ๋ฐฐ์น๋ ์ง๋ Scheduler๊ฐ ๊ฒฐ์ ํ๊ฒ ๋ฉ๋๋ค. ์ข ๋ ์์ธํ ๋งํ๋ฉด ์ด๋ค ๋ ธ๋์ ์ค์ผ์ค๋ง ๋ ์ง ๊ฒฐ์ ํ์ฌ Pod์ Spec์ ๋ณ๊ฒฝํ๊ณ ์ด๋ฅผ API ์๋ฒ์๊ฒ ์ ์กํฉ๋๋ค. ์ต์ข ์ ์ผ๋ก API ์๋ฒ๋ ์์ปค ๋ ธ๋์ Kubelet์๊ฒ ์ด ์ ๋ณด๋ฅผ ๋ณด๋์ผ๋ก์จ Pod์ด ํด๋น ๋ ธ๋์์ ์คํ๋ฉ๋๋ค.
Scheduler๋ ๋จผ์ ๋์คํฌ, ๋ฉ๋ชจ๋ฆฌ, ํฌํธ, affinity, taint์ ๊ฐ์ ๋ค์ํ ์กฐ๊ฑด์ ํตํด ์ค์ผ์ค๋ง ๋ ์ ์๋ ๋ ธ๋๋ฅผ ์ ์ ํฉ๋๋ค. ์ด๋ ๊ฒ ์ ์ถ๋ ๋ ธ๋ ๋ชฉ๋ก ์ค ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๊ณ ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๋ ๋ ธ๋์ Pod์ ์ค์ผ์ค๋งํ๊ฒ ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ ์์ ๊ณผ์ ์ ์ํํ๋ ๊ธฐ๋ณธ ์ค์ผ์ค๋ฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋์ง๋ง ์ฌ์ฉ์๊ฐ ์ง์ ์ค์ผ์ค๋ฌ๋ฅผ ๊ตฌํํ๊ฑฐ๋, ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ์ ๊ฐ์ง ์ค์ผ์ค๋ฌ๋ฅผ ๋ฐฐํฌํด ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
Controller Manager
Scheduler๋ฅผ ํตํด Pod์ด ์ค์ผ์ค๋ง ๋์๋ค๋ฉด ๋ค์์ผ๋ก ํด์ผํ๋ ์์ ์ ํด๋น ๋ฆฌ์์ค๋ฅผ ์ํ๋ ์ํ๋ก ๋ง๋๋ ์์ ์ ๋๋ค. ์ฟ ๋ฒ ๋คํฐ์ค์์ ์ด๋ฌํ ์์ ์ ์ํํ๋ ์ปดํฌ๋ํธ๋ฅผ Controller๋ผ๊ณ ํฉ๋๋ค. ์ปจํธ๋กค๋ฌ ๋งค๋์ ๋ ๋ค์ํ ์ปจํธ๋กค๋ฌ๋ค์ ์คํํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค.
Controller
Controller๋ API ์๋ฒ๋ฅผ ํตํด ๋ฆฌ์์ค์ ๋ณ๊ฒฝ์ ๊ฐ์ํ๊ณ ๋ณ๊ฒฝํ๋ ์์ ์ ๋ด๋นํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์ ์ธํ Spec์ผ๋ก ์กฐ์ ํ๋ฉฐ ์๋กฌ๊ฒ ๋ณ๊ฒฝ๋ ์ํ๋ฅผ Status์ ์ ์ฅํฉ๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ ๋ค์ํ Controller๊ฐ ์กด์ฌํฉ๋๋ค. (ex. Deployment, ReplicaSet, StatefulSet ๋ฑ)
Worker Node
์์ปค ๋ ธ๋๋ ์ค์ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ ๋ ธ๋๋ก kubelet๊ณผ kube-proxy๋ผ๋ ๊ตฌ์ฑ์์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Kubelet
Scheduler์ ์ํด Pod์ด ์ค์ผ์ค๋ง๋๋ฉด API ์๋ฒ๋ Kubelet์๊ฒ Pod์ ์์ฑํ๋ผ๋ ์์ฒญ์ ๋ณด๋ ๋๋ค. ์ด ์์ฒญ์ ๋ฐ์ Kubelet์ ์ง์ ๋ ์ปจํ ์ด๋ ๋ฐํ์๊ณผ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํด ์ปจํ ์ด๋๋ฅผ ์์ฑํฉ๋๋ค. ๋ํ, ์คํ ์ค์ธ ์ปจํ ์ด๋๋ฅผ ๋ชจ๋ํฐ๋งํ๋ฉฐ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ API ์๋ฒ์๊ฒ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค. ์ถ๊ฐ๋ก Liveness Probe๊ฐ ์ค์ ๋์ด ์๋ ๊ฒฝ์ฐ, ์ปจํ ์ด๋๋ฅผ ์ฌ์์ํ๋ ์ญํ ๋ kubulet์์ ๋ด๋นํฉ๋๋ค.
Kube-Proxy
Kube-Proxy๋ ์๋น์ค์ IP ๋ฐ ํฌํธ๋ก ๋ค์ด์จ ์ ์์ ์๋น์ค์ ์๋ํฌ์ธํธ์ ํด๋นํ๋ Pod์ ์ฐ๊ฒฐํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค. Proxy๋ผ๋ ์ด๋ฆ์ด ๋ถ์ ์ด์ ๋ ์ด๊ธฐ ์ฟ ๋ฒ๋คํฐ์ค ๋ฒ์ ์์ kube-proxy๋ userspace์์ ๋์ํ๋ ํ๋ก์์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ง๋ง ํ์ฌ๋ ์ฑ๋ฅ์ด ๋ ์ฐ์ํ iptables ํ๋ก์ ๋ชจ๋๋ก ์ํ๋ฉ๋๋ค. ์ด์ ๊ด๋ จ๋ ๋ด์ฉ์ ์ปคํผ๊ณ ๋๋์ ๊ธ์ ํตํด ์์ธํ ๋ด์ฉ์ ํ์ธํ์ค ์ ์์ต๋๋ค. (์ฟ ๋ฒ๋คํฐ์ค์ ๋คํธ์ํฌ์ ๊ด๋ จ๋ ๋ด์ฉ์ ๋ค์ ๊ธ์์ ๋ค๋ค๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.)
Deployment ์์ฑ ๊ณผ์ ์ดํด๋ณด๊ธฐ
๋ง์ง๋ง์ผ๋ก ์ด๋ฌํ ์ฟ ๋ฒ๋คํฐ์ค์ ์ปดํฌ๋ํธ๋ค์ด ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด ๋์ํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. ์์๋ ์ผ๋ฐ์ ์ผ๋ก ์์ฑํ๋ Deployment๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค. ๋ฉ๋ํ์คํธ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฌธ์์ ๋์์๋ Nginx Deployment ์์๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
kubectl get events๋ฅผ ํตํด ๋ด๋ถ์ ์ผ๋ก ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ฅผ ํ์ธํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ก๊ทธ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ด๋ฅผ ํตํด ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ์ํํจ์ ์ ์ ์์ต๋๋ค.
- ์์ฒญ์ ๋ณด๋ด๊ฒ ๋๋ฉด Deployment Controller๊ฐ ์๋กญ๊ฒ ์์ฑ๋ Deployment Manifest๋ฅผ ๋ฐ๊ฒฌํ๊ณ ํด๋น ์ ๋ณด๋ฅผ ํตํด ReplicaSet์ ์์ฑํฉ๋๋ค.
- ReplicaSet์ ์์ฑ์ด ๊ฐ์ง๋๋ฉด ReplicaSet Controller๋ ReplicaSet์ Pod Template์ ๊ธฐ๋ฐ์ผ๋ก Pod์ ์์ฑํฉ๋๋ค.
- Scheduler๋ ์ ํฉํ ๋ ธ๋์ Pod์ ์ค์ผ์ค๋งํฉ๋๋ค.
- Kubelet์ Pod์ ์ปจํ ์ด๋ ๋ฐํ์๊ณผ ์ด๋ฏธ์ง๋ฅผ ํตํด ์ปจํ ์ด๋๋ฅผ ์คํํฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ Kubernetes์ ๋ด๋ถ ์ปดํฌ๋ํธ์ ๋ํด ์์๋ณด์์ต๋๋ค. ๋ค์ ๊ธ์์๋ Pod ๋ด๋ถ์ ์ปจํ ์ด๋๋ค์ด ์ด๋ป๊ฒ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ๊ณต์ ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ฟ ๋ฒ๋คํฐ์ค์์ Pod๊ฐ์ ๋คํธ์ํน๊ณผ ์๋น์ค๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ๋์ํ๋์ง์ ๊ฐ์ด ๋คํธ์ํฌ ๋ถ๋ถ์ ๋ํด์ ๋ค๋ฃจ์ด ๋ณด๊ฒ ์ต๋๋ค.
์ฐธ๊ณ ์๋ฃ
- RAFT ํฉ์ ์๊ณ ๋ฆฌ์ฆ : https://d2.naver.com/helloworld/5663184
- ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํฌ ์ดํดํ๊ธฐ [Service] https://coffeewhale.com/k8s/network/2019/05/11/k8s-network-02/
- Kubernetes In Action
'๐ Kubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Dynamic Admission Controller ์ฌ์ฉํ๊ธฐ (0) | 2021.04.29 |
---|---|
Pinpoint Agent Helm Chart ์์ฑํ๊ธฐ (0) | 2021.03.06 |
Elasticsearch Operator ๊ฐ๋ฐํ๊ธฐ (0) | 2020.12.18 |
Kubernetes Operator (feat. Operator SDK) (0) | 2020.12.18 |
Argo Project๋ฅผ ์ฌ์ฉํ์ฌ CI/CD ๊ตฌ์ถํ๊ธฐ (0) | 2020.12.18 |
๋๊ธ