์ด ๊ธ์ Kubernetes Best Practice๋ฅผ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ์ค์ํ๋ค๊ณ ์๊ฐํ๋ ๋ถ๋ถ๊ณผ ์ ๋ชจ๋ฅด๋ ๋ถ๋ถ์ ๋ํด ๊ณต๋ถํ ๋ด์ฉ์ ์์ฑํ ๊ธ์ ๋๋ค. ๋ชจ๋ ๋ด์ฉ์ ์ฑ ์ ํฌํจ๋์ด ์๋ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ์์ผ๋ฉฐ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ์ ๋ถ๋ค์ ์ฑ ์ ๊ตฌ๋งคํด์ ์ฝ๋ ๊ฒ์ ๊ถ์ฅ๋๋ฆฝ๋๋ค.
์ต๊ทผ ์๋น์ค ๋ฉ์์ ๋ํด ์์๋ณด๊ฑฐ๋ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๊ณ ๊ณต๋ถํ๋ฉด์ ๊ฐ์ฅ ๋ง์ด ๋ค์๋ ์๊ฐ์ ์ด ๋ฐฉ๋ฒ์ด ์ต์ ์ธ๊ฐ? ๋ผ๋ ์๊ฐ์ด์์ต๋๋ค. ์ด์ ๋ํ ๊ถ๊ธ์ฆ์ ํด๊ฒฐํ๋๋ฐ ๋์์ด ๋ ๋งํ ์ฑ ์ ๋ฐ๊ฒฌํด์ ์ฝ์ด๋ณด๊ณ ์ ํฉ๋๋ค.
์ค์ ํ์ผ ๊ด๋ฆฌ
์ฟ ๋ฒ๋คํฐ์ค์์๋ ๋ชจ๋ ๊ฒ์ ์ ์ธ์ ์ผ๋ก ํํํฉ๋๋ค. ์ฆ, ํด๋ฌ์คํฐ์ ์ํ๋ฅผ ์ด๋ป๊ฒ ๋ณ๊ฒฝํ ์ง ๋ช ๋ น์ ์ ๊ทผ์ด ์๋ Desired State๋ฅผ ์ ์ํ๋ ์ ์ธ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ๋ง์ฝ ๋ช ๋ น์ ์ธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ์ํ์ ๋ช ๋ น๋ค์ ๋ํด ์ฌ์ฉ์๊ฐ ์ ์๊ณ ์์ด์ผ์ง๋ง ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง ์ ์ธ์ ์ธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํจ์ผ๋ก์จ ์ฌ์ฉ์๋ ์์ธํ ๋ด์ฉ์ ์์ง ๋ชปํ๋๋ผ๋ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๊ฒ ๋ฉ๋๋ค.
์ด๋ฌํ ์ค์ ๋ค์ ์ผ๋ฐ์ ์ผ๋ก YAML ํ์ผ์ ํตํด ๊ด๋ฆฌ๋์ด์ง๋๋ค. ์ต๊ทผ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ GitOps์ ๊ฒฝ์ฐ ์ด๋ฌํ ์ค์ ํ์ผ๋ค์ด Git๊ณผ ๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ ์งํ๋ ๋ฐฉ๋ฒ์ด๊ณ ์ด๋ฅผ ํตํด ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ด์ ์ธ ๋ณ๊ฒฝ ์ฌํญ ๊ด๋ฆฌ, ๋กค๋ฐฑ ๋ฐ ํ์คํ ๋ฆฌ ์ถ์ ๋ฑ๊ณผ ๊ฐ์ ์ฅ์ ๋ค์ ์ด์ฉํ์ฌ ์ฟ ๋ฒ๋คํฐ์ค ์ค์ ์ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ต๋๋ค.
์ด๋ฏธ์ง ๊ด๋ฆฌ
์ผ๋ฐ์ ์ธ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ถํ๋ ๊ณผ์ ์ Supply Chain Attack์ ์ทจ์ฝํฉ๋๋ค. Supply Chain Attack์ด๋ ์์กด ์ด๋ฏธ์ง์ ์ ์์ ์ธ ๋ชฉ์ ์ผ๋ก ์ฝ๋๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฝ์ ํ์ฌ ์ฌ์ฉ์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋ณด์ ๊ณต๊ฒฉ์ ๊ฐํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ์ ๋ขฐํ ์ ์๋ ์ด๋ฏธ์ง ๊ณต๊ธ์๋ฅผ ํตํด์ ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ถํ๊ฑฐ๋ ์์กด์ฑ์ด ์๋ ์ด๋ฏธ์ง์์๋ถํฐ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฌผ๋ก ํ์์ ๊ฒฝ์ฐ์๋ ๊ตฌ์ถ ์์ ์๊ฐ ๋ฐ ๋์ด๋๊ฐ ์ฆ๊ฐํ๊ฒ ๋๋ค๋ ํ๊ณ๋ ์กด์ฌํฉ๋๋ค.
์ด๋ฏธ์ง ํ๊ทธ์ ๊ดํด์๋ ๋ฒ์ ํ๊ทธ๋ฅผ ๋ณ๊ฒฝํ ์๋ ์์ง๋ง ๋ณ๊ฒฝํ์ง ์๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ ์ด๋ฏธ์ง๊ฐ ๋น๋๋ ์ปค๋ฐ์ SHA ํด์๊ฐ๊ณผ ๋ฒ์ ์ ๊ฒฐํฉํ์ฌ ๋ค์ด๋ฐ์ ํ๋ ๋ฐฉ๋ฒ(ex: v1.0.3-basedq122)์ ์ฌ์ฉํฉ๋๋ค. ๋ํ ํ๊ทธ๋ฅผ ๋ช ์ํ์ง ์์ผ๋ฉด ์ฌ์ฉ๋๋ latest ํ๊ทธ์ ๊ฒฝ์ฐ ์๋ก์ด ์ด๋ฏธ์ง๊ฐ ์์ฑ๋ ๋๋ง๋ค ์ด๋ฏธ์ง ์์ฒด๊ฐ ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ ๋ช ์์ ์ธ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Deployment
์ํ๋ฅผ ์ ์งํ์ง ์๋ Stateless ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ ๋ ๊ณ ๊ฐ์ฉ์ฑ์ ์ํด 2๊ฐ ์ด์์ ๋ ํ๋ฆฌ์นด๋ฅผ ๊ตฌ์ถํ๊ณ ์ด๋ฅผ ReplicaSet์ผ๋ก ๊ด๋ฆฌํ๋ค. ๋ํ ReplicaSet์ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋กค์์์ ๊ด๋ฆฌํ๋ Deployment์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค.
ConfigMap์ ํตํ ์ค์ ๋ถ๋ฆฌ
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ๋, ConfigMap์ ํตํด ์ค์ ์ ๋ถ๋ฆฌํ์ฌ ๋ฐฐํฌํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ป์ ์ ์๋ ์ด์ ์ ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ์ด ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ค์ ์ ๋ณ๊ฒฝ์ด ํ์ํ ๋ ์ค์ ์ด ํตํฉ๋ ์ดํ๋ฆฌ์ผ์ด์ ๋ณด๋ค ๋น ๋ฅด๊ฒ ๋์ํ ์ ์๋ค๋ ์ ์ ๋๋ค.
ํ์ง๋ง ConfigMap์ด ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง๊ณ ๋ด์ฉ๋ง ๋ณ๊ฒฝํ๋ค๊ณ ํด์ ์ด๋ฅผ ์ฌ์ฉํ๋ Deployment๋ ๋ณ๊ฒฝ๋์ง ์๊ณ Pod์ ์ฌ์์ํจ์ผ๋ก์จ ์๋ก์ด ์ค์ ์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ณ๊ฒฝ๋๋ configMap์ ๋ฒ์ ์ ๋ฐ๋ผ ๋ค์ด๋ฐ์ ๋ค๋ฅด๊ฒ ํ๊ณ , ์ด๋ฅผ Deployment์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์์ ๋ฐฉ๋ฒ๊ณผ๋ ๋ฌ๋ฆฌ HeathCheck ๊ธฐ๋ฅ์ ํตํด ์๋์ผ๋ก ๋กค์์๋จ์ผ๋ก ๋ณ๊ฒฝ์ ์๋ํํ ์ ์์ต๋๋ค.
Secret ์ธ์ฆ ๊ด๋ฆฌ
๊ธฐ๋ณธ์ ์ผ๋ก ์ํฌ๋ฆฟ์ ์ํธํ๋์ง ์์ ์ํ๋ก ์ฟ ๋ฒ ๋คํฐ์ค ์์ ์ ์ฅ๋ฉ๋๋ค. Hashcorp์ Vault์ ๊ฐ์ Secret Management ํ๋ก์ ํธ๋ฅผ ์ด์ฉํ์ฌ ์ํฌ๋ฆฟ์ ๋ณด๋ค ์ฉ์ดํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ํฌ๋ฆฟ์ ๊ฒฝ์ฐ ๋ฐฐํฌ ์์ ์ ๋ณผ๋ฅจ์ผ๋ก ๋ง์ดํธ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ์ ๋๋๋ฐ ์ด ๋ tmpfs ๋จ ๊ธฐ๋ฐ์ ํ์ผ ์์คํ ์ผ๋ก ๋ณผ๋ฅจ์ด ์์ฑ๋์ด ๋ง์ดํธ ๋๊ณ , ์ด๋ก ์ธํด ๋ฌผ๋ฆฌ์ ์ธ ํผํด๋ฅผ ์ ๋๋ผ๋ ์ํฌ๋ฆฟ์ด ๋ ธ์ถ๋ ์ํ์ด ์ ๋ค๊ณ ํฉ๋๋ค.
StatefulSet
Statefulํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๊ฒ์ Statelessํ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด๋ค ์กฐ๊ธ ๋ ๋ณต์กํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ Pod์ ์์์ ์ธ ์ฑ์ง์ ๋๋๋ฐ ์ด๋ก์ธํด ์ํ๋ฅผ ์ ์ฅํ๊ธฐ ์ด๋ ต๋ค๋ ํน์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด pod์ด ์ด๋ํ๊ฑฐ๋ ์ฌ์์ํ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ PV๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. StatefulSet์ ์ผ๊ด๋ pod์ ์ด๋ฆ๊ณผ Scaling์ ๋ํ ์์ ์ง์ ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ํตํด ์ผ๊ด์ฑ์ ๋ณด์ฅํฉ๋๋ค.
PV๋ฅผ ํ ๋น๋ฐ๊ธฐ ์ํด PVC๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. ์ฌ์ฉ์๋ ์ด๋ฌํ ์คํ ๋ฆฌ์ง์ ๋ํ ๋ช ์ธ๋ฅผ ์ ํ์ ์์ด ์ถ์ํ ๋ ๋ฆฌ์์ค์ ์์ฒญ์ ๋ณด๋์ผ๋ก PV๋ฅผ ํ ๋น๋ฐ์ ์ ์์ต๋๋ค.
Headless Service
๊ธฐ๋ณธ์ ์ผ๋ก ์๋น์ค๋ ํด๋นํ๋ Pod๋ค์ ๋ํด ๋ก๋๋ฐธ๋ฐ์ฑ์ ์ ์ฉํ์ฌ ํ๋์ Pod์ผ๋ก ํธ๋ํฝ์ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง StatefulSet์ ๊ฒฝ์ฐ ํน์ Pod์ ์ ๊ทผํด์ผ ํ ํ์์ฑ์ด ์กด์ฌํ ์ ์๊ณ ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋ชจ๋ Pod์ ๋ํด ๊ฐ๋ณ์ ์ธ DNS๋ฅผ ์ ๊ณตํ๋ Headless Service๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋จ, Headless Service๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ClusterIP๊ฐ ํ ๋น๋์ง ์์ต๋๋ค.
Helm
ํ๊ฒฝ์ ๋ค์์ฑ์ผ๋ก ์ธํด ์ฟ ๋ฒ๋คํฐ์ค์ ๋ฐฐํฌํด์ผ ํ ๋ฆฌ์์ค์ ์ํ๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํด์ผํ๋ ํ์๊ฐ ์กด์ฌํฉ๋๋ค. VCS ๋ฐ Branch ์ ๋ต์ ํตํด ์ด๋ฅผ ๋ฌ์ฑํ ์๋ ์๊ฒ ์ง๋ง ์ผ๋ฐ์ ์ธ ํด๊ฒฐ์ฑ ์ Template ์์ง์ ์ฌ์ฉํฉ๋๋ค. Template ์์ง์ ๋ํ์ ์ธ ์๋ Helm์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ณํ๋ ๋ถ๋ถ๊ณผ ๋ณํ์ง ์๋ ๋ถ๋ถ์ ๋ํด ๋ถ๋ฆฌํ์ฌ ํ๋์ ์ฐจํธ๋ก ๋ํ๋ด๋ ์ญํ ์ ํฉ๋๋ค. ๋ณํ๋ ๋ถ๋ถ์ ๋ํ ํ๋ผ๋ฏธํฐํ๋ฅผ ํตํด ๋ค์ํ ํ๊ฒฝ์ ์ข ๋ ์์ฝ๊ฒ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
'๐ Book Review > ๐ Kubernetes Best Practice' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kubernetes Best Practice] 6. ๋ฒ์ , ๋ฆด๋ฆฌ์ค, ๋กค์์ (0) | 2021.03.01 |
---|---|
[Kubernetes Best Practice] 5. ์ง์์ ํตํฉ, ํ ์คํธ, ๋ฐฐํฌ (0) | 2021.02.25 |
[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 |
๋๊ธ