-
[Kubernetes] Componentkubernetes 2022. 10. 23. 17:57๋ฐ์ํ
๐Kubernetes๋ฅผ ๋ฐฐํฌํ๋ฉด ํด๋ฌ์คํฐ๊ฐ ์์ฑ๋๋ค!๐ก ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋?
- ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ธฐ ์ํ ์ผ๋ จ์ ๋ ธ๋ ๋จธ์ ์ด๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์คํ ์ค์ด๋ผ๋ฉด ํด๋ฌ์คํฐ๋ฅผ ์คํํ๊ณ ์๋ ๊ฒ์ด๋ค. ์ต์ ์์ค์์ ํด๋ฌ์คํฐ๋ ์ปจํธ๋กค ํ๋ ์ธ ๋ฐ ํ๋ ์ด์ ์ปดํจํ ๋จธ์ ๋๋ ๋ ธ๋๋ฅผ ํฌํจํ๊ณ ์๋ค.
- ์ปจํธ๋กค ํ๋ ์ธ์ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ์ง์ ๊ฐ์ด ํด๋ฌ์คํฐ๋ฅผ ์ํ๋ ์ํ๋ก ์ ์ง ๊ด๋ฆฌํ๋ค.
- ํด๋ฌ์คํฐ๋ ์ฟ ๋ฒ๋คํฐ์ค์ ํต์ฌ ์ฅ์ ์ด๋ค. ์ฆ ๋ฌผ๋ฆฌ ๋จธ์ , ๊ฐ์ ๋จธ์ , ์จํ๋ ๋ฏธ์ค, ํด๋ผ์ฐ๋์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ๋จธ์ ๊ทธ๋ฃน ์ ์ฒด์์ ์ปจํ ์ด๋๋ฅผ ์์ฝํ๊ณ ์คํํ ์ ์๋ค. ์ฟ ๋ฒ๋คํฐ์ค ์ปจํ ์ด๋๋ ๊ฐ๋ณ ๋จธ์ ์ ์ฐ๊ฒฐ๋์ง ์๋๋ค. ๋์ ์ ํด๋ฌ์คํฐ ์ ์ฒด์์ ์ถ์ํ๋๋ค.
ํด๋ฌ์คํฐ๋ ์ฌ๋ฌ ๋์ ์ปดํจํฐ๊ฐ ๋ชจ์ฌ์ ๊ฐ์ ๋ชฉ์ ์ผ๋ก ์ํ๋๋ ์ปดํจํฐ๋ค์ ์งํฉ์ด๋ผ๊ณ ๋ณผ ์ ์๋๋ฐ,
์ด๋ ํด๋ฌ์คํฐ ์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ์ปจํธ๋กค๋ฌ๋ก์ ๋ง์คํฐ๊ฐ ์กด์ฌํ๊ณ , ์ปจํ ์ด๋๊ฐ ๋ฐฐํฌ๋๋ ๋ฌผ๋ฆฌ์ ์ธ ๋จธ์ ์ ๋ ธ๋๋ผ๊ณ ํ๋ค.
๋ง์คํฐ์๋ kube-api-server, kube-controller-manager, kube-scheduler, cloud-controller manager, etcd ๋ฑ์
์ปดํฌ๋ํธ๊ฐ ์คํ๋๊ณ ์ฃผ์ ์ค๋ช ์ ์๋ ๋ด์ฉ์ ์ฐธ์กฐํ๋ค.
๐ ์ฉ์ด
โ๏ธ ์ปจํธ๋กค ํ๋ ์ธ (Control plane)
์ฟ ๋ฒ๋คํฐ์ค ๋ ธ๋๋ฅผ ์ ์ดํ๋ ํ๋ก์ธ์ค์ ์ปฌ๋ ์ ์ด๋ค. ์ฌ๊ธฐ์์ ๋ชจ๋ ํ์คํฌ ํ ๋น์ด ์์๋๋ค.โ๏ธ ๋ ธ๋(node)
์ปจํธ๋กค ํ๋ ์ธ์์ ํ ๋น๋ ์์ฒญ ํ์คํฌ๋ฅผ ์ํํ๋ ๋จธ์ ์ด๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ ์ปจํ ์ด๋๋ฅผ ํ๋๋ด์ ๋ฐฐ์นํ๊ณ ๋ ธ๋ ์์ ์คํํ๋ค.โ๏ธ ํ๋ (Pods)
ํด๋ฌ์คํฐ์์ ์คํ์ค์ธ ์ปจํ ์ด๋์ ์งํฉ์ด๋ฉฐ ์ฟ ๋ฒ๋คํฐ์ค์์ ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ๋ฐฐํฌ ๊ฐ๋ฅํ ๊ฐ์ฅ ์์ ์ปดํจํ ๋จ์์ด๋ค.โ๏ธ ์๋น์ค (Service)
์ผ๋ จ์ ํฌ๋์์ ๋คํธ์ํฌ ์๋น์ค๋ก ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ธ์ถํ๋ ๋ฐฉ์์ด๋ค. ์ด๋ก ์ธํด ์์ ์ ์๊ฐ ํฌ๋์์ ๋ถ๋ฆฌ๋๋ค.
๐ Master
โ๏ธ kube-apiserver
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ api๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ์ปจํธ๋กค ํ๋ ์ธ ์ปดํฌ๋ํธ์ด๋ค. ์ฆ api ์๋ฒ๋์ฟ ๋ฒ๋คํฐ์ค ํ๋ก ํธ ์๋๋ก์ ํด๋ฌ์คํฐ๋ก ์จ ์์ฒญ์ด ์ ํจํ์ง ๊ฒ์ฆํ๊ณ , api์๋ฒ๋ฅผ ํตํด ๋ค๋ฅธ ์ปดํฌ๋ํธ๊ฐ ์๋ก ํ์ํ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ฒ ๋๋ค. ํนํ etcd์๋ api ์๋ฒ๋ง ์ ๊ทผํ ์ ์๋ค.โ๏ธ etcd
์ฟ ๋ฒ๋คํฐ์ค์์ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํค-๊ฐ ํํ๋ก ์ ์ฅํ๋ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญํ ์ ํ๋ค. etcd๋ ์๋ฒ ํ๋๋น ํ๋ก์ธ์ค 1๊ฐ๋ง ์ฌ์ฉํ ์ ์๋๋ฐ, ๋ณดํต etcd ์์ฒด๋ฅผ ํด๋ฌ์คํฐ๋ง ํ ํ ์ฌ๋ฌ ๊ฐ ๋ง์คํฐ ์๋ฒ์ ๋ถ์ฐํด์ ์คํํด ์์ ์ฑ์ ๋ณด์ฅํ๋๋ก ํ๋ค.โ๏ธ kube-scheduler
ํ์ฌ ํด๋ฌ์คํฐ ์์์ ์์ ํ ๋น์ด ๊ฐ๋ฅํ ๋ ธ๋ ์ค ์๋ง์ ๋ ธ๋๋ฅผ ์ ํํด์ ์๋ก์ด ํ๋๋ฅผ ์คํํด์ฃผ๋ ์ญํ ์ ํ๋ค. ์ฒ์ ํ๋๊ฐ ์คํ๋ ๋ ์ต์ ํ ๋น๋์ด์ผ ํ๋ ram๊ณผ ๊ฐ์ ์ค์ ๋ค์ ํ ์ ์๋๋ฐ, ์ด๋ฌํ ์กฐ๊ฑด์ ๋ง์ถ์ด ์๋ง์ ๋ ธ๋์ ํ๋๋ฅผ ์คํ์์ผ์ฃผ๋ ์๋ํ ์์ ์ ํด์ค๋ค.โ๏ธ kube-controller-manager
์ฟ ๋ฒ๋คํฐ์ค์ ํ๋๋ค์ ๊ด๋ฆฌํ๋ ์ปจํธ๋กค๋ฌ์ด๋ค. ์ปจํธ๋กค๋ฌ ๊ฐ๊ฐ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ฐ๋ณ ํ๋ก์ธ์ค์ง๋ง ๋ณต์ก๋๋ฅผ ์ค์ด๋ ค๊ณ ๋ชจ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ก ์ปดํ์ผํด์ ๋จ์ผ ํ๋ก์ธ์ค๋ก ์คํํ๋ค.โ๏ธ cloud-controller-manager
์ฟ ๋ฒ๋คํฐ์ค์ ์ปจํธ๋กค๋ฌ๋ค์ ํด๋ผ์ฐ๋ ์๋น์ค์ ์ฐ๊ฒฐํด์ ๊ด๋ฆฌํ๋ ์ปดํฌ๋ํธ์ด๋ค.
๐ Node
โ๏ธ kubelet
ํด๋ฌ์คํฐ ์ ๋ชจ๋ ๋ ธ๋์์ ์คํ๋๋ ์์ด์ ํธ์ด๋ค. ํ๋์คํ(PodSpec) ์ค์ ์ ์ ๋ฌ๋ฐ์์ ํ๋ ์ปจํ ์ด๋์ ์คํ์ ์ง์ ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ํด๋น ์ปจํ ์ด๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋๋์ง ํฌ์ค ์ฒดํฌ๋ฅผ ์งํํ๋ค. ๋จ, ๋ ธ๋ ์์ ์๋ ์ปจํ ์ด๋๋ผ๋ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ํตํด์ ๋ง๋ค์ด์ง์ง ์์ ์ปจํ ์ด๋๋ ๊ด๋ฆฌํ์ง ์๋๋ค.โ๏ธ kube-proxy
์ฟ ๋ฒ๋คํฐ์ค๋ ํด๋ฌ์คํฐ ์์์ ๋ณ๋์ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๊ฒ ๋๋๋ฐ, kube-proxy๋ ์ด๋ฐ ๊ฐ์ ๋คํธ์ํฌ์ ๋์์ ๊ด๋ฆฌํ๋ ์ปดํฌ๋ํธ์ด๋ค.โ๏ธ ์ปจํ ์ด๋ ๋ฐํ์
์ค์ ๋ก ์ปจํ ์ด๋๋ฅผ ์คํ์ํค๋ ์ปดํฌ๋ํธ์ด๋ค. ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐํ์์ผ๋ก Docker๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค.References
https://kubernetes.io/docs/concepts/overview/components/
https://ooeunz.tistory.com/118๋ฐ์ํ'kubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kubernetes] EKS ๊ตฌ์ถ (0) 2022.10.23 [Kubernetes] Object (0) 2022.10.23 [Kubernetes] Basic concepts (0) 2022.10.23