uuuhhh
์•„์ฃผ์กฐ์ฝ”
uuuhhh
  • ์ „์ฒด (68)
    • Cloud (22)
      • AWS (17)
      • NCP (4)
      • Tech (1)
    • Kubernetes (16)
    • Docker (1)
    • CI๏ผCD (13)
    • Network (4)
    • OS (10)
      • Linux (9)
      • Concepts (1)
    • Language (0)
      • Golang (0)
    • Project (1)
      • Drone (1)
    • ์š”๋ชจ์กฐ๋ชจ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

  • โš ๏ธ 2022/11/08 - 11/13 ๋ธ”๋กœ๊ทธ ์ด๊ด€ ์ž‘์—… โ‹ฏ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • pod
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • kubernetes
  • Instance
  • ncp
  • build
  • Iam
  • service
  • minikube
  • argocd
  • Linux
  • docker
  • LoadBalancer
  • Jenkins
  • CI
  • network
  • AWS
  • EC2
  • NKS
  • NodePort

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
uuuhhh

์•„์ฃผ์กฐ์ฝ”

์™œ Docker Driver + Minikube์—์„  ์•ˆ๋˜๋Š” ๊ฒŒ ๋งŽ์„๊นŒ
Docker

์™œ Docker Driver + Minikube์—์„  ์•ˆ๋˜๋Š” ๊ฒŒ ๋งŽ์„๊นŒ

2022. 11. 10. 23:43

๐Ÿ“ Epilogue


  • CSP์˜ K8s ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— Minikube๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค.
  • ๋…ธ๋“œ์— ์˜ฌ๋ ค๋†“์€ ํŒŒ๋“œ์— ๋Œ€ํ•ด์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํƒ€์ž…์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๊ณ ์ž ํ•˜์˜€๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ NodePort, LoadBalancer ํƒ€์ž…์€ Minikube์—์„œ Docker Driver ํŠน์„ฑ์ƒ ์™„๋ฒฝํ•˜๊ฒŒ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.
    • NodePort → Container IP๋กœ ์ ‘์† ๋ถˆ๊ฐ€๋Šฅ
    • LoadBalancer → External IP ์ œ๊ณต ๋ถˆ๊ฐ€๋Šฅ
      • MetalLB addon์œผ๋กœ External IP ์ œ๊ณต ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ ‘์† ๋ถˆ๊ฐ€๋Šฅ
      • minikube service ๋ช…๋ น์–ด๋กœ tunneling์„ ์ด์šฉํ•ด์„œ ์ ‘์† ๊ฐ€๋Šฅ
  • ๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ์„œ ์˜๋ฌธ์  โ—๏ธ
    • Docker Driver์˜ ํŠน์„ฑ์ด ๋ญ๊ธธ๋ž˜?

 

  • ์ผ๋‹จ ์†Œํ”„ํŠธ์›จ์–ด ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด์•˜๋‹ค.

 

 

โ–ช Software Driver


 

  • ์ปค๋„ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ํ•ต์‹ฌ OS ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
  • ์œ„ ๋„๊ตฌ๋ฅผ ๋‘ ๊ฐ€์ง€ ์š”์†Œ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ
    • User mode์—์„œ ์‹คํ–‰๋˜๊ณ  ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต → ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
    • Kernel mode์„œ ์‹คํ–‰๋˜๋ฉฐ ํ•ต์‹ฌ OS ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ → ์†Œํ”„ํŠธ์›จ์–ด ๋“œ๋ผ์ด๋ฒ„
  • ์†Œํ”„ํŠธ์›จ์–ด ๋“œ๋ผ์ด๋ฒ„๋Š” ํ•ญ์ƒ ์ปค๋„ ๋ชจ๋“œ๋กœ ์‹คํ–‰
  • ์ปค๋„ ๋ชจ๋“œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณดํ˜ธ๋œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ฃผ๋œ ๋ชฉ์ 

 

⇒ ์—ฌ๊ธฐ๊นŒ์ง€๋กœ ๋„์ปค ๋“œ๋ผ์ด๋ฒ„๋Š” ์ปค๋„ ๋‹จ์˜ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ๋“ค์— ์ ‘๊ทผํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒ์„ฑ / ๊ด€๋ฆฌ๋ฅผ ๋„์™€์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

โ–ช๏ธŽ Minikube Service


 

Accessing apps

How to access applications running within minikube

minikube.sigs.k8s.io

  • Minikube ๊ณต์‹ ๋ฌธ์„œ์—์„œ minikube service๋ฅผ ์ง€์›ํ•˜๋Š” ์ด์œ ๋ฅผ ์ฐพ์•„๋ณด์•˜๋‹ค.

Using minikube service with tunnel

The network is limited if using the Docker driver on Darwin, Windows, or WSL, and the Node IP is not reachable directly.

Running minikube on Linux with the Docker driver will result in no tunnel being created.

…

 

๐Ÿ’ก Darwin : Open-source UNIX OS by Apple  
     WSL : Window Subsystem for Linux

 

  • Darwin, Windows ๋˜๋Š” WSL ๊ธฐ๋ฐ˜์˜ ๋„์ปค ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋„คํŠธ์›Œํฌ์— ์ œํ•œ์ด ์ƒ๊ธฐ๋ฉฐ Node IP๋Š” ์ง์ ‘์ ์œผ๋กœ ๋„๋‹ฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

 

  • ⇒ ๊ณต์‹๋ฌธ์„œ์—์„œ ์œ„ OS์— ๋Œ€ํ•œ NodePort, LoadBalancer Type ์„œ๋น„์Šค๋Š” ์ง์ ‘์ ์œผ๋กœ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์—ฌ minikube service๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์•„ ๊ด€๋ จ OS์—์„œ์˜ ํŠน์ง•์ด ์กด์žฌํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๋‹ค.

 

  • ๊ทธ๋Ÿผ ๋‚ด๊ฐ€ Mac OS๋ฅผ ์“ฐ๋Š” ์ž…์žฅ์ด๋ฏ€๋กœ Mac OS์—์„œ ๋„์ปค๊ฐ€ ์–ด๋– ํ•œ ํ˜•ํƒœ๋กœ ์ž‘๋™ํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž

 

 

โ–ช๏ธŽ Docker in Mac OS


  • Mac OS์—์„œ๋Š” ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  Hypervisor Type 2๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • Hypervisor Type 2๋ž€ Host OS ์œ„์— VM์„ ์˜ฌ๋ ค์„œ VM ์•ˆ์— Guest OS๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
    • ๊ฐ€์ƒํ™”์— ๋Œ€ํ•œ ๋” ์ž์„ธํ•œ ์ด์•ผ๊ธฐ๋Š” ์ถ”ํ›„..

 

  • Mac OS์—์„œ์˜ Hypervisor์ธ Xhyve๋Š” HyperKit๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Host๋‚ด VM์„ ์ƒ์„ฑํ•œ๋‹ค.
๐Ÿ’ก Xhyve : Bhyve์˜ Mac OS์šฉ ๋ฒ„์ „ 
     Bhyve : Hypervisor์˜ Type-2
๐Ÿ’ก HyperKit : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•˜์ดํผ๋ฐ”์ด์ € ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•œ ํˆดํ‚ท
 

GitHub - moby/hyperkit: A toolkit for embedding hypervisor capabilities in your application

A toolkit for embedding hypervisor capabilities in your application - GitHub - moby/hyperkit: A toolkit for embedding hypervisor capabilities in your application

github.com

 

  • ์ƒ์„ฑํ•œ VM์˜ Guest OS์—๋Š” Linux Kit์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“  ๊ฒฝ๋Ÿ‰ํ™” Linux OS๋ฅผ ์˜ฌ๋ฆฐ๋‹ค.
๐Ÿ’ก Linux Kit : ์ปจํ…Œ์ด๋„ˆ์šฉ์œผ๋กœ ๊ตฌ์ถ•๋œ ๋ฏธ๋‹ˆ๋ฉ€ํ•œ Linux OS ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ

 

  • ๊ทธ ํ›„ ๋„์ปค๋ฅผ ์˜ฌ๋ ค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • $ docker info → Guest OS๊ฐ€ Linux OS์ธ ๊ฒƒ์„ ํ™•์ธ

 


 

 

  • ์—ฌ๊ธฐ๊นŒ์ง€ Mac OS ์ƒ์—์„œ ๋„์ปค๊ฐ€ ์–ด๋–ป๊ฒŒ ์„ค์น˜๋˜๊ณ  ๋™์ž‘ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•˜์˜€๋‹ค.
  • ๋‹ค์Œ์œผ๋กœ ์œ„ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ ์„  ์™œ ์ง์ ‘ ์ปจํ…Œ์ด๋„ˆ IP๋กœ ์ ‘๊ทผ์„ ํ•  ์ˆ˜ ์—†๋Š”์ง€ ๋„คํŠธ์›Œํฌ ๋ถ€๋ถ„์—์„œ ์‚ด์ง ๋ถ„์„ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

 

โ–ช๏ธŽ Docker Network in Mac OS


  • ์ผ๋‹จ ์ •๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • Mac OS์—์„œ ๋„์ปค๋Š” L4(ํฌํŠธ ๋ฐ”์ธ๋”ฉ)๋ฅผ ํ†ตํ•œ ์ปจํ…Œ์ด๋„ˆ ์—ฐ๊ฒฐ์„ ์ง€์›ํ•˜์ง€๋งŒ L3(IP ์ฃผ์†Œ๊ฐ„)์€ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ์™œ L3(IP ์ฃผ์†Œ ๊ฐ„)์€ ์ง€์›ํ•˜์ง€ ์•Š๋Š”์ง€ ์‚ดํŽด๋ณด์ž !

 

  • ๋„์ปค๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋„คํŠธ์›Œํฌ ๋ชจ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
    • bridge mode (default)
    • host mode
    • none mode



  • ๋งŒ์•ฝ ๋„คํŠธ์›Œํฌ ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด --net=[NETWORK-TYPE] ์˜ต์…˜ ์ถ”๊ฐ€

 

  • bridge mode (default)
    • docker0์ด๋ผ๋Š” bridge๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.
    • ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ์ž ๋…๋ฆฝ์ ์ธ ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์˜์—ญ์„ ๊ฐ€์ง„๋‹ค.
    • ๋จผ์ € ์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์™€ veth(virtual ethernet)๋ž‘ ๋ฐ”์ธ๋”ฉํ•œ๋‹ค.
    • ๋ฐ”์ธ๋”ฉ๋œ veth๋Š” docker0 bridge๋ž‘ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด ํ˜ธ์ŠคํŠธ์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค eth0๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • host mode
    • ์ปจํ…Œ์ด๋„ˆ๋งŒ์˜ ๋…๋ฆฝ์ ์ธ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๊ณ  ํ˜ธ์ŠคํŠธ์™€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.
  • none
    • ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๊ฒฉ๋ฆฌ๋œ ์ƒํƒœ์˜ ๋„คํŠธ์›Œํฌ
    • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์—†์Œ
  • ๊ทธ๋Ÿฐ๋ฐ ํ˜ธ์ŠคํŠธ์— docker0์— ๋Œ€ํ•œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

  • ์ด์œ ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด Mac OS์—์„œ๋Š” Linux VM ์œ„์— Docker๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ์— ๋Œ€ํ•œ bridge๋Š” Linux VM์•ˆ์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  • ์œ„์™€ ๊ฐ™์ด ํ˜ธ์ŠคํŠธ์—์„œ bridge ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ์— IP๋กœ๋Š” ์ ‘๊ทผ์„ ๋ชปํ•˜๊ณ  ํฌํŠธ ํฌ์›Œ๋”ฉ์„ ํ†ตํ•œ ํ„ฐ๋„๋ง์œผ๋กœ ์ ‘๊ทผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • Localhost(127.0.0.1:65180) → Tunneling → Docker container(192.168.49.2:32517)

 

 

 

โ–ช๏ธŽ โญ


  • ์ œ๋ชฉ์€ ๋„์ปค ๋“œ๋ผ์ด๋ฒ„์˜ ํŠน์„ฑ์ด๋ผ๊ณ  ์ ์—ˆ์ง€๋งŒ OS ๊ฐ„์˜ ๋„์ปค ํŠน์„ฑ(ํŠนํžˆ, Mac OS..)์ด๋ผ๊ณ  ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.
  • ๊ฐ€์ƒํ™”๋ถ€ํ„ฐ ๋„์ปค์˜ ๊ตฌ์กฐ, ๋„คํŠธ์›Œํฌ๊นŒ์ง€ ์ •๋ง ๋‘๋ฃจ๋‘๋ฃจ ์‚ดํŽด๋ณด์•˜์œผ๋‹ˆ..
  • ๊ฒฐ๋ก ์€ ๋งŽ์€ ๊ฒƒ์„ ์•Œ์•„๊ฐ€์„œ ๊ธฐ๋ถ„์ด ์ข‹๋‹ค !

 

 

 

ref.


๋“œ๋ผ์ด๋ฒ„๋ž€? - Windows drivers

Drivers

 

Docker ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋ฒ•

06. ๋„์ปค ๋„คํŠธ์›Œํฌ (Docker Network)

 

docker: Ingress not exposed on MacOS · Issue #7332 · kubernetes/minikube

 

Frequently asked questions for Mac

Getting Started with LinuxKit on Mac OS X with xhyve

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    uuuhhh
    uuuhhh
    ํ”ผ๋•€๋ˆˆ๋ฌผ์˜ ์‚ฝ์งˆ๊ธฐ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”