ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kubernetes] Component
    kubernetes 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

    ๋Œ“๊ธ€

Designed by Tistory.