- toc {:toc}
Swarm
[Fig1]
- Docker Swarm : Orchestrator
- 100~1000 κ° μ λμ 컨ν μ΄λλΌλ©΄ μΆ©λΆν Swarm μΌλ‘ λμ κ°λ₯νλ€.
- μ€μμ§μ€ν μ μ΄μ₯μΉμ΄λ€.
- Container Orchestration : λ°°ν¬, κ΄λ¦¬, μμ ν λΉ, λ€νΈμνΉ, μ΄μ©κ°λ₯μ±μ μ€μ ν΅μ λ₯Ό ν΅ν΄ μλννλ κ³Όμ μ΄λ€.
- μ£Ό λͺ©μ : κ΄λ¦¬, λͺ¨λν°λ§μ νκ³ , μλνλ₯Ό ν΅ν΄μ λ₯λ₯ μ΄ μ¦κ°νλλ‘ νλ€.
- κ³Όκ±°μλ μλμΌλ‘ μ λΆ λ°°ν¬νμ΄μΌ νκΈ°μ APP λ°°ν¬κ° λ§€μ° μ΄λ €μ μΌλ μ΄λ₯Ό μλνλ₯Ό ν΅ν΄ μ½κ² λ§λ€μλ€.
- Container orchestration β μμ
λμ κ°μννλ€.
- μ¬μ©μλ λ μ΄μ κΈ°μ μ λ¬Έμ λ₯Ό λ€λ£° νμκ° μλ€.
- λ λ§μ 컨ν μ΄λλ€μ κ·Έλ£Ήλ€κ³Ό λμμ μνΈμμ©ν μ μλ€.
- 컨ν μ΄λ λ±λ‘μ κ³ννκ³ κ΅¬νν μ μλ€.
- λ€νΈμν¬, μ€ν 리μ§, 보μ λ±μ λͺ¨λ μ 곡 κ°λ₯νλ€.
[Fig2]
- Container Orchestration History
- 2009 λ Mesos μ°κ΅¬ νλ‘μ νΈλ‘ μμ, λ²ν΄λ¦¬ λνμμ μμ.
- 2010 - Guest OS over Host OS λ¬Έμ
- 2015 λ μ μΏ λ²λ€ν°μ€ λ²μ 1.0 μΆμ, Docker Swarm 1.0 μΆμ (2013 μλ κ°λ°μμνμ§ μμμκΉ?)
- μ€λλμ§ μμ λΆμΌμ΄λ€.
- Docker Swarm : Container Orchestration μ μν λꡬμ΄λ€.
- λ€μμ λ컀 컨ν μ΄λλ₯Ό νλμ μλΉμ€λ‘ λ€λ£¨κ³ μ‘°μ’ νλ€.
- Manager, Worker μ§μ , Worker β Manager μκ² λ±λ‘, Manager κ° Worker μ₯μ
- Docker λ₯Ό μ€ννλ λ¨Έμ μ κ·Έλ£Ήμ λ§νλ€.
- λ€μμ λ컀 νΈμ€νΈλ‘ ꡬμ±λμ΄ μλ€.
- λ
Έλμ μν κ³Ό μ°κ²°
- Manager
- λ©€λ²μ½ λ±μ λ Όλ¦¬μ μ°κ²°μ λ§λ€μ΄ Worker λ€μ κ΄λ¦¬νλ€.
- Worker λ Έλμ κ°μ΄ 컨ν μ΄λλ₯Ό μ€νν μ μλ€.
- Workers (Nodes) : Swarm μλΉμ€λ₯Ό μ€ννλ€.
- join λͺ λ Ήμ΄ : λ§€λμ μ μ°κ²°νμ¬ λ§€λμ μ λ±λ‘νλ€.
- leave λͺ λ Ήμ΄ : λ±λ‘λ Worker λ₯Ό λ§€λμ μ λΆλ¦¬λλ€.
- Manager
- Task : Swarm λ§€λμ μ μν΄ κ΄λ¦¬λκ³ Swarm μλΉμ€μ λΆλΆμΌλ‘ μ€ν μ€μΈ 컨ν μ΄λμ΄λ€.
- Node : Swarm μ μ°Έμ¬ν λ컀 μμ§μ μΈμ€ν΄μ€μ΄λ€.
- Manager Nodes : worker node μ task λ₯Ό 보λ΄μ€λ€.
- Worker Nodes : task λ₯Ό λ§€λμ λ‘λΆν° λ°κ³ μ€ννλ€.
[Fig3]
docker-machine ssh {manager name} docker swarm init --advertise-addr {manager ip}- advertise β λ΄κ° Manager λΌλ κ²μ μλ¦¬κ³ Manager κ° λκΈ° μν μ΄κΈ°νλ₯Ό νλ€.
- Manager μ Worker λ‘ λ€μ΄κ°κ³ μΆμ κ²½μ° join κ³Ό ν ν°μ ν΅ν΄ ν΄λΉ Manager μ μΌκΎΌμΌλ‘ λ±λ‘νλ€.
- Manager μ Worker λ Έλ μ¬μ΄μ ν¬νΈ λ²νΈ 2377, 2376 μ€ νλκ° μ΄λ € μμ΄μΌ νλ€. μ΄ ν¬νΈλ₯Ό ν΅ν΄μ docker swarm init, docker swarm join μ μ€ννμ¬ μ°κ²°νκΈ° λλ¬Έμ΄λ€. (물리μ μΌλ‘ λ¨μ΄μ Έ μλ μ»΄ν¨ν°λ€μ ν΄λ¬μ€ν°λ§ν λ λ€νΈμν¬ μ νμ λ°κΈ° λλ¬Έμ ν¬νΈλ₯Ό μ΄μ΄μ€μΌ νλ€.)
- Docker-Machine Task Deployment
- scp β νμΌμ μλλ°©μκ² λ³΅μ¬ν μ μλ€. λ§€λμ μκ² docker-compose.yml νμΌ μ μ‘νκΈ°
- stack deploy β μ€ν
- κΈ°λ³Έμ μΌλ‘ Worker μκ² λλ λλ Round Robin, 곡ννκ² λλμ΄ μ λ¬νλ€.
cf) Label
- key value μ ννλ‘ κ°μ μ€λ€.
- λ²μ£ΌννκΈ° μν μΌμ’ μ νκ·Έλ₯Ό λΆμ΄λ κ²κ³Ό κ°λ€.
- Docker Object Labels : Docker object μ λ©νλ°μ΄ν°λ₯Ό μ μ©νκΈ° μν 맀컀λμ¦
- Key λ νΉμνκ³ Value λ μ¬λ¬ κ°μΌ μ μλ€.
- Url μ λ€μ§μ ννλ‘ λ²μ£Όννμ¬ λλ μ μλ€. (.κ³Ό - μ¬μ©)
- μμμ λλΆλΆ μλ¬Έμλ‘ μμνκ³ λλλ κ²½μ°λ μλ¬Έμλ‘ λλΈλ€.
- e.g., com.example.some-label
- μ°μμ μΈ .κ³Ό - μ νμ©λμ§ μλλ€.
- namespace νλλ . μ μν΄ λΆλ¦¬λλ€.
- DNS notation μ μμ
- κ·Έλ£Ήλ€λ‘ λλμ΄ λͺ λ Ήμ΄λ₯Ό μ€ μ μκΈ° λλ¬Έμ μ¬μ©νλ€.
μ°Έκ³ λ¬Έν
- [Fig1] : https://subscription.packtpub.com/book/virtualization_and_cloud/9781786469755/1
- [Fig2] : https://scoutapm.com/blog/container-orchestration-in-2019
- [Fig3] : https://www.slideshare.net/Docker/docker-swarmmikegoelzermvmeetup45minworkshop-02242016-1-58805924