Southbridge ์๋ฃจ์ ์ค๊ณ์์ด์ Slurm ๊ต์ฌ์ธ Pavel Selivanov๊ฐ DevOpsConf 2019์์ ํ๋ ์ ํ ์ด์ ์ ํ์ต๋๋ค. ์ด ๊ฐ์ฐ์ Kubernetes "Slurm Mega"์ ๋ํ ์ฌ์ธต ๊ณผ์ ์ฃผ์ ์ค ํ๋์ ๋๋ค.
์ปท ์๋์๋ ๋ณด๊ณ ์์ ์ฌ๋ณธ์ด ์์ต๋๋ค.
์๋ ํ์ธ์, ๋๋ฃ๋ค๊ณผ ๊ทธ๋ค์๊ฒ ๊ณต๊ฐํ๋ ์ฌ๋๋ค์ ๋๋ค. ์ค๋์ ์์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
์ค๋ ๋ณต๋์ ๊ฒฝ๋น์์ด ๋ง์ด ์๋ ๊ฒ์ ๋ณด๋ ๋ณด์ ๋ถ์ผ์ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ทํ์ ๊ด๋ก์ ์ ํํ ์ผ์นํ์ง ์๋๋ค๋ฉด ๋ฏธ๋ฆฌ ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
์ฝ XNUMX๊ฐ์ ์ ์ ์ ๋ ๊ณต๊ฐ Kubernetes ํด๋ฌ์คํฐ ํ๋๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ณต๊ฐ๋ n๋ฒ์งธ ๋ค์์คํ์ด์ค๊ฐ ์๋ค๋ ์๋ฏธ์ด๋ฉฐ, ์ด๋ฌํ ๋ค์์คํ์ด์ค์๋ ํด๋น ๋ค์์คํ์ด์ค์ ๊ฒฉ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ์ฌ์ฉ์๋ ๋ชจ๋ ์๋ก ๋ค๋ฅธ ํ์ฌ์ ์ํด ์์ต๋๋ค. ๊ธ์์, ์ด ํด๋ฌ์คํฐ๋ CDN์ผ๋ก ์ฌ์ฉ๋์ด์ผ ํ๋ค๊ณ ๊ฐ์ ํ์ต๋๋ค. ์ฆ, ๊ทธ๋ค์ ๋น์ ์๊ฒ ํด๋ฌ์คํฐ๋ฅผ ์ ๊ณตํ๊ณ , ๊ฑฐ๊ธฐ์ ์ฌ์ฉ์๋ฅผ ์ ๊ณตํ๊ณ , ๋น์ ์ ๋ค์์คํ์ด์ค๋ก ๊ฐ์ ํ๋ฐํธ๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
์ด์ ํ์ฌ์์๋ ๊ทธ๋ฌํ ์๋น์ค๋ฅผ ํ๋งคํ๋ ค๊ณ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์๋ฃจ์ ์ด ์ ํฉํ์ง ์๋์ง ํ์ธํ๊ธฐ ์ํด ํด๋ฌ์คํฐ๋ฅผ ์ฐ๋ฌ๋ณด๋ผ๋ ์์ฒญ์ ๋ฐ์์ต๋๋ค.
๋๋์ด ํด๋ฌ์คํฐ์ ์์ต๋๋ค. ๋์๊ฒ๋ ์ ํ๋ ๊ถ๋ฆฌ์ ์ ํ๋ ๋ค์์คํ์ด์ค๊ฐ ์ฃผ์ด์ก์ต๋๋ค. ๊ฑฐ๊ธฐ ์ฌ๋๋ค์ ์์ ์ด ๋ฌด์์ธ์ง ์ดํดํ์ต๋๋ค. ๊ทธ๋ค์ Kubernetes์ ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด(RBAC)์ ๋ํด ์ฝ์๊ณ ๋ฐฐํฌ์ ๋ณ๋๋ก ํฌ๋๋ฅผ ์์ํ ์ ์๋๋ก ์ด๋ฅผ ์๊ณกํ์ต๋๋ค. ๋ฐฐํฌ ์์ด Pod๋ฅผ ์์ํ์ฌ ํด๊ฒฐํ๋ ค๊ณ ํ๋ ๋ฌธ์ ๋ ๊ธฐ์ต๋์ง ์์ง๋ง ๊ผญ Pod๋ง ์์ํ๊ณ ์ถ์์ต๋๋ค. ํ์ด์ ๋น๊ธฐ ์ํด ๋๋ ํด๋ฌ์คํฐ์์ ๋ด๊ฐ ๊ฐ์ง ๊ถ๋ฆฌ๊ฐ ๋ฌด์์ธ์ง, ๋ด๊ฐ ํ ์ ์๋ ๊ฒ์ ๋ฌด์์ธ์ง, ๋ฌด์์ ํ ์ ์๋์ง, ํด๋ฌ์คํฐ์์ ๋ฌด์์ ๋ง์ณค๋์ง ์ดํด๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋์์ RBAC์์ ์๋ชป ๊ตฌ์ฑํ ๋ด์ฉ๋ ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค.
XNUMX๋ถ ๋ง์ ํด๋น ํด๋ฌ์คํฐ์ ๊ด๋ฆฌ์๋ฅผ ๋ฐ๊ณ , ๋ชจ๋ ์ธ์ ๋ค์์คํ์ด์ค๋ฅผ ์ดํด๋ณด๊ณ , ๊ฑฐ๊ธฐ์์ ์ด๋ฏธ ์๋น์ค๋ฅผ ๊ตฌ๋งคํ๊ณ ๋ฐฐํฌํ ํ์ฌ์ ์คํ ์ค์ธ ํ๋ก๋์ ํ๋ฐํธ๋ฅผ ๋ณด์์ต๋๋ค. ๋๋ ๋๊ตฐ๊ฐ์ ์์ ๊ฐ์ ๋ฉ์ธ ํ์ด์ง์ ์์ค์ ์ฌ๋ฆฌ๋ ๊ฒ์ ๊ฐ์ ํ ๋ฉ์ถ ์ ์์์ต๋๋ค.
์ ๊ฐ ์ด ์ผ์ ์ด๋ป๊ฒ ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ก๋ถํฐ ์์ ์ ๋ณดํธํ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๋ค์ด ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
ํ์ง๋ง ๋จผ์ ์ ์๊ฐ๋ฅผ ํ๊ฒ ์ต๋๋ค. ์ ์ด๋ฆ์ ํ๋ฒจ ์ ๋ฆฌ๋ฐ๋ ธํ์ ๋๋ค. ์ ๋ Southbridge์ ๊ฑด์ถ๊ฐ์ ๋๋ค. ์ ๋ Kubernetes, DevOps ๋ฐ ๋ชจ๋ ์ข ๋ฅ์ ๋ฉ์ง ๊ฒ๋ค์ ์ดํดํฉ๋๋ค. ์ฌ์ฐ์ค๋ธ๋ฆฌ์ง ์์ง๋์ด๋ค๊ณผ ์ ๋ ์ด ๋ชจ๋ ๊ฒ์ ๊ตฌ์ถํ๊ณ ์ปจ์คํ ๋ ํ๊ณ ์์ต๋๋ค.
์ฃผ์ ํ๋ ์ธ์๋ ์ต๊ทผ์๋ Slurms๋ผ๋ ํ๋ก์ ํธ๋ฅผ ์์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ Kubernetes๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ์ ์๋ ๋ฅ๋ ฅ์ ๋์ค์๊ฒ ์๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ K8์ ์ฌ์ฉํ๋๋ก ๊ฐ๋ฅด์น๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ค๋์ ๋ฌด์จ ์ด์ผ๊ธฐ๋ฅผ ํ ๊น์? ๋ณด๊ณ ์์ ์ฃผ์ ๋ ๋ถ๋ช ํฉ๋๋ค - Kubernetes ํด๋ฌ์คํฐ์ ๋ณด์์ ๊ดํ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ ๋์ด ์ฃผ์ ๊ฐ ๋งค์ฐ ํฌ๋ค๋ ์ ์ ์ฆ์ ๋งํ๊ณ ์ถ์ต๋๋ค. ๋ฐ๋ผ์ ์ ๊ฐ ํ์คํ ์ด์ผ๊ธฐํ์ง ์์ ๋ด์ฉ์ ์ฆ์ ๋ช ํํํ๊ณ ์ถ์ต๋๋ค. ์ธํฐ๋ท์์ ์ด๋ฏธ ์๋ฐฑ ๋ฒ์ด๋ ์ฌ์ฉ๋ ์ง๋ถํ ์ฉ์ด์ ๋ํด์๋ ์ด์ผ๊ธฐํ์ง ์๊ฒ ์ต๋๋ค. ๋ชจ๋ ์ข ๋ฅ์ RBAC ๋ฐ ์ธ์ฆ์.
Kubernetes ํด๋ฌ์คํฐ์ ๋ณด์๊ณผ ๊ด๋ จํ์ฌ ์ ์ ์ ๋๋ฃ๋ค์ด ๊ฒช๋ ๊ณ ํต์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์ ๊ณตํ๋ ๊ณต๊ธ์์ ์ฐ๋ฆฌ์๊ฒ ์ค๋ ํด๋ผ์ด์ธํธ ๋ชจ๋์์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ปจ์คํ ๊ด๋ฆฌ ํ์ฌ์์ ์ฐ๋ฆฌ๋ฅผ ์ฐพ์์จ ๊ณ ๊ฐ์ผ๋ก๋ถํฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ฆ, ๋น๊ทน์ ๊ท๋ชจ๋ ์ค์ ๋ก ๋งค์ฐ ํฌ๋ค.
์ค๋ ์ ๊ฐ ์ด์ผ๊ธฐํ ๋ด์ฉ์ ๋ฌธ์ ๊ทธ๋๋ก ์ธ ๊ฐ์ง์ ๋๋ค.
- ์ฌ์ฉ์ ๊ถํ๊ณผ ํฌ๋ ๊ถํ. ์ฌ์ฉ์ ๊ถํ๊ณผ ํฌ๋ ๊ถํ์ ๋์ผํ์ง ์์ต๋๋ค.
- ํด๋ฌ์คํฐ์ ๋ํ ์ ๋ณด๋ฅผ ์์งํฉ๋๋ค. ์ด ํด๋ฌ์คํฐ์ ํน๋ณํ ๊ถํ์ด ์์ด๋ ํด๋ฌ์คํฐ์์ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์์งํ ์ ์์์ ๋ณด์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
- ํด๋ฌ์คํฐ์ ๋ํ DoS ๊ณต๊ฒฉ. ์ ๋ณด๋ฅผ ์์งํ ์ ์๋ค๋ฉด ์ด๋ค ๊ฒฝ์ฐ์๋ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ํด๋ฌ์คํฐ ์ ์ด ์์์ ๋ํ DoS ๊ณต๊ฒฉ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
์ ๊ฐ ์ธ๊ธํ ๋ ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ์ฌํญ์ ์ ๊ฐ ์ด ๋ชจ๋ ๊ฒ์ ํ ์คํธํ ๊ฒ์ ๋๋ค. ์ด ํ ์คํธ์์๋ ๋ชจ๋ ๊ฒ์ด ์๋ํ๋ค๊ณ ํ์คํ ๋งํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ Kubespray๋ฅผ ์ฌ์ฉํ์ฌ Kubernetes ํด๋ฌ์คํฐ ์ค์น๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ผ์ต๋๋ค. ๋ชจ๋ฅด๋ ์ฌ๋์ด ์๋ค๋ฉด ์ด๋ ์ค์ ๋ก Ansible์ ์ญํ ์งํฉ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ ๋ฌด์ ์ง์์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ข์ ์ ์ ์ด๋์์๋ ๊ตด๋ฆด ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฒ ์กฐ๊ฐ์ด๋ ๊ตฌ๋ฆ ์ด๋๊ฐ์ ๊ตด๋ฆด ์ ์์ต๋๋ค. ํ๋์ ์ค์น ๋ฐฉ๋ฒ์ ์์น์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ ์ฉ๋ฉ๋๋ค.
์ด ํด๋ฌ์คํฐ์๋ Kubernetes v1.14.5๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ณ ๋ คํ ์ ์ฒด ํ๋ธ ํด๋ฌ์คํฐ๋ ๋ค์์คํ์ด์ค๋ก ๋๋์ด์ง๊ณ , ๊ฐ ๋ค์์คํ์ด์ค๋ ๋ณ๋์ ํ์ ์ํ๋ฉฐ, ์ด ํ์ ๊ตฌ์ฑ์์ ๊ฐ ๋ค์์คํ์ด์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ค์์คํ์ด์ค๋ก๋ ์ด๋ํ ์ ์์ผ๋ฉฐ ์์ ์ ๋ค์์คํ์ด์ค๋ก๋ง ์ด๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ์ฒด ํด๋ฌ์คํฐ์ ๋ํ ๊ถํ์ ๊ฐ์ง ํน์ ๊ด๋ฆฌ์ ๊ณ์ ์ด ์์ต๋๋ค.
๊ฐ์ฅ ๋จผ์ ํ ์ผ์ ํด๋ฌ์คํฐ์ ๋ํ ๊ด๋ฆฌ์ ๊ถํ์ ์ป๋ ๊ฒ์ด๋ผ๊ณ ์ฝ์ํ์ต๋๋ค. Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์ค๋จํ ํน๋ณํ ์ค๋น๋ ํฌ๋๊ฐ ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ํด์ผ ํ ์ผ์ ์ด๋ฅผ Kubernetes ํด๋ฌ์คํฐ์ ์ ์ฉํ๋ ๊ฒ๋ฟ์ ๋๋ค.
kubectl apply -f pod.yaml
์ด ํฌ๋๋ Kubernetes ํด๋ฌ์คํฐ์ ๋ง์คํฐ ์ค ํ๋์ ๋์ฐฉํฉ๋๋ค. ๊ทธ ํ์ ํด๋ฌ์คํฐ๋ admin.conf๋ผ๋ ํ์ผ์ ์ฐ๋ฆฌ์๊ฒ ๋ฐํํ ๊ฒ์ ๋๋ค. Cube์์ ์ด ํ์ผ์ ๋ชจ๋ ๊ด๋ฆฌ์ ์ธ์ฆ์๋ฅผ ์ ์ฅํจ๊ณผ ๋์์ ํด๋ฌ์คํฐ API๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก Kubernetes ํด๋ฌ์คํฐ์ 98%์ ๋ํ ๊ด๋ฆฌ์ ์ก์ธ์ค ๊ถํ์ ์ป๋ ๊ฒ์ด ์ผ๋ง๋ ์ฌ์ด์ง์ ๋๋ค.
๋ฐ๋ณตํฉ๋๋ค. ์ด ํฌ๋๋ ์์ ์ ์ ์์ ํ๋์ ์์ ๋ค์์คํ์ด์ค์ ๋ฐฐํฌํ ์ ์๋ ์ก์ธ์ค ๊ถํ์ด ์๋ ํด๋ฌ์คํฐ์ ํ ๊ฐ๋ฐ์๊ฐ ๋ง๋ค์์ผ๋ฉฐ ๋ชจ๋ RBAC์ ์ํด ๊ณ ์ ๋์ด ์์ต๋๋ค. ๊ทธ์๊ฒ๋ ๊ถ๋ฆฌ๊ฐ ์์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ธ์ฆ์๊ฐ ๋ฐํ๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ํน๋ณํ ์ค๋น๋ ํฌ๋์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ด๋ฏธ์ง์์ ์ด๋ฅผ ์คํํฉ๋๋ค. debian:jessie๋ฅผ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค:
tolerations:
- effect: NoSchedule
operator: Exists
nodeSelector:
node-role.kubernetes.io/master: ""
๊ด์ฉ์ด๋ ๋ฌด์์ ๋๊น? Kubernetes ํด๋ฌ์คํฐ์ ๋ง์คํฐ๋ ์ผ๋ฐ์ ์ผ๋ก taint๋ผ๋ ํญ๋ชฉ์ผ๋ก ํ์๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด "๊ฐ์ผ"์ ๋ณธ์ง์ Pod๋ฅผ ๋ง์คํฐ ๋ ธ๋์ ํ ๋นํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๋๊ตฌ๋ ๊ผฌํฌ๋ฆฌ์์ "๊ฐ์ผ"์ ๋ด์ฑ์ด ์์์ ๋ํ๋ด๋ ค๊ณ ํ์ง ์์ต๋๋ค. Toleration ์น์ ์์๋ ์ผ๋ถ ๋ ธ๋์ NoSchedule์ด ์์ผ๋ฉด ์ฐ๋ฆฌ ๋ ธ๋๊ฐ ๊ทธ๋ฌํ ๊ฐ์ผ์ ๋ํด ๋ด์ฑ์ด ์์ผ๋ฉฐ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋งํฉ๋๋ค.
๋ํ ์ฐ๋ฆฌ์ ํ์๋ ๊ด๋ํ ๋ฟ๋ง ์๋๋ผ, ํนํ ๋ง์คํฐ๋ฅผ ๋ชฉํ๋ก ์ผ๊ณ ์ถ์ดํ๋ค๊ณ ๋งํฉ๋๋ค. ์ฃผ์ธ์ ์ฐ๋ฆฌ์๊ฒ ํ์ํ ๊ฐ์ฅ ๋ง์๋ ๊ฒ, ์ฆ ๋ชจ๋ ์ธ์ฆ์๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ nodeSelector๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์คํฐ์ ๋ํ ํ์ค ๋ ์ด๋ธ์ด ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ ธ๋ ์ค์์ ์ ํํ ๋ง์คํฐ์ธ ๋ ธ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
์ด ๋ ์น์ ์ ํตํด ๊ทธ๋ ํ์คํ ๋ง์คํฐ์๊ฒ ์ฌ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ทธ๊ณณ์์ ์ด๋๋ก ํ๋ฝ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋จ์ง ์ฃผ์ธ์๊ฒ ์ค๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์๋ฌด๊ฒ๋ ์ฃผ์ง ์์ ๊ฒ์ ๋๋ค. ๋ค์์๋ ๋ค์ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
hostNetwork: true
hostPID: true
์ฐ๋ฆฌ๊ฐ ์์ํ๋ ํฌ๋๊ฐ ์ปค๋ ๋ค์์คํ์ด์ค, ๋คํธ์ํฌ ๋ค์์คํ์ด์ค ๋ฐ PID ๋ค์์คํ์ด์ค์ ์์นํ๋๋ก ์ง์ ํฉ๋๋ค. ํฌ๋๊ฐ ๋ง์คํฐ์์ ์คํ๋๋ฉด ์ด ๋ ธ๋์ ๋ชจ๋ ์ค์ ๋ผ์ด๋ธ ์ธํฐํ์ด์ค๋ฅผ ๋ณผ ์ ์๊ณ , ๋ชจ๋ ํธ๋ํฝ์ ๋ฃ๊ณ , ๋ชจ๋ ํ๋ก์ธ์ค์ PID๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ทธ๊ฒ์ ์์ ์ผ์ ๋ฌธ์ ์ด๋ค. etcd๋ฅผ ๊ฐ์ง๊ณ ์ํ๋ ๊ฒ์ ์ฝ์ผ์ญ์์ค.
๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์กด์ฌํ๋ Kubernetes ๊ธฐ๋ฅ์ ๋๋ค.
volumeMounts:
- mountPath: /host
name: host
volumes:
- hostPath:
path: /
type: Directory
name: host
๊ทธ๋ฆฌ๊ณ ๊ทธ ํต์ฌ์ ์ด ํด๋ฌ์คํฐ์ ๋ํ ๊ถํ์ด ์๋๋ผ๋ ์ฐ๋ฆฌ๊ฐ ์์ํ๋ ํฌ๋์์ ํธ์คํธ ๊ฒฝ๋ก ์ ํ์ ๋ณผ๋ฅจ์ ์์ฑํ๊ณ ์ถ๋ค๊ณ ๋งํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ฐ๋ฆฌ๊ฐ ์์ํ ํธ์คํธ์ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ธ์์ ๋ณผ๋ฅจ์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฆ์ ํธ์คํธ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ์ด ์ ์ฒด ํธ์คํธ ๊ฒฝ๋ก๋ฅผ ํฌ๋ ๋ด๋ถ์ ๋ง์ดํธํฉ๋๋ค. ์ด ์์์๋ /host ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค.
๋ค์ ๋ฐ๋ณตํ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ํฌ๋์๊ฒ ๋ง์คํฐ๋ก ์์ ๊ฑฐ๊ธฐ์์ ํธ์คํธ ๋คํธ์ํฌ์ ํธ์คํธPID๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ด ํฌ๋ ์์ ๋ง์คํฐ์ ์ ์ฒด ๋ฃจํธ๋ฅผ ๋ง์ดํธํ๋ผ๊ณ ์ง์ํ์ต๋๋ค.
๋ฐ๋น์์์๋ bash๊ฐ ์คํ๋๊ณ ์๊ณ ์ด bash๋ ๋ฃจํธ์์ ์คํ๋๋ค๋ ๊ฒ์ ์ดํดํ์ค ๊ฒ์ ๋๋ค. ์ฆ, Kubernetes ํด๋ฌ์คํฐ์ ๋ํ ๊ถํ ์์ด ๋ง์คํฐ์์ ๋ฃจํธ๋ฅผ ๋ฐฉ๊ธ ๋ฐ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ ์ฒด ์์ ์ ํ์ ๋๋ ํฐ๋ฆฌ /host /etc/kubernetes/pki๋ก ์ด๋ํ๋ ๊ฒ์ ๋๋ค. ์ ๊ฐ ์ฐฉ๊ฐํ ๊ฒ์ด ์๋๋ผ๋ฉด ๊ทธ๊ณณ์์ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ง์คํฐ ์ธ์ฆ์๋ฅผ ์ ํํ์ฌ ๊ทธ์ ๋ฐ๋ผ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์๊ฐ ๋ฉ๋๋ค.
์ด๋ฐ ์์ผ๋ก ์ดํด๋ณด๋ฉด ์ฌ์ฉ์๊ฐ ์ด๋ค ๊ถํ์ ๊ฐ์ง๊ณ ์๋์ง์ ๊ด๊ณ์์ด ํฌ๋์์ ๊ฐ์ฅ ์ํํ ๊ถํ ์ค ์ผ๋ถ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํด๋ฌ์คํฐ์ ์ผ๋ถ ๋ค์์คํ์ด์ค์์ ํฌ๋๋ฅผ ์คํํ ์ ์๋ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ ์ด ํฌ๋์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฌํ ๊ถํ์ด ์์ต๋๋ค. ๊ถํ ์๋ ํฌ๋๋ฅผ ์คํํ ์ ์์ผ๋ฉฐ ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ๊ถํ์ ๊ฐ์ง๋ฉฐ ์ค์ ๋ก ๋ ธ๋์ ๋ฃจํธ์ ๋๋ค.
๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๊ฒ์ ๋ฃจํธ ์ฌ์ฉ์์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ Kubernetes์๋ Run As Non-Root ์ต์ ์ด ์์ต๋๋ค. ์ด๊ฒ์ ํด์ปค๋ก๋ถํฐ์ ์ผ์ข ์ ๋ณดํธ์ ๋๋ค. '๋ชฐ๋ค๋น์ ๋ฐ์ด๋ฌ์ค'๊ฐ ๋ฌด์์ธ์ง ์์๋์? ๊ฐ์๊ธฐ ํด์ปค๊ฐ ๋์ด ๋ด Kubernetes ํด๋ฌ์คํฐ์ ์ค๋ฉด ๋ถ์ํ ๊ด๋ฆฌ์์ธ ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ง๋ฌธํฉ๋๋ค. โ๋ด ํด๋ฌ์คํฐ๋ฅผ ํดํนํ ํฌ๋๋ฅผ ๋ฃจํธ๊ฐ ์๋ ์ฌ์ฉ์๋ก ์คํํ๋๋ก ์ง์ ํ์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฃจํธ๋ก Pod์์ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ฒ ๋์ด ํดํนํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ์ต๋๋ค. ์์ ์ผ๋ก๋ถํฐ ์์ ์ ๋ณดํธํด์ฃผ์ธ์."
์ ์๊ฐ์๋ ํธ์คํธ ๊ฒฝ๋ก ๋ณผ๋ฅจ์ด Kubernetes ํด๋ฌ์คํฐ์์ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค.
ํ์ง๋ง ์ด ๋ชจ๋ ๊ฒ์ ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
Kubernetes๋ฅผ ์ ํ๋ ์ผ๋ฐ ๊ด๋ฆฌ์๋ ๋ค์๊ณผ ๊ฐ์ ์๊ฐ์ ํด์ผ ํฉ๋๋ค. โ์, Kubernetes๋ ์๋ํ์ง ์์ต๋๋ค. ๊ฑฐ๊ธฐ์ ๊ตฌ๋ฉ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ธ ์ ์ฒด๊ฐ ํ์๋ฆฌ์ผ.โ ์ฌ์ค ๋ฌธ์ ๊ฐ์๊ฒ ์๋๋ฐ, ๊ฑฐ๊ธฐ ๋ณด์๋ฉด ์น์
์ด ์์ด์.
์ด๋ Pod ์ค๋ช ์์ ๋ณด์ ์ธก๋ฉด์ ๊ตฌ์ฒด์ ์ผ๋ก ์ ์ดํ๋ โโyaml ๊ฐ์ฒด์ ๋๋ค. Kubernetes ํด๋ฌ์คํฐ์์ ์์ฑํ ์ ์์ต๋๋ค. ์ฆ, ์ค์ ๋ก ์์ ์ ํฌ๋์ ์๋ ๋ชจ๋ ํธ์คํธ ๋คํธ์ํฌ, ํธ์คํธ PID, ํน์ ๋ณผ๋ฅจ ์ ํ์ ์ฌ์ฉํ ์ ์๋ ๊ถํ์ ์ ์ดํฉ๋๋ค. Pod ๋ณด์ ์ ์ฑ ์ ์ฌ์ฉํ๋ฉด ์ด ๋ชจ๋ ๊ฒ์ ์ค๋ช ํ ์ ์์ต๋๋ค.
ํฌ๋ ๋ณด์ ์ ์ฑ ์์ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ์ ์ Kubernetes ํด๋ฌ์คํฐ์์ ๋ชจ๋ PSP ์ค์น ํ๋ก๊ทธ๋จ์ด ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ค๋ช ๋์ง ์๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ํ ๋นํ์ฑํ๋์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ํฌ๋ ๋ณด์ ์ ์ฑ ์ ์น์ธ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ํ์ฑํ๋ฉ๋๋ค.
์ข์ต๋๋ค. ํด๋ฌ์คํฐ์ ํฌ๋ ๋ณด์ ์ ์ฑ ์ ๋ฐฐํฌํด ๋ณด๊ฒ ์ต๋๋ค. ๋ค์์คํ์ด์ค์ ๊ด๋ฆฌ์๋ง ์ก์ธ์คํ ์ ์๋ ์ผ๋ถ ์๋น์ค ํฌ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒฝ์ฐ์๋ Pod์ ์ ํ๋ ๊ถํ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ ํด๋ฌ์คํฐ์์ ๊ถํ ์๋ Pod๋ฅผ ์คํํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์๊ฒ๋ ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ Kubernetes ํด๋ฌ์คํฐ๋ XNUMX๋ถ ์์ ํดํน๋ ์ ์์ต๋๋ค.
๋ฌธ์ ๊ฐ ์์ต๋๋ค. Kubernetes ํด๋ฌ์คํฐ๊ฐ ์๋ ๊ฒฝ์ฐ ํด๋ฌ์คํฐ์ ๋ชจ๋ํฐ๋ง์ด ์ค์น๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ํด๋ฌ์คํฐ์ ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฅ์ด ์์ผ๋ฉด Prometheus๋ผ๊ณ ๋ถ๋ฆด ๊ฒ์ด๋ผ๊ณ ์์ธกํ๊ธฐ๋ ํฉ๋๋ค.
์ ๊ฐ ๋ง์๋๋ฆฌ๊ณ ์ ํ๋ ๋ด์ฉ์ Prometheus ์ด์์์ ์์ํ ํํ๋ก ์ ๊ณต๋๋ Prometheus ๋ชจ๋์ ์ ํจํฉ๋๋ค. ๋ฌธ์ ๋ ๊ด๋ฆฌ์๋ฅผ ํด๋ฌ์คํฐ์ ๊ทธ๋ ๊ฒ ๋นจ๋ฆฌ ํฌํจ์ํฌ ์ ์๋ค๋ฉด ๋ ๋ง์ ๊ฒ์ ์ดํด๋ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ๋ถ์ ๋ชจ๋ํฐ๋ง์ ํตํด ๊ฒ์ํ ์ ์์ต๋๋ค.
์๋ง๋ ๋ชจ๋๊ฐ Habrรฉ์์ ๋์ผํ ๊ธฐ์ฌ๋ฅผ ์ฝ๊ณ ๋ชจ๋ํฐ๋ง์ ๋ชจ๋ํฐ๋ง ๋ค์์คํ์ด์ค์ ์์นํ ๊ฒ์ ๋๋ค. Helm ์ฐจํธ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ๊ฑฐ์ ๋์ผํ๊ฒ ํธ์ถ๋ฉ๋๋ค. ๋๋ helm install stable/prometheus๋ฅผ ์ํํ๋ฉด ๋๋ต ๋์ผํ ์ด๋ฆ์ ์ป๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์ถ์ธกํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ง๋ ํด๋ฌ์คํฐ์ DNS ์ด๋ฆ์ ์ถ์ธกํ ํ์์กฐ์ฐจ ์์ ๊ฒ์ ๋๋ค. ํ์ค์ด๊ธฐ ๋๋ฌธ์ด์ฃ .
๋ค์์ผ๋ก ํน์ ํฌ๋๋ฅผ ์คํํ ์ ์๋ ํน์ ๊ฐ๋ฐ NS๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ํฌ๋์์ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํ๋ ๊ฒ์ ๋งค์ฐ ์ฝ์ต๋๋ค.
$ curl http://prometheus-kube-state-metrics.monitoring
prometheus-kube-state-metrics๋ Kubernetes API ์์ฒด์์ ์งํ๋ฅผ ์์งํ๋ Prometheus ๋ด๋ณด๋ด๊ธฐ ์ค ํ๋์ ๋๋ค. ๊ฑฐ๊ธฐ์๋ ํด๋ฌ์คํฐ์์ ์คํ ์ค์ธ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์ธ์ง, ํด๋ฌ์คํฐ์ ์ด๋ค ๋ฌธ์ ๊ฐ ์๋์ง ๋ฑ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค.
๊ฐ๋จํ ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
kube_pod_container_info{namespace=โkube-systemโ,pod=โkube-apiserver-k8s- 1โณ,container=โkube-apiserverโ,image=
"gcr.io/google-containers/kube-apiserver:v1.14.5"
,image_id=ยปdocker-pullable://gcr.io/google-containers/kube- apiserver@sha256:e29561119a52adad9edc72bfe0e7fcab308501313b09bf99df4a96 38ee634989โณ,container_id=ยปdocker://7cbe7b1fea33f811fdd8f7e0e079191110268f2 853397d7daf08e72c22d3cf8bยป} 1
๊ถํ์ด ์๋ Pod์์ ๊ฐ๋จํ ์ปฌ ์์ฒญ์ ํ๋ฉด ๋ค์ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์คํ ์ค์ธ Kubernetes ๋ฒ์ ์ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ์ฝ๊ฒ ์๋ ค์ค ๊ฒ์ ๋๋ค.
๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ์ ์ kube-state-metrics์ ์ก์ธ์คํ๋ ๊ฒ ์ธ์๋ Prometheus ์์ฒด์ ์ง์ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ฑฐ๊ธฐ์์ ์ธก์ ํญ๋ชฉ์ ์์งํ ์ ์์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ์ธก์ ํญ๋ชฉ์ ์์ฑํ ์๋ ์์ต๋๋ค. ์ด๋ก ์ ์ผ๋ก๋ Prometheus์ ํด๋ฌ์คํฐ์์ ์ด๋ฌํ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ฉด ๊ฐ๋จํ ๊บผ์ง ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ํฐ๋ง์ด ํด๋ฌ์คํฐ์์ ์์ ํ ์๋ํ์ง ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ธ๋ถ ๋ชจ๋ํฐ๋ง์ด ๊ทํ์ ๋ชจ๋ํฐ๋ง์ ๋ชจ๋ํฐ๋งํ๋์ง ์ฌ๋ถ์ ๋ํ ์๋ฌธ์ด ์ ๊ธฐ๋ฉ๋๋ค. ๋ฐฉ๊ธ ์๋ฌด๋ฐ ๊ฒฐ๊ณผ ์์ด Kubernetes ํด๋ฌ์คํฐ์์ ์์ ํ ์ ์๋ ๊ธฐํ๋ฅผ ์ป์์ต๋๋ค. ๋ ์ด์ ๋ชจ๋ํฐ๋ง์ด ์๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ๊ทธ๊ณณ์์ ํ๋ํ๊ณ ์๋ค๋ ์ฌ์ค์กฐ์ฐจ ๋ชจ๋ฅผ ๊ฒ์ ๋๋ค.
PSP์ ๋ง์ฐฌ๊ฐ์ง๋ก Kubernetes, Prometheus์ ๊ฐ์ ๋ฉ์ง ๊ธฐ์ ์ด ๋ชจ๋ ์๋ํ์ง ์๊ณ ํ์ ์ผ๋ก ๊ฐ๋ ์ฐจ ์๋ค๋ ๊ฒ์ด ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ค๋ง.
๊ทธ๋ฐ๊ฒ ์์ด์ -
์ผ๋ฐ ๊ด๋ฆฌ์๋ผ๋ฉด ์ด๊ฒ์ด ๋จ์ง ๋ ๋ค๋ฅธ yaml์ด๋ฉฐ ํด๋ฌ์คํฐ์ ์ด๋ฏธ ๋ง์ yaml์ด ์๋ค๋ ๊ฒ์ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ํด ์๊ณ ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ๋ถ ๋คํธ์ํฌ ์ ์ฑ ์ ๊ผญ ํ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ ์ ์ฑ ์ด Kubernetes์ yaml ๋ฐฉํ๋ฒฝ์ด๋ผ๋ ๊ฒ์ ์ฝ์ด๋ณด๋๋ผ๋ ์ด๋ฅผ ํตํด ๋ค์์คํ์ด์ค ๊ฐ, ํฌ๋ ๊ฐ ์ก์ธ์ค ๊ถํ์ ์ ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด Kubernetes์ yaml ํ์ ๋ฐฉํ๋ฒฝ์ด ๋ค์ ์ถ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๊ณ ํ์คํ ๊ฒฐ์ ํ์ จ์ ๊ฒ์ ๋๋ค. ... ์๋, ์๋. ์ด๊ฒ์ ํ์คํ ํ์ํ์ง ์์ต๋๋ค.
๋ณด์ ์ ๋ฌธ๊ฐ์๊ฒ Kubernetes๋ฅผ ์ฌ์ฉํ๋ฉด ๋งค์ฐ ์ฝ๊ณ ๊ฐ๋จํ๋ฉฐ ๋งค์ฐ ์ธ๋ถํ๋ ๋ฐฉํ๋ฒฝ์ ๊ตฌ์ถํ ์ ์๋ค๋ ์ฌ์ค์ ๋งํ์ง ์์๋๋ผ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋ค์ด ์์ง ์ด๊ฒ์ ๋ชจ๋ฅด๊ณ ๋น์ ์ ๊ดด๋กญํ์ง ์๋๋ค๋ฉด: "๊ธ์, ์ฃผ์ธ์, ์ฃผ์ธ์..." ๊ทธ๋ฌ๋ฉด ์ด์จ๋ ํด๋ฌ์คํฐ์์ ๊ฐ์ ธ์ฌ ์ ์๋ ์ผ๋ถ ์๋น์ค ์์น์ ๋ํ ์ก์ธ์ค๋ฅผ ์ฐจ๋จํ๋ ๋คํธ์ํฌ ์ ์ฑ ์ด ํ์ํฉ๋๋ค. ์ด๋ค ์น์ธ๋ ์์ด.
์ ๊ฐ ์ ์ํ ์์์์ ๊ฐ์ด ๊ถํ ์์ด๋ Kubernetes ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ค์์คํ์ด์ค์์ kube ์ํ ๋ฉํธ๋ฆญ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๋คํธ์ํฌ ์ ์ฑ ์ ๋ค๋ฅธ ๋ชจ๋ ๋ค์์คํ์ด์ค์์ ๋ชจ๋ํฐ๋ง ๋ค์์คํ์ด์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์ฐจ๋จํ์ต๋๋ค. ์ฆ, ์ก์ธ์ค๊ฐ ๋ถ๊ฐ๋ฅํ๊ณ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์กด์ฌํ๋ ๋ชจ๋ ์ฐจํธ์๋ ํ์ค Prometheus์ Operator์ ์๋ Prometheus ๋ชจ๋ ๋จ์ํ ๋คํธ์ํฌ ์ ์ฑ ์ ํ์ฑํํ๊ธฐ ์ํ helm ๊ฐ์ ์ต์ ๋ง ์์ต๋๋ค. ์ ์์ ์ผ๊ธฐ๋ง ํ๋ฉด ์๋ํฉ๋๋ค.
์ฌ๊ธฐ์๋ ์ ๋ง ํ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์์ผ ๊ด๋ฆฌ์๋ผ๋ฉด ๋คํธ์ํฌ ์ ์ฑ ์ด ํ์ํ์ง ์๋ค๊ณ ํ๋จํ์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Habr๊ณผ ๊ฐ์ ๋ฆฌ์์ค์ ๋ํ ๋ชจ๋ ์ข ๋ฅ์ ๊ธฐ์ฌ๋ฅผ ์ฝ์ ํ ํนํ ํธ์คํธ ๊ฒ์ดํธ์จ์ด ๋ชจ๋์ ๊ฒฝ์ฐ ํ๋๋ฌ์ด ์ ํํ ์ ์๋ ์ต์ ์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ๊ฒฐ์ ํ์ต๋๋ค.
๋ฌด์์ํด์ผ ํ๋๊ฐ?
Kubernetes ํด๋ฌ์คํฐ์ ์๋ ๋คํธ์ํฌ ์๋ฃจ์ ์ ์ฌ๋ฐฐํฌํ๊ณ ๋ ๊ธฐ๋ฅ์ ์ธ ์๋ฃจ์ ์ผ๋ก ๊ต์ฒดํด ๋ณผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋์ผํ Calico์ ๊ฒฝ์ฐ. ํ์ง๋ง Kubernetes ์์ ํด๋ฌ์คํฐ์์ ๋คํธ์ํฌ ์๋ฃจ์ ์ ๋ณ๊ฒฝํ๋ ์์ ์ ๋งค์ฐ ๊ฐ๋จํ์ง ์๋ค๋ ์ ์ ๋ฐ๋ก ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ๋๋ ์ด ๋ฌธ์ ๋ฅผ ๋ ๋ฒ ํ์์ง๋ง(๋ ๋ฒ ๋ชจ๋ ์ด๋ก ์ ์ผ๋ก๋) Slurms์์ ๊ทธ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๊ธฐ๋ ํ์ต๋๋ค. ํ์๋ค์ ์ํด Kubernetes ํด๋ฌ์คํฐ์์ ๋คํธ์ํฌ ์๋ฃจ์ ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ์์น์ ์ผ๋ก ํ๋ก๋์ ํด๋ฌ์คํฐ์ ๊ฐ๋ ์ค์ง ์๊ฐ์ด ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ํ์ง๋ง ์๋ง๋ ์ฑ๊ณตํ์ง ๋ชปํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ ์ค์ ๋ก ๋งค์ฐ ๊ฐ๋จํ๊ฒ ํด๊ฒฐ๋ฉ๋๋ค. ํด๋ฌ์คํฐ์ ์ธ์ฆ์๊ฐ ์์ผ๋ฉฐ ์ธ์ฆ์๊ฐ XNUMX๋ ํ์ ๋ง๋ฃ๋๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ธ์, ์ผ๋ฐ์ ์ผ๋ก ํด๋ฌ์คํฐ์ ์ธ์ฆ์๊ฐ ์๋ ์ผ๋ฐ์ ์ธ ์๋ฃจ์ ์ ๋๋ค. ์ ๊ฑฑ์ ํฉ๋๊น? ๊ทผ์ฒ์ ์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค๊ณ ์ด์ ํด๋ฌ์คํฐ๋ฅผ ์ฉ๊ฒ ๋๊ณ ๋ชจ๋ ๊ฒ์ ์ฌ๋ฐฐํฌํ ๊ฒ์ ๋๋ค. ์ฌ์ค, ๊ทธ๊ฒ์ด ์ฉ์ผ๋ฉด ํ๋ฃจ ๋์ ์์ ์์ด์ผ ํ์ง๋ง ์ฌ๊ธฐ์ ์๋ก์ด ํด๋ฌ์คํฐ๊ฐ ์์ต๋๋ค.
์ ํด๋ฌ์คํฐ๋ฅผ ํค์ธ ๋ ๋์์ ํ๋๋ฌ ๋์ ์ฅ์๋ชฉ์ ์ฝ์ ํ์ญ์์ค.
์ธ์ฆ์๊ฐ XNUMX๋ ๋์ ๋ฐ๊ธ๋์๊ณ ํด๋ฌ์คํฐ๋ฅผ ์ฌ๋ฐฐํฌํ์ง ์์ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? Kube-RBAC-Proxy์ ๊ฐ์ ๊ฒ์ด ์์ต๋๋ค. ์ด๋ ๋งค์ฐ ๋ฉ์ง ๊ฐ๋ฐ์ ๋๋ค. Kubernetes ํด๋ฌ์คํฐ์ ๋ชจ๋ ํฌ๋์ ์ฌ์ด๋์นด ์ปจํ ์ด๋๋ก ํฌํจํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก Kubernetes ์์ฒด์ RBAC๋ฅผ ํตํด ์ด Pod์ ๊ถํ์ ์ถ๊ฐํฉ๋๋ค.
ํ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด์ ์๋ ์ด Kube-RBAC-Proxy ์๋ฃจ์
์ด ์ด์์์ Prometheus์ ๋ด์ฅ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ์ฌ๋ผ์ก์ต๋๋ค. ์ด์ ์ต์ ๋ฒ์ ์ ๋คํธ์ํฌ ์ ์ฑ
์ด ์๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ข
๋ฃํ๋ค๋ ์ฌ์ค์ ์์กดํฉ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ฐ๋ฆฌ๋ ์ฐจํธ๋ฅผ ์กฐ๊ธ ๋ค์ ์์ฑํด์ผ ํ ๊ฒ์
๋๋ค. ์ฌ์ค ๊ฐ๋ณด๋ฉด
์์ ๋ฌธ์ ๊ฐ ํ๋ ๋ ์์ต๋๋ค. Prometheus๋ ๋๊ตฌ์๊ฒ๋ ์ธก์ ํญ๋ชฉ์ ์ ๋ฌํ๋ ์ ์ผํ ์ ์ฒด๊ฐ ์๋๋๋ค. ๋ชจ๋ Kubernetes ํด๋ฌ์คํฐ ๊ตฌ์ฑ ์์๋ ์์ฒด ์ธก์ ํญ๋ชฉ์ ๋ฐํํ ์๋ ์์ต๋๋ค.
ํ์ง๋ง ์ด๋ฏธ ๋งํ๋ฏ์ด ํด๋ฌ์คํฐ์ ์ก์ธ์คํ์ฌ ์ ๋ณด๋ฅผ ์์งํ ์ ์๋ค๋ฉด ์ต์ํ ์ด๋ ์ ๋ ํด๋ฅผ ๋ผ์น ์๋ ์์ต๋๋ค.
๋ฐ๋ผ์ Kubernetes ํด๋ฌ์คํฐ๊ฐ ์ด๋ป๊ฒ ๋ง๊ฐ์ง ์ ์๋์ง ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋น ๋ฅด๊ฒ ๋ณด์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ด๊ฐ ์ด๊ฒ์ ๋งํ๋ฉด ๋น์ ์ ์์ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ๋ ๊ฐ์ง ์ค์ ์ฌ๋ก์ ๋๋ค.
๋ฐฉ๋ฒ XNUMX. ์์ ๊ณ ๊ฐ.
๋ ๋ค๋ฅธ ํน๋ณํ ํฌ๋๋ฅผ ์ถ์ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฐ ๋ถ๋ถ์ด ์์ ๊ฒ๋๋ค.
resources:
requests:
cpu: 4
memory: 4Gi
์์๋ค์ํผ ์์ฒญ์ ์์ฒญ์ด ์๋ ํน์ Pod์ ๋ํด ํธ์คํธ์ ์์ฝ๋ CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์ ๋๋ค. Kubernetes ํด๋ฌ์คํฐ์ XNUMX์ฝ์ด ํธ์คํธ๊ฐ ์๊ณ XNUMX๊ฐ์ CPU Pod๊ฐ ์์ฒญ๊ณผ ํจ๊ป ๋์ฐฉํ๋ ๊ฒฝ์ฐ ์์ฒญ์ด ์๋ Pod๊ฐ ๋ ์ด์ ์ด ํธ์คํธ์ ์ฌ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์ด๋ฌํ ํฌ๋๋ฅผ ์คํํ๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.
$ kubectl scale special-pod --replicas=...
๊ทธ๋ฌ๋ฉด ๋ค๋ฅธ ๋๊ตฌ๋ Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ ธ๋์ ์์ฒญ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ๊ทํ์ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์ค์งํ๊ฒ ์ต๋๋ค. ์ ๋ ์ ์ด ์์ ์ ์ํํ๋ฉด ๊ฝค ์ค๋ ์๊ฐ ๋์ ๋ฐฐํฌ๋ฅผ ์ค๋จํ ์ ์์ต๋๋ค.
Kubernetes ๋ฌธ์๋ฅผ ๋ค์ ๋ณด๋ฉด Limit Range๋ผ๋ ํญ๋ชฉ์ด ํ์๋ฉ๋๋ค. ํด๋ฌ์คํฐ ๊ฐ์ฒด์ ๋ํ ๋ฆฌ์์ค๋ฅผ ์ค์ ํฉ๋๋ค. yaml์ Limit Range ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ํน์ ๋ค์์คํ์ด์ค์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ๋ค์์คํ์ด์ค์๋ ํฌ๋์ ๋ํ ๊ธฐ๋ณธ, ์ต๋ ๋ฐ ์ต์ ๋ฆฌ์์ค๊ฐ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ธฐ๋ฅ์ ๋์์ผ๋ก ์ฐ๋ฆฌ๋ ํ์ ํน์ ์ ํ ๋ค์์คํ์ด์ค์ ์๋ ์ฌ์ฉ์๊ฐ ํฌ๋์ ์๋ ๋ชจ๋ ์ข ๋ฅ์ ๋ถ์พํ ํญ๋ชฉ์ ํ์ํ๋ ๋ฅ๋ ฅ์ ์ ํํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ถํํ๊ฒ๋ ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ ์ด์์ CPU์ ๋ํ ์์ฒญ์ผ๋ก Pod๋ฅผ ์์ํ ์ ์๋ค๊ณ ๋งํด๋ ํ๋ฅญํ scale ๋ช ๋ น์ด ์๊ฑฐ๋ ๋์๋ณด๋๋ฅผ ํตํด ๊ท๋ชจ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ด ๋์ค๋ ๊ณณ์ ๋๋ค. ์ฐ๋ฆฌ๋ 11๊ฐ์ ํฌ๋๋ฅผ ์ถ์ํฉ๋๋ค. ๊ทธ๊ฒ์ 111์ต์ ๋๋ค. ๊ทธ๋ฐ ์ซ์๋ฅผ ์๊ฐํด ๋ธ ๊ฒ์ด ์๋๋ผ ์ง์ ๋ดค๊ธฐ ๋๋ฌธ์ ๋๋ค.
์คํ. ์ ๋ ๋ฆ๊ฒ ๋๋ ์ฌ๋ฌด์ค์ ๋ ๋๋ ค๊ณ ํ๋ค. ์ ๋ ํ ๋ฌด๋ฆฌ์ ๊ฐ๋ฐ์๋ค์ด ๊ตฌ์์ ์์ ๋ฏธ์น ๋ฏ์ด ๋ ธํธ๋ถ์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ํ๊ณ ์๋ ๊ฒ์ ๋ด ๋๋ค. ๋๋ ๋จ์๋ค์๊ฒ ๋ค๊ฐ๊ฐ "๋ฌด์จ ์ผ์ด ์์๋์? "๋ผ๊ณ ๋ฌป์ต๋๋ค.
์กฐ๊ธ ๋ ์ด๋ฅธ ์ ๋ XNUMX์์ฏค, ๊ฐ๋ฐ์ ์ค ํ ๋ช ์ด ์ง์ ๊ฐ ์ค๋น๋ฅผ ํ๊ณ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ โ์ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋๋ก ์ถ์ํ๊ฒ ์ต๋๋ค.โ๋ผ๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ํ๋๋ฅผ ๋๋ ๋๋ฐ ์ธํฐ๋ท์ด ์กฐ๊ธ ๋๋ ค์ก์ต๋๋ค. ๊ทธ๋ ํ๋๋ฅผ ๋ค์ ๋๋ฅด๊ณ , ํ๋๋ฅผ ๋๋ฅด๊ณ Enter๋ฅผ ํด๋ฆญํ์ต๋๋ค. ๋๋ ๋ด๊ฐ ํ ์ ์๋ ๋ชจ๋ ๊ฒ์ ์ฐ๋ ๋ค. ๊ทธ๋ฐ ๋ค์ ์ธํฐ๋ท์ด ํ์ฑํ๋์๊ณ ๋ชจ๋ ๊ฒ์ด ์ด ์ซ์๋ก ์ถ์๋๊ธฐ ์์ํ์ต๋๋ค.
์ฌ์ค, ์ด ์ด์ผ๊ธฐ๋ Kubernetes์์ ๋ฐ์ํ์ง ์์์ผ๋ฉฐ ๋น์์๋ Nomad์์ต๋๋ค. Nomad์ ์ง์์ ์ธ ํ์ฅ ์๋๋ฅผ ๋ง์ผ๋ ค๋ ์ฐ๋ฆฌ์ ์๋๊ฐ ํ ์๊ฐ ํ์ Nomad๋ ํ์ฅ์ ์ค๋จํ์ง ์๊ณ ๋ค๋ฅธ ์์ ์ ์ํํ์ง ์๊ฒ ๋ค๊ณ ๋๋ตํ๋ค๋ ์ฌ์ค๋ก ๋๋ฌ์ต๋๋ค. "ํผ๊ณคํด์, ๋ ๊ฐ๊ฒ์." ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๋ชธ์ ์ ํฌ๋ ธ์ต๋๋ค.
๋น์ฐํ Kubernetes์์๋ ๋์ผํ ์์ ์ ์๋ํ์ต๋๋ค. Kubernetes๋ 1์ต ๊ฐ์ ํฌ๋๊ฐ ๋ง์กฑ์ค๋ฝ์ง ์๋ค๊ณ ๋งํ์ต๋๋ค. โํ ์ ์์ต๋๋ค. ๋ด๋ถ ๋ง์ฐ์ค ๊ฐ๋๋ฅผ ์ด๊ณผํฉ๋๋ค." ํ์ง๋ง 000๊ฐ์ ํฌ๋๋ ๊ฐ๋ฅํฉ๋๋ค.
XNUMX์ต์ ๋์ํ์ฌ ํ๋ธ๋ ์ค์ค๋ก ๋ฌผ๋ฌ๋์ง ์์์ต๋๋ค. ๊ทธ๋ ์ค์ ๋ก ์ค์ผ์ผ๋ง์ ์์ํ์ต๋๋ค. ํ๋ก์ธ์ค๊ฐ ์งํ๋ ์๋ก ์ ํฌ๋๋ฅผ ๋ง๋๋ ๋ฐ ๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ๊ณผ์ ์ ๊ณ์๋์์ต๋๋ค. ์ ์ผํ ๋ฌธ์ ๋ ๋ด ๋ค์์คํ์ด์ค์์ ํฌ๋๋ฅผ ๋ฌด์ ํ์ผ๋ก ์์ํ ์ ์๋ค๋ฉด ์์ฒญ๊ณผ ์ ํ ์์ด๋ ์ผ๋ถ ์์ ์ด ํฌํจ๋ ๋๋ฌด ๋ง์ ํฌ๋๋ฅผ ์์ํ ์ ์์ผ๋ฉฐ ์ด๋ฌํ ์์ ์ ๋์์ผ๋ก ๋ ธ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ, CPU์ ์ถ๊ฐ๋๊ธฐ ์์ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ฌด ๋ง์ ํฌ๋๋ฅผ ์์ํ๋ฉด ํด๋น ํฌ๋์ ์ ๋ณด๊ฐ ์คํ ๋ฆฌ์ง, ์ฆ etcd๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ฌด ๋ง์ ์ ๋ณด๊ฐ ๋์ฐฉํ๋ฉด ์คํ ๋ฆฌ์ง๊ฐ ๋๋ฌด ๋๋ฆฌ๊ฒ ๋ฐํ๋๊ธฐ ์์ํ๊ณ Kubernetes๊ฐ ๋ํด์ง๊ธฐ ์์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ํ๋์ ๋ฌธ์ ... ์์๋ค์ํผ Kubernetes ์ ์ด ์์๋ ํ๋์ ํต์ฌ ์์๊ฐ ์๋๋ผ ์ฌ๋ฌ ๊ตฌ์ฑ ์์์ ๋๋ค. ํนํ ์ปจํธ๋กค๋ฌ ๊ด๋ฆฌ์, ์ค์ผ์ค๋ฌ ๋ฑ์ด ์์ต๋๋ค. ์ด ๋ชจ๋ ์ฌ๋๋ค์ ๋์์ ๋ถํ์ํ๊ณ ์ด๋ฆฌ์์ ์์ ์ ์์ํ๋ฉฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ์ ๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ ์์ํ ๊ฒ์ ๋๋ค. ์ปจํธ๋กค๋ฌ ๊ด๋ฆฌ์๊ฐ ์ ํฌ๋๋ฅผ ์์ฑํฉ๋๋ค. ์ค์ผ์ค๋ฌ๋ ์ด๋ฅผ ์ํ ์ ๋ ธ๋๋ฅผ ์ฐพ์ผ๋ ค๊ณ ์๋ํฉ๋๋ค. ๊ณง ํด๋ฌ์คํฐ์ ์ ๋ ธ๋๊ฐ ๋ถ์กฑํด์ง ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. Kubernetes ํด๋ฌ์คํฐ๋ ์ ์ ๋ ๋๋ฆฌ๊ฒ ์๋ํ๊ธฐ ์์ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ๋ ๋์๊ฐ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์์๋ค์ํผ Kubernetes์๋ ์๋น์ค๋ผ๋ ๊ฒ์ด ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ฌ์คํฐ์์๋ ์๋น์ค๊ฐ IP ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ์๋ํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์๋ฅผ ๋ค์ด XNUMX์ต ๊ฐ์ ํฌ๋๋ฅผ ์คํํ ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ Kubernetis๊ฐ ์ ์๋น์ค๋ฅผ ์์ฑํ๋๋ก ํ๋ ๊ฒฝ์ฐ:
for i in {1..1111111}; do
kubectl expose deployment test --port 80
--overrides="{"apiVersion": "v1",
"metadata": {"name": "nginx$i"}}";
done
ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ ธ๋์์ ์ ์ ๋ ๋ง์ ์๋ก์ด iptables ๊ท์น์ด ๊ฑฐ์ ๋์์ ์์ฑ๋ฉ๋๋ค. ๋ํ ๊ฐ ์๋น์ค์ ๋ํด XNUMX์ต ๊ฐ์ iptables ๊ท์น์ด ์์ฑ๋ฉ๋๋ค.
๋๋์ด ๋ชจ๋ ๊ฒ์ ์์ฒ์์ ์ต๋ XNUMX๊น์ง ํ์ธํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ ์ด๋ฏธ ์ด ์๊ณ๊ฐ์์ ๋ ธ๋์ SSH๋ฅผ ์ํํ๋ ๊ฒ์ด ์๋นํ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ฌด ๋ง์ ์ฒด์ธ์ ํต๊ณผํ๋ ํจํท์ ๊ธฐ๋ถ์ด ์ข์ง ์๊ธฐ ์์ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ Kubernetes์ ๋์์ผ๋ก ๋ชจ๋ ํด๊ฒฐ๋์์ต๋๋ค. ์ด๋ฌํ ๋ฆฌ์์ค ํ ๋น๋ ๊ฐ์ฒด๊ฐ ์์ต๋๋ค. ํด๋ฌ์คํฐ์ ๋ค์์คํ์ด์ค์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์์ค ๋ฐ ๊ฐ์ฒด ์๋ฅผ ์ค์ ํฉ๋๋ค. Kubernetes ํด๋ฌ์คํฐ์ ๊ฐ ๋ค์์คํ์ด์ค์ yaml ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ๋ค์์คํ์ด์ค์ ํน์ ๊ฐ์์ ์์ฒญ๊ณผ ์ ํ์ด ํ ๋น๋์ด ์๋ค๊ณ ๋งํ ์ ์์ผ๋ฉฐ, ์ด ๋ค์์คํ์ด์ค์์๋ 10๊ฐ์ ์๋น์ค์ 10๊ฐ์ ํฌ๋๋ฅผ ์์ฑํ ์ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ๋ช
์ ๊ฐ๋ฐ์๋ ์ ์ด๋ ์ ๋
์๋ ๋ชฉ์ด ๋งํ ์ ์์ต๋๋ค. Kubernetes๋ ๊ทธ์๊ฒ "๋ฆฌ์์ค๊ฐ ํ ๋น๋์ ์ด๊ณผํ๊ธฐ ๋๋ฌธ์ ํฌ๋๋ฅผ ํด๋น ์์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค."๋ผ๊ณ ๋งํ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ ๋ค์ผ, ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ด์ ๊ด๋ จํ์ฌ ํ ๊ฐ์ง ๋ฌธ์ ์ ์ด ๋ฐ์ํฉ๋๋ค. Kubernetes์์ ๋ค์์คํ์ด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ค์์ง๊ณ ์๋์ง ๋๋ผ์ค ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ง๋ค๋ ค๋ฉด ๋ง์ ๊ฒ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋ฆฌ์์ค ํ ๋น๋ + ์ ํ ๋ฒ์ + RBAC
โข ๋ค์์คํ์ด์ค ์์ฑ
โข ๋ด๋ถ์ ์ ํ ๋ฒ์๋ฅผ ๋ง๋ญ๋๋ค.
โข ๋ด๋ถ ๋ฆฌ์์ค ํ ๋น๋ ์์ฑ
โข CI์ฉ ์๋น์ค ๊ณ์ ์์ฑ
โข CI ๋ฐ ์ฌ์ฉ์์ ๋ํ ์ญํ ๋ฐ์ธ๋ฉ ์์ฑ
โข ์ ํ์ ์ผ๋ก ํ์ํ ์๋น์ค ํฌ๋ ์คํ
๊ทธ๋ฌ๋ฏ๋ก ์ ๋ ์ด ๊ธฐํ๋ฅผ ๋น์ด ์ ๊ฐ ๋ฐ์ ํ ๋ด์ฉ์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. SDK ์คํผ๋ ์ดํฐ๋ผ๋ ๊ฒ์ด ์์ต๋๋ค. ์ด๋ Kubernetes ํด๋ฌ์คํฐ๊ฐ ์ฐ์ฐ์๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. Ansible์ ์ฌ์ฉํ์ฌ ๋ช ๋ น๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค.
์ฒ์์๋ Ansible๋ก ์์ฑํ๋ค๊ฐ SDK Operator๊ฐ ์๋ ๊ฒ์ ๋ณด๊ณ Ansible ์ญํ ์ Operator๋ก ๋ค์ ์์ฑํ์ต๋๋ค. ์ด ๋ฌธ์ ์ฌ์ฉํ๋ฉด Kubernetes ํด๋ฌ์คํฐ์ ๋ช ๋ น์ด๋ผ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๋ช ๋ น ๋ด์์ yaml์์ ์ด ๋ช ๋ น์ ๋ํ ํ๊ฒฝ์ ์ค๋ช ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ํ๊ฒฝ ๋ด์์ ์ฐ๋ฆฌ๊ฐ ๋๋ฌด ๋ง์ ๋ฆฌ์์ค๋ฅผ ํ ๋นํ๊ณ ์์์ ์ค๋ช ํ ์ ์์ต๋๋ค.
์กฐ๊ธ
๊ทธ๋ฆฌ๊ณ ๊ฒฐ๋ก ์ ์ผ๋ก. ์ด ๋ชจ๋ ๊ฒ์ ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
์ฒซ ๋ฒ์งธ. ํฌ๋ ๋ณด์ ์ ์ฑ
์ด ์ข์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ฌ๊น์ง Kubernetes ์ค์น ํ๋ก๊ทธ๋จ ์ค ๋๊ตฌ๋ ์ด๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ ํด๋ฌ์คํฐ์์๋ ์ฌ์ ํ ์ด๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋คํธ์ํฌ ์ ์ฑ ์ ๋ ๋ค๋ฅธ ๋ถํ์ํ ๊ธฐ๋ฅ์ด ์๋๋๋ค. ์ด๊ฒ์ด ํด๋ฌ์คํฐ์ ์ค์ ๋ก ํ์ํ ๊ฒ์ ๋๋ค.
LimitRange/ResourceQuota - ์ด์ ์ฌ์ฉํ ์๊ฐ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ค๋ ์ ๋ถํฐ ์ด๊ฒ์ ์ฌ์ฉํ๊ธฐ ์์ํ๊ณ ์ค๋ซ๋์ ๋ชจ๋๊ฐ ๊ทธ๊ฒ์ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ํ์ ํ์ต๋๋ค. ์ด๊ฒ์ ๋๋ฌธ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค.
๋ณด๊ณ ์์์ ์ธ๊ธํ ๊ฒ ์ธ์๋ ํด๋ฌ์คํฐ๋ฅผ ๊ณต๊ฒฉํ ์ ์๋ ๋ฌธ์ํ๋์ง ์์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ต๊ทผ ์ถ์๋จ
์ด๋ค ๊ฒ๋ค์ ๋๋ฌด ์ฌํ๊ณ ์์ฒ๋ฅผ ์ค๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์กฐ๊ฑด์์ Kubernetes ํด๋ฌ์คํฐ์ ํ๋ธ๋ ์ warlocks ๋๋ ํฐ๋ฆฌ์ ์ฝํ ์ธ ๋ฅผ ๊ถํ ์๋ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ์ ์์ต๋๋ค.
๊ณ ๋ง์์.
์ถ์ฒ : habr.com