kubernetes_object
Last updated
Last updated
https://kubernetes.io/it/docs/concepts/overview/components/
๋ง์คํฐ์ ๋ ธ๋
์ฟ ๋ฒ๋คํฐ์ค๋ ํฌ๊ฒ ๋ง์คํฐ์ ๋ ธ๋ ๋๊ฐ์ ์ปดํฌ๋ํธ๋ก ๋ถ๋ฆฌ
์ฟ ๋ฒ๋คํฐ์ค ๋ง์คํฐ
์ ์ฒด ์ฟ ๋ฒ๋คํฐ์ค ์์คํ ์ ์ ์ดํ๊ณ ๊ด๋ฆฌํ๋ ์ฟ ๋ฒ๋คํฐ์ค ์ปจํธ๋กค ํ๋ ์ธ์ ์คํํฉ๋๋ค. ์ฆ ์ฟ ๋ฒ๋คํฐ์ค์ ์ค์ ํ๊ฒฝ์ ์ ์ฅํ๊ณ ์ ์ฒด ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ๋๋ค.
etcd, kube-apiserver, kube-scheduler, kube-controller-manager
์ฟ ๋ฒ ๋คํฐ์ค ๋ ธ๋
์ค์ ๋ฐฐํฌ๋๋ ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํฉ๋๋ค.์ค์ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ์ปจํ ์ด๋๋ค์ ๋๋ถ๋ถ ๋ ธ๋์์ ์คํํฉ๋๋ค.
๋ ธ๋๋ ํ๋๋ ์ปจํ ์ด๋์ฒ๋ผ ์ฟ ๋ฒ๋คํฐ์ค ์์์ ๋์ํ๋ ์ํฌ๋ก๋๋ฅผ ํธ์คํ ํ๋ ์ญํ
๋ ธ๋์์ kubelet, kube-proxy, docker๋ฑ์ด ์คํํฉ๋๋ค.
๋ง์คํฐ ์ปดํฌ๋ํธ
๋ง์คํฐ ์ปดํฌ๋ํธ
ํด๋ฌ์คํฐ ์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ์ปจํธ๋กค๋ฌ๋ก ํด๋ฌ์คํฐ์ ์ปจํธ๋กค ํ๋ ์ธ์ ์ ๊ณตํฉ๋๋ค.
ํด๋ฌ์คํฐ์ ๊ดํ ์ ๋ฐ์ ์ธ ๊ฒฐ์ (ex-์ค์ผ์ค๋ง)์ ์ํํ๊ณ ํด๋ฌ์คํฐ ์ด๋ฒคํธ(ex-๋ํ๋ก์ด๋จผํธ์ replicas ํ๋๊ฐ ์๊ตฌ์กฐ๊ฑด์ ์ถฉ์กฑ๋์ง ์์ ๊ฒฝ์ฐ ์๋ก์ด ํ๋๋ฅผ ๊ตฌ๋ ์ํค๋ ๊ฒ)๋ฅผ ๊ฐ์งํ๊ณ ๋ฐ์ํฉ๋๋ค.
ํด๋ฌ์คํฐ ๋ด ์ด๋ ํ ๋จธ์ ์์๋ ๋์ ๊ฐ๋ฅํ๋ฉฐ API Server, Controller Manager, Scheduler, etcd๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๊ด๋ฆฌ์๋ Master API Server๋ฅผ ํตํด K8s๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ๋ชจ๋ ์ปดํฌ๋ํธ๋ค์ API Server๋ฅผ ํตํด ์๋ก ํต์ ํฉ๋๋ค.
kube-scheduler
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ๋ฅผ ๋ด๋นํฉ๋๋ค.(์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ ๊ฐ๋ฅํ ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ์ํฌ ๋ ธ๋์ ํ ๋น)
๋ ธ๋๊ฐ ๋ฐฐ์ ๋์ง ์์ ์๋ก ์์ฑ๋ ํ๋๋ฅผ ๊ฐ์งํ๊ณ ๊ทธ๊ฒ์ด ๊ตฌ๋๋ ๋ ธ๋๋ฅผ ์ ํํ๋ ๋ง์คํฐ ์์ ์ปดํฌ๋ํธ
์๋ก์ด ํ๋๋ฅผ ๋ง๋ค์ด์ง ๋ ํ์ฌ ํด๋ฌ์คํฐ๋ด์์ ์์ํ ๋น์ด ๊ฐ๋ฅํ ๋ ธ๋๋ค ์ค์์ ์๋ง์ ๋ ธ๋๋ฅผ ์ ํํด์ ๊ทธ๊ณณ์ ํฌ๋๋ฅผ ๋์ฐ๋์ญํ
ํ๋๋ ์ฒ์ ์คํ๋ ๋ ์ฌ๋ฌ ๊ฐ์ง ์กฐ๊ฑด์ ์ง์ ํด์ ์คํํ๋๋ฐ, kube-scheduler๊ฐ ๊ทธ ์กฐ๊ฑด์ ๋ง๋ ๋ ธ๋๋ฅผ ์ฐพ์์ฃผ๋ ์ญํ
์ค์ผ์ค๋ง ๊ฒฐ์ ์ ์ํด์ ๊ณ ๋ ค๋๋ ์์๋ ๋ฆฌ์์ค์ ๋ํ ๊ฐ๋ณ ๋ฐ ์ด์ฒด์ ์๊ตฌ ์ฌํญ, ํ๋์จ์ด/์ํํธ์จ์ด/์ ์ฑ ์ ์ ์ฝ, ์ดํผ๋ํฐ(affinity) ๋ฐ ์ํฐ-์ดํผ๋ํฐ(anti-affinity) ๋ช ์ธ, ๋ฐ์ดํฐ ์ง์ญ์ฑ, ์ํฌ๋ก๋-๊ฐ ๊ฐ์ญ, ๋ฐ๋๋ผ์ธ์ ํฌํจํ๋๋ค.
Kube-controler-manager
์ปจํธ๋กค๋ฌ๋ฅผ ๊ตฌ๋ํ๋ ๋ง์คํฐ ์์ ์ปดํฌ๋ํธ
๊ตฌ์ฑ ์์ ๋ณต์ ๋ณธ, ์์ปค ๋ ธ๋ ์ถ์ , ๋ ธ๋ ์ฅ์ ์ฒ๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ ํด๋ฌ์คํฐ๋จ์ ๊ธฐ๋ฅ์ ์ํํ๋ฉฐ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ์ํ๋ฅผ ํญ์ ๊ฐ์ํ๋ ๋ฐฑ์๋ ์ปดํฌ๋ํธ์ ๋๋ค.
๊ฐ ์ปจํธ๋กค๋ฌ๋ ๊ฐ๋ณ ํ๋ก์ธ์ค์ด์ง๋ง, ๋ณต์ก์ฑ์ ๋ฎ์ถ๊ธฐ ์ํด ๋ชจ๋ ๋จ์ผ ๋ฐ์ด๋๋ฆฌ๋ก ์ปดํ์ผ ๋๊ณ ๋จ์ผ ํ๋ก์ธ์ค๋ด์์ ์คํํฉ๋๋ค.
cloud-controller-manager
๋ฐํ์ ์ด๋ฃจ๋ ํด๋ผ์ฐ๋ ์ ๊ณต์ฌ์ ์์ ์ํธ์์ฉํ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ์๋
ํด๋ผ์ฐ๋ ๋ฐด๋ ์ฝ๋์ ์ฟ ๋ฒ๋คํฐ์ค ์ฝ๋๊ฐ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ ๋๊ฐ ์ ์๋๋ก ํด์ค๋๋ค.
kube-apiserver
์ฌ์ฉ์, ์ปจํธ๋กค ํ๋ ์ธ ๊ตฌ์ฑ ์์์ ํต์ ํฉ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค API๋ฅผ ๋ ธ์ถํ๋ ๋ง์คํฐ ์์ ์ปดํฌ๋ํธ, ์ฟ ๋ฒ๋คํฐ์ค ์ปจํธ๋กค ํ๋ ์ธ์ ๋ํ ํ๋ก ํธ์๋
ํด๋ฌ์คํฐ๋ก ์์ฒญ์ด ์์๋ ๊ทธ ์์ฒญ์ด ์ ํจํ์ง ๊ฒ์ฆํ๋ ์ญํ
์ฟ ๋ฒ๋คํฐ์ค๋ก์ ๋ชจ๋ ์์ฒญ์ kube-apiserver๋ฅผ ํตํด์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ ๋ฌ
kube-apiserver๋ ์ํ์ ์ผ๋ก ํ์ฅ์ด ๊ฐ๋ฅํ๊ฒ ์ค๊ณ๊ฐ ๋์ด ์์ด์, ์ฌ๋ฌ ๋์ ์ฅ๋น์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋์๋๊ณ ์ฌ์ฉํฉ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ MSA(๋ง์ดํฌ๋ก์๋น์ค์ํคํ ์ฒ) ๊ตฌ์กฐ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ถ๋ฆฌ๋ ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
ETCD
https://github.com/mjs1995/Certified-Kubernetes-Administrator/blob/main/docs/02_Core%20Concepts.md
๊ณ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํ๋ ๋ถ์ฐ ํค-๋ฐธ๋ฅ(key value)์คํ ์ด(์ ์ฅ์)๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ ์ง์์ ์ผ๋ก ์ ์ฅํ๋ ์ ๋ขฐํ ์ ์๋ ๋ถ์ฐ ๋ฐ์ดํฐ ์ ์ฅ์์ ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค์์ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ค์ง์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค
ํ๋ก์ธ์ค 1๊ฐ๋ง ๋์์ ์ฌ์ฉํ ์๋ ์์ง๋ง ๋ฐ์ดํฐ์ ์์ ์ฑ์ ์ํด์๋ ์ฌ๋ฌ ๊ฐ์ ์ฅ๋น์ ๋ถ์ฐํด์ etcd ์์ฒด๋ฅผ ํด๋ฌ์คํฐ๋ง์ ๊ตฌ์ฑํด์ ์คํํ๋ ๊ฒ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ
etcd๊ฐ ์์ ์ ์ด๊ธฐ๋ ํ์ง๋ง ๋ณด๋ค ์์ ์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ด์ํ๋ ค๋ฉด ์ฃผ๊ธฐ์ ์ผ๋ก etcd์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์ ํ์
curl ๋ฑ HTTP ํด๋ผ์ด์ธํธ/๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์์ ๊ฐ๋ฅํฉ๋๋ค.
๋ ธ๋ ์ปดํฌ๋ํธ
๋์์ค์ธ ํ๋๋ฅผ ์ ์ง์ํค๊ณ ์ฟ ๋ฒ๋คํฐ์ค ๋ฐํ์ ํ๊ฒฝ์ ์ ๊ณตํ๋ฉฐ, ๋ชจ๋ ๋ ธ๋ ์์์ ๋์ํฉ๋๋ค.
๋ ธ๋๋ ์ฟ ๋ฒ๋คํฐ์ค์ ์์ด์ ์์ปค ๋จธ์ ์ด๋ฉฐ ํด๋ฌ์คํฐ์ ๋ฐ๋ผ VM ๋๋ ๋ฌผ๋ฆฌ ๋จธ์ ์ด ๋ ์ ์์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ ํ๋๋ ํ๋์ ๋ ธ๋ ์์์ ๋์ํ ์ ์์ต๋๋ค.
kubelet
ํด๋ฌ์คํฐ๋ด์ ๋ชจ๋ ๋ชจ๋์์ ์คํ๋๋ ์์ด์ ํธ
์ฟ ๋ฒ๋คํฐ์ค ๋ง์คํฐ์ ํต์ ํ๋ฉฐ Pod๋ค๊ณผ Node์ ์ํ๋ฅผ ํด๋ฌ์คํฐ์ ๋ณด๊ณ ํฉ๋๋ค.
ํ๋๋ด์ ์ปจํ ์ด๋๋ค์ด ์คํ๋๋๊ฑธ ์ง์ ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ์ญํ
๋ค์ํ ๋ฉ์ปค๋์ฆ์ผ๋ก ์ ๊ณต๋ PodSpec ์ค์ ์งํฉ์ ๊ฐ์ง๋ฉฐ, PodSpec์ ๊ธฐ์ ๋ ์ปจํ ์ด๋๋ค์ด ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์๋์ง ์ํ ์ฒดํฌ๋ฅผ ์งํ
๋ ธ๋์์ ์๋ ์ปจํ ์ด๋๋ผ๊ณ ํ๋๋ผ๋ ์ฟ ๋ฒ๋คํฐ์ค์ ์ํด ์์ฑ๋์ง ์์ ์ปจํ ์ด๋๋ค์ ๊ด๋ฆฌํ์ง ์์ต๋๋ค.
Docker ์ปจํ ์ด๋๋ฅผ ์คํํ๊ฑฐ๋ ์คํ ๋ฆฌ์ง๋ฅผ ๋ง์ดํธํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ผ๋ฉฐ ํด๋ฌ์คํฐ์ ๊ตฌ์ฑ ์ ๋ณด๋ฅผ YAML ๋๋ .JSON ํ์์ ์ ์ ํ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.(๋งค๋ํ์คํธ-manifestํ์ผ)
kube-proxy
ํด๋ฌ์คํฐ ๋ด ๊ฐ ๋ ธ๋์์ ์คํ๋๋ ๋คํธ์ํฌ ํ๋ก์
๊ฐ ๋ ธ๋์ ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน ์๋น์ค๋ฅผ ๋ฐ์ํ๋ ๋คํธ์ํฌ ํ๋ก์
์ฟ ๋ฒ๋คํฐ์ค๋ ํด๋ฌ์คํฐ ๋ด๋ถ์ ๋ณ๋์ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ฉฐ ๊ฐ์ ๋คํธ์ํฌ๊ฐ ๋์ํ ์ ์๊ฒ ํ๋ ์ค์ง์ ์ธ ์ญํ ์ ํ๋ ํ๋ก์ธ์ค์ ๋๋ค.
ํธ์คํธ ์์์ ๋คํธ์ํฌ ๊ท์น์ ์ ์งํ๊ณ ์ฐ๊ฒฐ์ ๋ํ ํฌ์๋ฉ์ ์ํํจ์ผ๋ก์จ ์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค ์ถ์ํ๊ฐ ๊ฐ๋ฅํ๋๋ก ํด์ค๋๋ค.
์ปจํ ์ด๋ ๋ฐํ์
์ค์ ๋ก ์ปจํ ์ด๋๋ฅผ ์คํ์ํค๋ ์ญํ
๊ฐ์ฅ ๋ง์ด ์๋ ค์ง ๋ฐํ์์ผ๋ก๋ ๋์ปค(Docker)๊ฐ ์๊ณ , ๊ทธ์ธ rkt, runc ๊ฐ์ ๋ฐํ์๋ ์ง์ํฉ๋๋ค.
์ปจํ ์ด๋์ ๊ดํ ํ์ค์ ์ ์ ํ๋ ์ญํ ์ ํ๋ OCI(Open Container Initiative)์ ๋ฐํ์ ๊ท๊ฒฉ์ ๊ตฌํํ๊ณ ์๋ ์ปจํ ์ด๋ ๋ฐํ์์ด๋ผ๋ฉด ์ฟ ๋ฒ๋คํฐ์ค์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
https://www.oreilly.com/library/view/kubernetes-in-action/9781617293726/
https://www.oreilly.com/library/view/cloud-native-devops/9781492040750/
https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/