ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

 

์ง€๋‚œ ์ฃผ์— Docker๋ฅผ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ํฌ์ŠคํŒ…์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”^^!

 

https://nakyungim.tistory.com/2

 

[Docker] ๋„์ปค๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ์™œ ์จ์•ผํ•˜๋Š”๊ฐ€?

GCP(Google Cloud Platform)์„ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ์— ์•ž์„œ Docker๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Docker๋ž€ ๋ฌด์—‡์ธ๊ฐ€? Linux ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆํ™” ๊ธฐ์ˆ  ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ Docker์˜ ์žฅ..

nakyungim.tistory.com

 

 

์˜ค๋Š˜์€ GCP๋ฅผ ๊ณต๋ถ€ํ•˜๊ธฐ์— ์•ž์„œ Kubernetes์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

Kubernetes๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

 

 

  • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌ/ํ™•์žฅํ•˜๊ณ  ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋ ›ํผ

  • ๋งŽ์€ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ์— ์œ ์šฉ(Container Orchestration)

  • ์ˆ˜๋™ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š” ์—†์Œ => ์ž๋™!

 

 

Kubernetes์˜ ์žฅ์ 

  • ๋ณด์•ˆ ๊ฐ•ํ™”

  • ์‰ฝ๊ณ  ๋น ๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—…๋ฐ์ดํŠธ

  • ์ด์‹์„ฑ ๋†’์Œ
    (์›ํ•˜๋Š” ๊ณณ ์–ด๋””์—๋“ , ์–ธ์ œ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ํ™•์‹ ์„ ๊ฐ–๊ฒŒ ํ•ด์คŒ)

 

 

Kubernetes๋ฅผ ์จ์•ผํ•˜๋Š” ์ด์œ 

https://www.youtube.com/watch?v=S3FVcdZcZnA

 

์œ„ ์˜์ƒ์„ ์ฐธ๊ณ ํ•ด์„œ ์ •๋ฆฌํ•จ.

 

๋ฐฐ๊ฒฝ

๊ทธ์ € ๋„์ปค๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ๋งŒ ํ•˜๋ ค๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ํ•„์š”๊ฐ€ ์—†๋‹ค.

๋„์ปค๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ–๊ณ  ์žˆ์„ ๋•Œ ์“ฐ์ด๋Š”๋ฐ, ์ปจํ…Œ์ด๋„ˆ ๋ณ„๋กœ ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅด๋‹ค. (์˜ˆ๋ฅผ ๋“ค๋ฉด, upload, auth, payment ๋“ฑ)

๋งŽ์€ ์ปจํ…Œ์ด๋„ˆ๋“ค ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ฃฝ์œผ๋ฉด ์žฌ๋น ๋ฅด๊ฒŒ ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์žฌ์‹œ์ž‘ ์‹œ์ผœ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ๋“ฑ์žฅ!

 

  • ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•จ. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ํ•œ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ 5๊ฐœ์ •๋„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์–ด์„œ, ๊ทธ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ฃฝ์œผ๋ฉด ์žฌ๋นจ๋ฆฌ ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ On ์‹œํ‚ด. -> ์ž๋™ ์žฌ์‹œ์ž‘ ๊ธฐ๋Šฅ!

  • ์œ ์ €๊ฐ€ ๋งŽ๊ฑฐ๋‚˜ ์ ์Œ์— ๋”ฐ๋ผ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์ž๋™์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ์–‘์„ ์กฐ์ ˆ

  • ์ปจํ…Œ์ด๋„ˆ์˜ ์ฝ”๋“œ์˜ ๋ฒ„๊ทธ ์ˆ˜์ •, ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์ปจํ…Œ์ด๋„ˆ์˜ ์‹ ๊ทœ ๋ฒ„์ „์„ ์ฐจ๋ก€๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์คŒ. -> ์›น์‚ฌ์ดํŠธ๋ฅผ ๋‹ค์šด์‹œํ‚ค์ง€ ์•Š์•„๋„ ๋จ

 

 

 

 

๋ณธ๊ฒฉ์ ์œผ๋กœ Kubernetes์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์ด๋ž€?

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„์— ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•˜๋ฉด์„œ, ์„œ๋น„์Šค ๊ฐ„ ์—ฐ๊ฒฐ์„ ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ (์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ๊ฐ™์€ ๊ธฐ๋Šฅ ์ด์šฉ)

  • ์„œ๋ฒ„๋งˆ๋‹ค ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์ง€์–ด์ฃผ๊ณ  ํ•˜๋‚˜ํ•˜๋‚˜ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด X!!

  •  server1, 2, 3...์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ์ ๋‹นํ•œ ์„œ๋ฒ„๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌ

  • ๋ถ€ํ•˜๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋Š˜๋ฆฌ๊ณ , ์ผ๋ถ€ ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ •์ƒ ๋™์ž‘ ์ค‘์ธ ์„œ๋ฒ„์— ๋‹ค์‹œ ๋„์›Œ ์žฅ์•  ๋ฐฉ์ง€

 

 

Kubernetes Object

  • ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์ƒ์„ ์˜ค๋ธŒ์ ํŠธ๋กœ ์ •์˜

  • ์ˆ˜์‹ญ ๊ฐ€์ง€ ์˜ค๋ธŒ์ ํŠธ ์ œ๊ณต, ์ƒˆ๋กœ์šด ์˜ค๋ธŒ์ ํŠธ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งค์šฐ ์‰ฌ์›€ => ํ™•์žฅ์„ฑ์ด ์ข‹๋‹ค!

 

 

Desired State (๋ฐ”๋ผ๋Š” ์ƒํƒœ)

  • ์„ค์ • ๋ฐฉ๋ฒ• : ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์˜ค๋ธŒ์ ํŠธ ๋งŒ๋“ค๊ธฐ

  • ๋ณดํ†ต kubect1์ด๋ผ๋Š” ์ปค๋งจ๋“œ๋ผ์ธ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ

 

 

๋ฐฐํฌ ๋ฐฉ์‹

  • ์›ํ•˜๋Š” ์ƒํƒœ(desired state)๋ฅผ ๋‹ค์–‘ํ•œ ์˜ค๋ธŒ์ ํŠธ(object)์— ๋ผ๋ฒจ์„ ๋ถ™์—ฌ ์ •์˜(yaml)ํ•˜๊ณ  API ์„œ๋ฒ„์— ์ „๋‹ฌ

  • ๋งค์šฐ ๋ณต์žกํ•จ

 

 

Kubernetes Master

  • ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ๋ฐ”๋ผ๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์ฑ…์ž„์„ ๊ฐ€์ง

  • ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋กœ ์ง€์ •๋œ ๋…ธ๋“œ ๋‚ด์—์„œ ๊ตฌ๋™๋˜๋Š” ์„ธ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค ๋ฌถ์Œ

    • kube-apiserver, kube-controller-manager, kube-scheduler

  • ๋งˆ์Šคํ„ฐ : ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฌถ์Œ

  • ๊ฐ ๋…ธ๋“œ๋ฅผ ๊ด€๋ฆฌ

 

 

Kubernetes Node

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ํด๋ผ์šฐ๋“œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌ๋™์‹œํ‚ค๋Š” ๋จธ์‹ (VM, ๋ฌผ๋ฆฌ ์„œ๋ฒ„ ๋“ฑ)

  • ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ์•„๋‹Œ ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๋Š” ๋‹ค์Œ ๋‘ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋™

    • kubelet : ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋งˆ์Šคํ„ฐ์™€ ํ†ต์‹ 

    • kube-proxy : ๊ฐ ๋…ธ๋“œ์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋ก์‹œ

 

 

์‹ค์Šต

Qwiklabs ์‹ค์Šต๊ณผ ๊ด€๋ จ๋œ ํฌ์ŠคํŒ…์€ ๊ณง ์˜ฌ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค^0^~!

๋Œ“๊ธ€