BE/Kubernetes

[Cluster Architecture] Kubernetes Architecture

Taylor Kang 2021. 3. 20. 17:34

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ๋‹ค์ด์–ด๊ทธ๋žจ


 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ตฌ์„ฑ ๋‹จ์œ„


๐Ÿ’ก
(Cluster: Namespace set) > Node > Pod > Conainer
  1. Cluster ํด๋Ÿฌ์Šคํ„ฐ
    • Node์˜ ์ง‘ํ•ฉ
  1. Namespace ๋„ค์ž„์ŠคํŽ˜์ด์Šค
    • ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์˜ ๊ฐ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ
    • ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ๋ฆฌ์†Œ์Šค์˜ ๊ตฌ๋ถ„ ์šฉ๋„๋กœ ์‚ฌ์šฉ
  1. Node ๋…ธ๋“œ
    • ์ปจํ…Œ์ด๋„ˆํ™”๋œ Application์„ ์‹คํ–‰ํ•˜๋Š” ์›Œ์ปค ๋จธ์‹ 
    • ์›Œ์ปค ๋…ธ๋“œ๋Š” Application์˜ ๊ตฌ์„ฑ์š”์†Œ์ธ Pod์„ ํ˜ธ์ŠคํŠธํ•จ
    • ์›Œ์ปค๋…ธ๋“œ์™€ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด Pod์„ ๊ด€๋ฆฌ
  1. Pod ํŒŒ๋“œ
    • ์ปจํ…Œ์ด๋„ˆ์˜ ์ง‘ํ•ฉ
    • ๊ฒฐํ•ฉ์ด ๊ฐ•ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ Pod๋กœ ๋ฌถ์–ด ์ผ๊ด„ ๋ฐฐํฌ (ex. spring webapp + nginx)
  1. Container ์ปจํ…Œ์ด๋„ˆ
    • ๋„์ปค ์ปจํ…Œ์ด๋„ˆ

 

์ปดํฌ๋„ŒํŠธ ์ข…๋ฅ˜


    ๐Ÿ•น Control Plane Component (Master Node)

    Manage, Plan, Schedule, Monitor
     
     
    ์—ญํ• 
    • ํด๋Ÿฌ์Šคํ„ฐ์— ๊ด€ํ•œ ์ „๋ฐ˜์ ์ธ ๊ฒฐ์ •(ex. ์Šค์ผ€์ฅด๋ง)
    • ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฒคํŠธ(ex.replicas ๊ฐœ์ˆ˜ ์œ ์ง€)๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๋ฐ˜์‘

     

    ๊ตฌ์„ฑ
    1. Kube-API Server
    1. ETCD Cluster : ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ์ผ๊ด€์„ฑ, ๊ณ ๊ฐ€์šฉ์„ฑ, ํ‚ค-๊ฐ’ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ €์žฅ์†Œ
    1. Kube Scheduler : ๋…ธ๋“œ ๋ฐฐ์ •๋˜์ง€ ์•Š์€ ์‹ ๊ทœ Pod์„ ๊ฐ์ง€ํ•˜๊ณ , ์‹คํ–‰ํ•  ๋…ธ๋“œ๋ฅผ ์„ ํƒ
    1. Kube Contoller Mangaer
    • Cloud Controller Manager : ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž ์ „์šฉ ์ปจํŠธ๋กค๋Ÿฌ

     

    ํŠน์ง•
    • ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ์–ด๋– ํ•œ ๋จธ์‹ ์—์„œ๋“  ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ„๊ฒฐ์„ฑ์„ ์œ„ํ•ด์„œ ๋™์ผ ๋จธ์‹ (๋งˆ์Šคํ„ฐ ๋…ธํŠธ) ์ƒ์— ๊ตฌ๋™์‹œํ‚ค๊ณ , ์‚ฌ์šฉ์ž ์ปจํ…Œ์ด๋„ˆ๋Š” ํ•ด๋‹น ๋จธ์‹  ์ƒ์— ๋™์ž‘์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.

     

     

    ๐Ÿ‘ท‍โ™‚๏ธ Worker Node Component

    Host Application as Container
     
     
    ์—ญํ• 
    • ๋™์ž‘์ค‘์ธ Pod๋ฅผ ์œ ์ง€์‹œํ‚ค๊ณ  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์„ ์ œ๊ณต
    • ๋ชจ๋“  ๋…ธ๋“œ์ƒ์—์„œ ๋™์ž‘

     

    ๊ตฌ์„ฑ
    1. kubelet : ํด๋Ÿฌ์Šคํ„ฐ๋‚ด์—์„œ ์ž‘๋™๋˜๋Š” Pod๊ฐ€ PodSpec(ํŒŒ๋“œ์ŠคํŽ™)์— ๋”ฐ๋ผ์„œ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ๊ด€๋ฆฌ
    1. kube-proxy : ๋…ธ๋“œ์˜ ๋„คํŠธ์›Œํฌ ๊ทœ์น™์„ ์œ ์ง€/๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰๋˜๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋ก์‹œ(Service ๊ตฌํ˜„๋ถ€)
    1. Container Runtime Engine : ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์„ ๋‹ด๋‹นํ•˜๋Š” SW(ex. Docker, Rocket)

     

     

    Link