์ด ๊ธ์ Kubernetes Best Practice๋ฅผ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ์ค์ํ๋ค๊ณ ์๊ฐํ๋ ๋ถ๋ถ๊ณผ ์ ๋ชจ๋ฅด๋ ๋ถ๋ถ์ ๋ํด ๊ณต๋ถํ ๋ด์ฉ์ ์์ฑํ ๊ธ์ ๋๋ค. ๋ชจ๋ ๋ด์ฉ์ ์ฑ ์ ํฌํจ๋์ด ์๋ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ์์ผ๋ฉฐ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ์ ๋ถ๋ค์ ์ฑ ์ ๊ตฌ๋งคํด์ ์ฝ๋ ๊ฒ์ ๊ถ์ฅ๋๋ฆฝ๋๋ค.
์ต๊ทผ ์๋น์ค ๋ฉ์์ ๋ํด ์์๋ณด๊ฑฐ๋ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๊ณ ๊ณต๋ถํ๋ฉด์ ๊ฐ์ฅ ๋ง์ด ๋ค์๋ ์๊ฐ์ ์ด ๋ฐฉ๋ฒ์ด ์ต์ ์ธ๊ฐ? ๋ผ๋ ์๊ฐ์ด์์ต๋๋ค. ์ด์ ๋ํ ๊ถ๊ธ์ฆ์ ํด๊ฒฐํ๋๋ฐ ๋์์ด ๋ ๋งํ ์ฑ ์ ๋ฐ๊ฒฌํด์ ์ฝ์ด๋ณด๊ณ ์ ํฉ๋๋ค.
์ปจํ ์ด๋ ์ด๋ฏธ์ง ๊ฒฝ๋ํ
์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์ต์ ํํ๊ธฐ ์ํ ๊ณ ๋ ค๊ฐ ํ์ํฉ๋๋ค. ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ์์์๋ก registry์์ ๋ค์ด ๋ฐ๋ ์๊ฐ์ด ๊ฐ์ํ์ด ๋ฐฐํฌ ๊ณผ์ ์์ ์์๋๋ ์๊ฐ์ด ์ค์ด๋ค๋ฟ๋ง ์๋๋ผ ๋ถํ์ํ ํจํค์ง๋ฅผ ํฌํจ์ํค์ง ์๊ฒ๋์ด ๋ณด์์ ์ธ ๋ถ๋ถ๋ ๊ฐํ๋ ์ ์์ต๋๋ค. ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ต์ ํํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ์์๋ค์ ๊ณ ๋ คํด์ผํฉ๋๋ค.
- Multistage Build
์ด๋ฏธ์ง ๋น๋ ๊ณผ์ ์ ์ฌ๋ฌ ๋จ๊ณ๋ก ์ ์ํด์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํํ ๋ ํ์ํ ํ์ผ์ด ์๋ ๋น๋ ๋จ๊ณ์ ๊ฐ์ด ์ด์ ๊ณผ์ ์์ ํ์ํ ๋๊ตฌ๋ค์ ์ ๊ฑฐํ๊ณ ์ด๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ๊ฒฝ๋ํํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ณต์๋ฌธ์์์ ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค. - Distroless Image
์ผ๋ฐ์ ์ธ ๋ฐฐํฌํ ๋ฆฌ๋ ์ค์์ ์ ๊ณต๋๋ ํจํค์ง ๋งค๋์ , ์์ด ์กด์ฌํ์ง ์๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์ด๋ฏธ์ง์ ๊ฒฝ๋ํ๋ฟ๋ง ์๋๋ผ CVE์ ๊ฐ์ ๋ณด์ ๋ฌธ์ ์๋ ๋์์ด ๊ฐ๋ฅํฉ๋๋ค. ํ์ง๋ง ๋๋ฒ๊น ๋์ด๋๊ฐ ์ฆ๊ฐํ๋ค๋ ๋จ์ ๋ ์กด์ฌํฉ๋๋ค. - ์ต์ ํ ์ด๋ฏธ์ง
Alpine ๋ฆฌ๋ ์ค์ ๊ฐ์ด ๋๋ฒ๊น ์ ์ํ ์ต์ํ์ ๋๊ตฌ๋ค์ ์ ๊ณตํ๋ ์ด๋ฏธ์ง์ ๋๋ค. ์ด ์ญ์ ์ด๋ฏธ์ง๋ฅผ ๊ฒฝ๋ํ ์ํค๋ฉฐ ๋ถํ์ํ ํจํค์ง์ด ์๊ธฐ ๋๋ฌธ์ ๋ณด์ ์ํ๋ ๋ฎ์ถ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ์ด๋ฏธ์ง ํ๊ทธ
CI ๋จ๊ณ์์ ์์ค์ฝ๋๊ฐ ์ปค๋ฐ๋๋ฉด ํ ์คํธ๋ฅผ ์ํํ ํ์ CD๋ฅผ ์งํํ๊ธฐ ์ํ ๋์ปค ์ด๋ฏธ์ง ๋น๋ ๊ณผ์ ์ด ์กด์ฌํฉ๋๋ค. ์ด ๋ ์ด๋ฏธ์ง์ ๋ฒ์ ์ ์ฝ๊ฒ ์๋ณํ๊ธฐ ์ํด ์ ์ ํ ์ด๋ฏธ์ง ํ๊ทธ ์ ๋ต์ ์๋ฆฝํด์ผ ํฉ๋๋ค. ๊ฐ์ฅ ์ค์ํ ์ ์ latest ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์์์ผ ํ๋ค๋ ์ ์ ๋๋ค. latest๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์๋ก์ด ๋ฒ์ ์ด ์ด๋ค ๋ถ๋ถ์ด ์์ ๋ ๋ฒ์ ์ธ์ง ํ์ ํ๊ธฐ ์ด๋ ต๊ณ , ๋กค๋ฐฑ ์ค๋ฅ๋ฅผ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ๋ ์กด์ฌํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ํ๊ทธ ์ ๋ต์ ์ฌ์ฉํฉ๋๋ค.
- (๋น๋ ์์คํ )-BuildID
- Commit Hash
๋ฐฐํฌ
์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ ๋ถ๋ณ ๊ฐ์ฒด๋ก ๋ค๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐฐํฌํจ์ ์์ด ํ๊ฒฝ์ ๋ถ์ผ์น๋ก ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌํ๋ ์ ๋ต์ผ๋ก ๋ค์ํ ์ ๋ต์ด ์กด์ฌํฉ๋๋ค.
- RollingUpdate
Pod์ ์ ์ง์ ์ผ๋ก ์๋ก์ด ๋ฒ์ ์ผ๋ก ๊ต์ฒดํจ์ผ๋ก์จ ์ ๋ฐ์ดํธ๊ฐ ์๋น์ค ์ค๋จ ์์ด ์ด๋ฃจ์ด์ง ์ ์๋๋ก ํด์ค๋๋ค. ๋ํ, maxSurge๋ maxUnavailable๊ณผ ๊ฐ์ ์ต์ ์ ํตํด ํ ๋ฒ์ ์ ๋ฐ์ดํธ ํ ์ต๋ ๋ ํ๋ฆฌ์นด ์, ์ ๋ฐ์ดํธ ์ฌ์ฉํ ์ ์๋ ์ต๋ ๋ ํ๋ฆฌ์นด ์ ๋ฑ์ ์ ์ดํ ์ ์์ต๋๋ค.
๋ง์ฝ ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ฒ์ ์ ๋ฐ์ดํธ ๋์์ผ๋ก ์ ํ๋ Pod์ ์ ๊ทผํ์ฌ ํต์ ํ๋ ๊ฒฝ์ฐ, ์ฐ๊ฒฐ์ด ๋น์ ์์ ์ผ๋ก ๋์ด์ง๊ฑฐ๋ ์์ง ์ค๋น๊ฐ ๋์ง ์์ ์๋ก์ด Pod์ ์ฐ๊ฒฐ๋ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํฉ๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด readinessProbe๋ฅผ ํตํด ์๋ก ๋ฐฐํฌ๋ Pod์ด ์๋น์ค๋ฅผ ์ ๊ณตํ ์ค๋น๊ฐ ๋๋์ง ํ์ธํด์ผ ํ๊ณ , preStop hook์ ํตํด ํ์ฌ ์ข ๋ฃ๋๋ Pod์ ์ฐ๊ฒฐ์ ๋๋ ์์ ์ ๋ณด์ฅํด์ผ ํฉ๋๋ค.
๋กค๋ง ์ ๋ฐ์ดํธ๋ฅผ ์งํํ๋ฉด์ ๋ ํ๊ฐ์ง ๊ณ ๋ คํ ์ ์ 2๊ฐ์ง ๋ฒ์ ์ด ๋์์ ์ํ๋๊ธฐ ๋๋ฌธ์ DB ์คํค๋ง๋ 2๊ฐ์ง ๋ฒ์ ์ ๋ชจ๋ ์ง์ํด์ผ ํ๋ค๋ ์ ์ ๋๋ค. - Blue/Green
์๋ก์ด ๋ฒ์ ์ ๋ชจ๋ ๋ฐฐํฌํ ์ดํ, ์ํ๋ ์์ ์ ๊ธฐ์กด ํธ๋ํฝ์ ์ค๋จํ๊ณ ์๋ก์ด ๋ฒ์ ์ผ๋ก ํธ๋ํฝ์ ์ ์กํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ ํธ๋ํฝ์ด ๋ณ๊ฒฝ๋๋ ์์ ์ ํต์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ก์ด ๋ฒ์ ์ ํธ๋ํฝ์ ๋ณด๋ด๊ธฐ ์ ๊น์ง ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ์ถ์ ํ๊ธฐ ์ฉ์ดํฉ๋๋ค. ๋ํ ๊ธฐ์กด ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑ๋ ์ฉ์ดํ๋ค๋ ์ฅ์ ์ด ์กด์ฌํฉ๋๋ค. ํ์ง๋ง, ๊ธฐ์กด ๋ฒ์ / ์๋ก์ด ๋ฒ์ ์ ๋ํ ์ปจํ ์ด๋๊ฐ ๋ชจ๋ ๋ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฉ๋ ์ธก๋ฉด์์ ๋ถ๋ด์ด ๋ ์ ์์ต๋๋ค. - Canary
์นด๋๋ฆฌ ๋ฐฐํฌ๋ ๋ธ๋ฃจ ๊ทธ๋ฆฐ ๋ฐฐํฌ์ ์ ์ฌํ์ง๋ง ํธ๋ํฝ์ ์กฐ์ ํ๋ค๋ ์ ์ ๋ํด์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ํน์ ์ ์ ์ธต์ด๋ ํน์ ์๋ฒ์๋ง ์๋ก์ด ๋ฒ์ ์ ๋ฐฐํฌํจ์ผ๋ก์จ ์ ์ ๋์์ ํ ์คํธํ๊ณ , ํ ์คํธ๊ฐ ์๋ฃ๋๋ฉด ์ ์ฐจ ํธ๋ํฝ ๋น์จ์ ๋์ด๋ ๋ฐฉ์์ผ๋ก ๋ฐฐํฌ๊ฐ ์งํ๋ฉ๋๋ค. ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด์๋ ์ธ๊ทธ๋ ์ค๋ฅผ ํตํด ํธ๋ํฝ์ ๋ณด๋ค ์ธ๋ฐํ๊ฒ ์ ์ดํ ์ ์๋ ๊ธฐ๋ฅ์ด ์กด์ฌํด์ผํฉ๋๋ค.
Chaos Engineering
์นด์ค์ค ์์ง๋์ด๋ง์ ์ค์ ์ด์ ์์คํ ์ ํ ์คํธ๋ฅผ ์ํํด์ ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
- ๊ฐ์ค์ ์ธ์ฐ๊ณ ์์ ๋ ์ํ ํ์
- ์์คํ ์ ์ํฅ์ ์ฃผ๋ ์ด๋ฒคํธ ์์ง
- ํต์ ๊ทธ๋ฃน ๊ตฌ์ถ ํ ์์ ๋ ์ํ์ ๋น๊ต
- ์คํ์ ์ํํด ๊ฐ์ค ๊ฒ์ฆ
CI/CD ๋ชจ๋ฒ ์ฌ๋ก
- CI๋ฅผ ํตํ ์๋ํ์ ๋น๋ ์๋ ์ต์ ํ๋ฅผ ๋ฌ์ฑํด์ผ ํ๋ค. ๋น๋ ์๋ ์ต์ ํ๋ ๋น ๋ฅธ ํผ๋๋ฐฑ๊ณผ ์ด๋ฅผ ํตํ ์์ฐ์ฑ ํฅ์์ ์ด๋ฃฐ ์ ์๋ค.
- ์ปจํ ์ด๋ ์ด๋ฏธ์ง ์ต์ ํ ์ํ
- CD ๊ณผ์ ์์ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ๊ณผ DB ์คํค๋ง๊ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋๋์ง ๋ฐ๋์ ํ ์คํธ ํ ๊ฒ
'๐ Book Review > ๐ Kubernetes Best Practice' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kubernetes Best Practice] 8. ๋ฆฌ์์ค ๊ด๋ฆฌ (0) | 2021.03.01 |
---|---|
[Kubernetes Best Practice] 6. ๋ฒ์ , ๋ฆด๋ฆฌ์ค, ๋กค์์ (0) | 2021.03.01 |
[Kubernetes Best Practice] 4. ์ค์ , ์ํฌ๋ฆฟ, RBAC (0) | 2021.02.22 |
[Kubernetes Best Practice] 3. ๋ชจ๋ํฐ๋ง๊ณผ ๋ก๊น (0) | 2021.02.14 |
[Kubernetes Best Practice] 2. ๊ฐ๋ฐ์ ์ํฌํ๋ก (0) | 2021.01.31 |
๋๊ธ