Kubernetes(K8s)๋ ์ปจํ ์ด๋ํ๋ ์ฑ์ ์๋์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ์คํ ์์ค ๋๊ตฌ์ ๋๋ค. ๊ธฐ์กด Docker ๊ธฐ๋ฐ์ ๋ฆฌ์์ค ๊ด๋ฆฌ ๋ฐฉ์์ ํ ์ฐจ์ ๋ ๋ฐ์ ์์ผฐ์ผ๋ฉฐ, ํ์ฌ ํด๋ผ์ฐ๋ ๋ฆฌ์์ค ๊ด๋ฆฌ์ ์ฌ์ค์์ ํ์ค์ผ๋ก ์๋ฆฌ ์ก๊ณ ์์ต๋๋ค.
Kubernetes์ ์ํ๊ณ๋ ๋งค์ฐ ๋ฐฉ๋ํ๊ณ , ๋์์ด ๋ณํํ๊ณ ์์ผ๋ฉฐ ์ ๋ ๊ณ์ ์์๊ฐ๋ ๊ณผ์ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ ์ค๋ช ํ ์๋ ์์ง๋ง ๋ช ๊ฐ์ง ๋ด์ฉ๋ค์ ์ ๋ฆฌํด ๋๋ ค๊ณ ํฉ๋๋ค.
Kubernetes์ ํน์ง
์ปจํ ์ด๋ ํ๊ฒฝ ๊ด๋ฆฌ์ ์๋ํ
Docker๋ก ์ฑ ๊ตฌ๋ ํ๊ฒฝ์ ํต์ผํ ์๋ ์์์ง๋ง, ์ฌ์ ํ ๋๊ท๋ชจ ํ๊ฒฝ์๋ ๋ง์ ์์
์ด ํ์ํ์ต๋๋ค. ํ์ฅ๊ณผ ์ถ์, ์ฅ์ ๋์๊ณผ ๊ฐ์ด ์๋์ผ๋ก ๋์ํด์ผ ํ๋ ์์
์ด ๋ง์๊ธฐ ๋๋ฌธ์
๋๋ค.
Kubernetes๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์๋ ๋ฆฌ์์ค์ ๋ํ ๊ด๋ฆฌ๋ฅผ ์๋ํํฉ๋๋ค. ๋ฆฌ์์ค ์ฌ์ฉ๋ฅ ์ ์ฒดํฌํ์ฌ ์ ๋์ ์ผ๋ก ํ์ฅ/์ถ์๋ฅผ ํ๊ณ , ๋ฆฌ์์ค ๊ตฌ๋ ์ํ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ์ฌ ์ฅ์ ๊ฐ ์๊ธด ๋ฆฌ์์ค๋ฅผ ์์ฝ๊ฒ ๋ณต๊ตฌํ ์๋ ์์ต๋๋ค.
- Horizontal Pod Autoscaling | Kubernetes
- Deployments | Kubernetes
- Configure Liveness, Readiness and Startup Probes | Kubernetes
๋ฆฌ์์ค์ ๊ถํ ๊ด๋ฆฌ
Kubernetes์์๋ ๋ค์ํ ๋ฆฌ์์ค ๋ฐฐํฌ ์ ์ฑ
์ ์ค์ ํ ์ ์์ต๋๋ค. ํน์ ํ๊ฒฝ์๋ง ๋ฐฐํฌ๋ฅผ ํ๊ฑฐ๋ ์ญ์ผ๋ก ์ ํํ ์๋ ์๊ณ , ๋ฆฌ์์ค๋ณ๋ก ๋ฐฐํฌ ํ๊ฒฝ์ ์ง์ค/๋ถ์ฐํ ์๋ ์์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ง ์ ๋ต์ ํตํด ๋ ํจ์จ์ ์ธ ๋ฆฌ์์ค ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋ํ ์์ ํ ๊ด๋ฆฌ๋ฅผ ์ํด ๊ด๋ฆฌ์๊ฐ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ์ฌ ํน์ ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ์ ์ ์ดํ ์ ์์ต๋๋ค.
- Taints and Tolerations | Kubernetes
- Assigning Pods to Nodes | Kubernetes
- Using RBAC Authorization | Kubernetes
์ฝ๋๋ฅผ ํตํ ๋ฆฌ์์ค ์ ์ด
Docker๋ Dockerfile
์ ํตํด ๋ฐฐํฌ ํ๊ฒฝ์ ์ฝ๋๋ก ์ ์ํ์ง๋ง, Kubernetes์์๋ ๋ ๋์๊ฐ ๋คํธ์ํฌ, ๊ถํ ๋ฑ ๋ ๋ง์ ๊ตฌ์ฑ ์์๋ฅผ ์ฝ๋๋ก ์ ์ํฉ๋๋ค. ์ฌ์ง์ด ์ฌ์ฉ์ ์ ์ ๋ฆฌ์์ค (CRD)๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ์ง์ ๋ฆฌ์์ค๋ฅผ ์ ์ํ์ฌ ํ์ฉํ ์๋ ์์ต๋๋ค. ์ด๋ก์ ๋ชจ๋ ์ธํ๋ผ๋ฅผ ์ฝ๋๋ก ์ ์ํ์ฌ ๊ด๋ฆฌํ๋ IaC(Infrastructure as Code)์ ํ ๊ฑธ์ ๋ ๋ค๊ฐ์๊ฒ ๋์์ต๋๋ค.
CNCF
CNCF๋ ๋ฆฌ๋
์ค ์ฌ๋จ์ ํ๋ก์ ํธ ์ค ํ๋๋ก, ์ปจํ
์ด๋ ๊ธฐ๋ฐ ๊ธฐ์ ์ฐ์
์ ๋ฐ์ ์ ์ํด ์ค๋ฆฝ๋์์ต๋๋ค.
CNCF์ ํต์ฌ์๋ ๋ฐ๋ก K8s๊ฐ ์์ผ๋ฉฐ ๋๋ค์์ CNCF ํ๋ก์ ํธ๊ฐ K8s ํ๊ฒฝ์ ์ ์ ๋ก ํ๊ณ , K8s์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ ๊ธฐ๋ฅ์ ํ์ฅํ์ฌ ํ์ฉ์ฑ์ ๋์ด๊ณ ์์ต๋๋ค. ์ด ๊ฑฐ๋ํ ์ํ๊ณ๋ K8s๊ฐ ์ค๋ ๊ธฐ๊ฐ ๋์ ํด๋ผ์ฐ๋ ํ์ค์ ์๋ฆฌ๋ฅผ ์งํฌ ์ ์๊ฒ ํ๋ ์๋๋ ฅ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
Kubernetes์ ๋จ์
- Kubernetes๋ ๋๊ท๋ชจ ๋ฆฌ์์ค ๊ด๋ฆฌ์ ์ ํฉํ ๋๊ตฌ์ ๋๋ค. ์๊ท๋ชจ ์๋น์ค์ ๊ฒฝ์ฐ ์คํ๋ ค ๋ถํ์ํ ๊ด๋ฆฌ ์์๊ฐ ๋์ด๋ ๊ฐ๋ฅ์ฑ๋ ์์ต๋๋ค.
- ์ฌ์ฉํ๋ ๋ฐ ๊ฝค ๋ง์ ์ง์์ ํ์๋ก ํฉ๋๋ค. ์ง์ ์ฅ๋ฒฝ์ด ๋์ต๋๋ค.
- ์ง์ ๊ตฌ์ถํ K8s, ํด๋ผ์ฐ๋ ํ๊ฒฝ์ Amazon EKS, GKE ๋ฑ ํ๊ฒฝ์ ๋ฐ๋ผ ์กฐ๊ธ์ฉ ์ฉ์ด์ ์ฌ์ฉ๋ฒ์ด ๋ค๋ฆ ๋๋ค. ๋ฐ๋ผ์ ํ๋ซํผ์ด ๋ฌ๋ผ์ง๋ค๋ฉด ์ด๋ ์ ๋ ์ถ๊ฐ ํ์ต๋ ํ์ํฉ๋๋ค.
์์ ๋จ์ ๋ค๋ก ์ธํด ์์ง ์๊ท๋ชจ ์กฐ์ง์ด๋ ์คํํธ์ ์์๋ Kubernetes๋ฅผ ๊ณ ๋ คํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ฐธ๊ณ ์๋ฃ
- Kubernetes Documentation | Kubernetes
- Dive to Argo (haulrest.me)
์ง์ ์์ฑํ Kubernetes + Argo ์ค์ต ํ์ด์ง์ ๋๋ค. - ์ฟ ๋ฒ๋คํฐ์ค ์๋ด์ (subicura.com)
๊ฐ์ฅ ๋ง์ด ์ธ๊ธ๋๋ K8s ํ๊ตญ์ด ์๋ด์์ ๋๋ค. ์ฒ์ K8s์ ์ ๋ฌธํ ๋ ์๊ฐ๋ฐ์๋ ๋งํฌ์ด๊ธฐ๋ ํฉ๋๋ค.