[Kubernetes] κΈ°λ§κ³ μ¬ μ 리 1
Chap12. Private Multi-Node Docker / Docker in docker
- Docker in docker β DinD
- official but not recommended (κΆμ₯ X)
- λ컀 μμμ λ€μ λ컀λ₯Ό λμΈ μ μλλ‘ νλ€ + κ²½κ³ κ° μ λ§ λ§λ€.

Chap13. Docker Swarm 1
- μμ² μλ§λμ μ»΄ν¨ν°μμ SW λ리기 μν κΆκ·Ήμ μΈ λ°©λ², λ컀 μ€μ (like μΏ λ²λ€ν°μ€)
- SWARM β λΌ, κ΅¬μ± μμλ μ¬λ¬ κ°μ§λ§, νλμ λ
Όλ¦¬μ μΈ κ΅° (λ컀 μ€μμ 컨ν
μ΄λλ€μ κ΅°)
- μΌμΌμ΄ λ€ νμ΄ν? λΆκ°λ₯ / μλνλ λ컀 μ€μ λ±μ₯ -> λ νΈνκ² μλ§μ μ΄λ―Έμ§μ 컨ν
μ΄λ 컨νΈλ‘€ κ°λ₯
- μνμΌμ 컀맨λλΌμΈμ ν΅ν΄ μΌκΎΌλ€μκ² μ« λΏλ¦Ό β κ°λ°μ κ΄μ
- λ컀 λ¨Έμ μ ν΅ν΄ μ격μ μ»΄ν¨ν°λ₯Ό κ΄λ¦¬ν μ μκ² λ¨
- λ컀 μ€μμ μ격μ λ Έλ κ΄λ¦¬ μ΄μμΌλ‘, μ¬λ¬ μλΉμ€μ 컨ν μ΄λλ€μ κ΄λ¦¬νκΈ° μν μ©λ
* Orchestratior - μλ§μ 컨ν
μ΄λλ€μ΄ νλμ μ΄ν리μΌμ΄μ
(μλΉμ€)μ ꡬμ±ν¨
μ κΈ°μ μΌλ‘ λμνκ² νκΈ° μν΄μ, μλ§μ μ 보λ₯Ό μ§νμκ° κ΄λ¦¬ (μ€μΌμ€νΈλ μ΄ν°μ λμμ 컨ν
μ΄λ)
* μ€μΌμ€νΈλ μ΄ν°λ‘ νλλ‘ λ¬Άμ / μ€ννλ μ λ IAC (μνμΌ) / applicationμ΄ μ΄κ±Έ λͺ¨λ₯΄κ² λμκ°κ² νλ κ²μ΄ μ€μΌμ€νΈλ μ΄ν°μ μν
- μλ§μ μμ SWλ€μ μ΄μ§ν© = μΏ λ²λ€ν°μ€ (ꡬκΈ)
+ μΏ λ²λ€ν°μ€μ λ컀 μ€μμ΄ μλμ°λ§₯
- scalability μΈ‘λ©΄μμ μΏ λ²λ€ν°μ€λ λκ·λͺ¨μ μΌμ μ ν©, ꡬκΈμ΄ μμ© μλΉμ€λ₯Ό λμ°κΈ° μν΄ κ°λ°
- λ컀 μ€μ - μμ κ·λͺ¨μ μ ν©, λμ λμ΄λκ° μ½λ€
* Container Orchestration β a process that automates the deployment, management, scaling, networking, and availability of container-based applications / CI/CD DevOps μλνκ° ν΅μ¬
- multiple Docker hostsλ‘ κ΅¬μ± β manager(리λ)μκ² μνμΌμ μ 곡, λ§€λμ κ° workers(nodes) μΌκΎΌλ€μ λμ΄λ€.
Ex) 3κ°μ λ컀 λ¨Έμ μ λμ (manager, worker1, worker2)
docker-machine ssh manager docker swarm init --advertise-addr 192.168.99.100
: λ§€λμ μΌ λκ° λμ₯μ΄μΌ (λμ₯μ λ§λλ κ²) & λ΄κ° λ§€λμ λΌκ³ μ£Όλ³μ λΏλ¦¬λ κ²
docker-machine ssh worker1 docker swarm join --token ~ // μ΄ λͺ
λ Ήμ μΉ΄νΌν΄μ, μμ»€κ° ν΄λΉ μ€μμ λ€μ΄κ°λ€
λμ₯λ IP addressλ‘ λ΄ port numberλ‘ join (192.168.99.100:2377)
* Docker stack β init, joinμ΄ λλλ©΄ μ€νμ stack files
: μνμΌλ€μ μ΄μ μ€ν νμΌμ΄λΌκ³ λΆλ₯Ό κ², νλμ μλ μ μ μ΄ν리μΌμ΄μ
μ μ€νμ΄λΌκ³ μΉν¨
- scp λͺ
λ Ήμ΄λ₯Ό ν΅ν΄, λ΄ λλ ν 리μ docker-compose.yaml νμΌμ λ§€λμ μ λλ ν λ¦¬λ‘ λ³΅μ¬νλ€.
- docker stack deploy -c docker-compose.yaml / μλΉμ€λ₯Ό λ리λΌκ³ νλ€ + μ€μμ μλμΌλ‘ local networkλ₯Ό λ§λ¦
- μ΄ν stack rm μ ν΅ν΄ λ€νΈμν¬μ μλΉμ€ (helloswarm) μ§μ°κΈ° -> docker swarm leaveλ‘ joinν μμ»€κ° μ€μμμ λκ°κΈ°
- docker swarm leave λͺ λ ΉμΌλ‘ λ§€λμ λ μ§μ°κΈ° / docker-machine rm λ컀 λ¨Έμ λ Έλλ€μ μ§μ
Chap14. Docker Swarm 2
- Scale service up & down, update - μ¬λμ΄ μμΌλ‘ νλ κ²½μ°λ μλ€, λλΆλΆ νλ‘κ·Έλ¨μ ν΅ν΄ up, down
+ μΏ λ²λ€ν°μ€ rest API μΈμ΄λ³ μ‘΄μ¬, μμΌλ‘ νμ΄νν λͺ
λ Ήλ€ λͺ¨λ API νΈμΆλ‘ μ€ν κ°λ₯
+ μ€μμ λ 컨ν μ΄λ λ°μ΄λ²λ¦Ό -> λͺ λ Ήμ λν κ²°μ μ μ¬λμ΄ νλ€ / μΏ λ²λ€ν°μ€λ νλνλ μ¬μΈνκ² κ΅μ²΄ (μ¬λμ΄ μνν λΆν) -> μΈκ°μ΄ νλ μΌμ λͺ¨λ μ½λν -> μΏ λ²λ€ν°μ€κ° μμμ ν¨ vs μ€μμ μ¬λμ΄ λͺ λ Ήμ λ΄λ¦Ό
docker service create --replicas 3 -p 80:80 --name web-1 nginx // nginxλ‘ web-1 μ΄λ¦μ 컨ν
μ΄λλ₯Ό 3κ° λ§λ€μ΄λΌ
docker service scale web-1=4 // * scale optionμ μ¬μ©νμ¬ μ»¨ν
μ΄λ κ°μλ₯Ό λλ¦¬κ³ μ€μ
docker service update --image nginx:1.14.0 web-1 // latest versionμ΄λ nginxλ₯Ό downgrade, λ‘€λ°±
Chap15. Docker Labels
- λ컀μμ μ·¨κΈνλ μ€λΈμ νΈ(μ΄λ―Έμ§, 컨ν
μ΄λ, volumes, networks, swarm nodes etc)μ λΌλ²¨μ λΆμ΄λ κ²
- 무μΈκ° ꡬλΆνκΈ° μν΄ λΌλ²¨μ λ¬ μ μλ€ or 컨ν
μ΄λ λ±μ μνΈ κ΄κ³λ‘ λ¬Άμ΄μ£ΌκΈ° μν΄μ
- key-value pair (dictionary), μ¬λ¬ λΌλ²¨μ λ¬ μ μλ€.
- Each key-label pair must be unique within an object.
+ μΉ΄ν
κ³ λ¦¬(λλΆλ₯μμ μλΆλ₯λ‘) ꡬλΆν λ . μ μ μ°κ³ , λλ±ν λ 벨μμ ꡬλΆν λ β νμ΄νμ λΆμΈλ€.
+ App νλ‘κ·Έλ¨ κ°λ°ν λ μΉμ¬μ΄νΈ μμμΌλ‘ λλ©μΈμ λ€μ§λλ€ ex) com.example.some-label
+ λμ»€κ° μ μ ν λΌλ²¨μ μ¬μ© λΆκ° ex) com.docker.*, io.docker.*, &org.dockerproject.*
* λ³μμ κ°μ λ£λλ€ (or μ€λ₯Έμͺ½μ μΌμͺ½μΌλ‘ μΉνλ€)
- docker node update --label-add foo worker1 // worker1 μ :foo λΌκ³ λΌλ²¨μ λΆμ΄λ κ²
- static for the lifetime of the object, νλ² μμ±νλ©΄ μ€λΈμ νΈκ° μ£½μ λκΉμ§ μ μ§λ¨
- to change labels, you must recreate the object / μΏ λ²λ€ν°μ€μμλ λμ μΌλ‘ update κ°λ₯ν¨
Chap16. Kubernetes Overview
* μΏ λ²λ€ν°μ€λ λ컀μ€μκ³Ό κ°μ 컨ν
μ΄λ μ€μΌμ€νΈλ μ΄μ
μ΄λ€.
- μΏ λ²λ€ν°μ€λ μ€μ λ‘ νμ¬μμ μ΄μν μ μλ μμ€, ꡬκΈμ΄ μ°λ μλΉμ€λ₯Ό μ€νμμ€ν ν κ² (ꡬκΈμ΄ μ¨μ κ²μ¦λ¨)
- λ컀 μ€μμμλ μΌμΌμ΄ μμΌλ‘ ν΄μΌ νλ κ²λ€μ μΏ λ²λ€ν°μ€λ μλννμ¬ ν¨μ¬ λ§μ κΈ°λ₯μ μ 곡, λκ·λͺ¨μ νΈλ¦¬
- μΏ λ²λ€ν°μ€λ μ€νμμ€ SW / management κΈ°λ₯μ΄ λμ»€λ³΄λ€ κ°λ ₯ / λ컀λ₯Ό λ°μ κΉ - 컨ν
μ΄λ κΈ°μ μ λμ»€μΈ κ²
- open-source system for automating deployment, scaling & management of containerized applications (Google)
+ ꡬκΈμ λ
Όλ¬Έ Borg, Omega - μμ² μλ§λμ μ»΄ν¨ν°λ₯Ό λ¬Άλ νμ (cluster) 컨ν
μ΄λκ° μλλΌ job, task μ¦ νλ‘κ·Έλ¨
* CNCF - Cloud Native computing Foundation : μ μλΉμ΄ μμ² μλ§λμ μ»΄ν¨ν°κ° μλ€κ³ κ°μ νκ³ μμ
- 리λ
μ€ μ°νμμ ν΄λΌμ°λ μ»΄ν¨ν
κ΄λ ¨μΌλ‘ λΆλ¦¬λ¨, μμ² μλ§κ°μ CPU, DISK, λ€νΈμν¬λ₯Ό μκ°νκ³ SW λ§λ€κΈ°
- microservices, dynamically orchestrating those containers to optimize resource utilization
* Kubernetes: polyglot - multi-languageλ‘ κ°λ° / Google / Go μΈμ΄λ‘ μ°μ β cluster management SW
- 컨ν
μ΄λ ν΄λ¬μ€ν° κ΄λ¦¬ / deploying appsμ λν λꡬ μ 곡 / scalingκ³Ό update
* PokΓ©mon Go - 컨ν
μ΄λ κΈ°μ μ’μ 건 μκ² μ΄, κ·Όλ° public userλ€μ΄ VMμ λ²μ΄λ νμκ° μμ΄?
+ ν¬μΌλͺ¬ κ³ : 컨ν
μ΄λ λ² μ΄μ€, κ΅¬κΈ μΏ λ²λ€ν°μ€ μ¬μ©
-> νΈλν½ νλ°νμ§λ§, μλΉμ€μ λ¬Έμ κ° μμλ€ (μ±κ³΅μ μΈ μ΄μ μ¬λ‘) / μ΄μ λ ν°μ§λ©΄ μλΉμ€κ° λ©μΆ°μΌ λλλ°, μ ν°μ§
+ μμλ³΄λ€ 50λ°° μ΄μμ νΈλν½μ΄ νλ°νμΌλ 견λ λ€.
** μΏ λ²λ€ν°μ€κ° κ²μ¦λ μ¬λ‘ - 컨ν
μ΄λμ μΏ λ²λ€ν°μ€λ λ²€μ² νμ¬ merit / ꡬκΈμ νκΉμ λ²€μ²!
+ νμ¬ μ μΈκ³κ° μΏ λ²λ€ν°μ€λ‘ λλλ¨κ²° / μλμ μΌλ‘ 컨ν μ΄λ μ€μΌμ€νΈλ μ΄ν° μ€ μΏ λ²λ€ν°μ€μ λΉμ¨μ΄ λλ€
Chap17. Microservices and Killercoda
- λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ² vs IBM mainframe - μμ²λ CPU DISK ν λμ μ»΄ν¨ν° (monolithic)
- κΈ°μ‘΄μ λͺ¨λλ¦¬ν± κ΅¬μ‘° - νλμ κ±°λν, λ§κ°ν μ»΄ν¨ν°κ° λͺ¨λ ν΅μ / μ¬μ©μ μΈν°νμ΄μ€ / μ μ₯ν μ λ³΄κ° μλ data access layer
/ λμκ°λ λ‘μ§ / 3κ°λ₯Ό, νλμ μ΄ν리μΌμ΄μ
μμ λͺ¨λ κΈ°λ₯μ ꡬννλ κ²
- μ€ννμΌ νλμ λ€ λ£μ (μ¬μ©μ UI, μ£Όλ¬Έκ³Ό κ΄λ ¨λ λ°±μλ λ‘μ§, inventory λ°μ΄ν° μ μ§ λ±)
* What happens once the apps becomes large & team grows in size?
1) μλ‘μ΄ μꡬμ¬ν -> 4κ°μ ꡬμ±μμκ° μμ λ, μ©λμ΄ λμ΄λλ€κ³ ν΄μ, 4κ°μ λͺ¨λμ΄ μΌκ΄μ μΌλ‘ μ¦κ°νλ κ²½μ°λ λ³λ‘ μμ
- λͺ¨λλ¦¬ν± κ΅¬μ‘°λ νΉμ λͺ¨λμ΄ 2λ°° λ νμνλ©΄ 1ν
λΌ μ© λ μλ₯μ΄κ° νμν¨
- λ§μ΄ν¬λ‘ μλΉμ€λ μ¦λμ΄ νμν λͺ¨λλ§ Nλ°° μ°¨λ³νλ μ©λμ λν΄ νμν λ§νΌλ§ μ¦μ€μ΄ κ°λ₯ν¨
2) νμ΄ μ»€μ§λ©΄? κ°μ΄ νλμ λκ·λͺ¨ μ΄ν리μΌμ΄μ
μ μμ
νλ€λ κ²μ μ΄λ ΅λ€
- ν λ² λ¦΄λ¦¬μ¦ νλ €λ©΄ μ¬λ¬ λͺ¨λ κ°λ°μλ€μ΄ κ·μΉ, μΌμ μ λ§μΆμ΄μΌ ν¨
- κ°κ°μ λ
립μ μΈ νλ‘κ·Έλ¨λ€ - ν΅μ , APIλ₯Ό ν΅ν΄ μ 보λ₯Ό μ£Όκ³ λ°λλ‘ ν¨
- λ°λ‘ DBλ₯Ό κ°κ³ μμ / μ°λ¦¬ ν νλ‘μ νΈκ° κΈ°λ₯μ νμ₯νκ³ , μμ ν΄λ μ λΆμμ λ€λ₯Έ νλ‘μ νΈμ μν₯μ μ£Όμ§ μμ (ν΅ν© κ΄λ ¨ νμκ° μ€μ΄λ¦) / λ¦΄λ¦¬μ¦ μΌμ μ΄ λΆμλ³λ‘ λ¬λΌμ Έλ λ¨ (λ
립μ ) // νμ μ΄μ(HR)μ λν μ κ·Όλ²λ λ¬λΌμ§
-> ν΄λΉ νλ‘κ·Έλ¨μ μ΅μ νλ μ¬λκ³Ό κΈ°μ μ μ νν μ μλ€ (μΈμ΄, κ°λ° μ€ν, polyglot)
* Why Microservice Architecture?
- μμ μλΉμ€λ€λ‘ μ°’λλ€ / 3κ°μ κΈ°λ₯μ΄ νμν λΏ, κ°κ° λ
립μ μΈ μλΉμ€λ€λ‘ λΌμ΄λ΄μ μ€νμν€κ³ , μ΄κ±Έ λͺ¨μ μ΄ν리μΌμ΄μ
μΌλ‘ μ 곡νμ / product = group of independent services / λͺ¨λ business areaμ λ°λΌ μͺΌκ°μ§κ³ , κ°κ°μ΄ μνλ tech stackμ νμ©νμ¬ κ°λ°λ¨ / μλ‘ λ€λ₯Έ μλΉμ€λ€μ rest over HTTPλ₯Ό νμ©νμ¬ ν΅μ κ°λ₯ + μκ³ , λΉ λ₯΄λ€
(1) Scalability β scalie independently without affecting other microservices β λͺ¨λ리ν±μ μ©λ λΆμ‘±νλ©΄ μΈμλ₯μ΄
(2) Availability - κ°μ©μ± - κ³μ μλΉμ€κ° λμνλκ°? κ΅¬μ± μμ μ€ νλκ° λ¨Ήν΅μ΄ λλ©΄? λͺ¨λ리ν±μ λ€ μ£½μ
- μΌλΆ κΈ°λ₯μ΄ μ£½μΌλ©΄, μ½κ°μ μ§μ°μ μκ² μ§λ§, κ±λ§ λμ΄λ¦¬λ©΄ λλ€ - λͺ¨λ리ν±μ²λΌ ν΅μΌλ‘ λ§κ°μ§μ§λ μμ
(3) Fault Tolerance β μ₯μ λμ β applicationμ μμ λΆλΆλ§ μν₯μ λ°λλ€ (SK C&C μ 체 λ€ μ£½μ§ μκ³ )
(4) Agility - μꡬμ¬νμ΄ λ°λ λ, agileνκ² λμ κ°λ₯ - μμ κ·λͺ¨ ν, μ§κΈ λΉμ₯ νμν κΈ°λ₯μ λΉ λ₯΄κ² κ°λ°
(5) Polyglot Persistence - νλμ κ±°λν μλΉμ€λ₯Ό λ§λλλ°, μ¬λ¬ μΈμ΄μ μ¬λ¬ DBκ° κ³΅μ‘΄νλ ꡬ쑰
- λͺ©μ μ λ§λ λꡬλ₯Ό μ΅μ ννμ¬ μ¬μ©ν μ μλ€ (multi-lingual) / λͺ¨λ리ν±μ DBμ major μΈμ΄κ° μ ν΄μ§
- λ§μ΄ν¬λ‘μλΉμ€λ μ νΈνλ κΈ°μ μ€νμΌλ‘, λ
립μ μΌλ‘ κ°λ° κ°λ₯ν¨ (polyglot) - κ°μ λ³ΈμΈμ μν μ μΆ©μ€
(6) Maintainability - μ μ§λ³΄μμ νΈλ¦¬ν¨ / μμ νμΌ, νλ‘κ·Έλ¨λ€λ‘ λ§μ΄ λλμ΄μ§ - λ©μΉ ν° νλ보λ€, λ©μΉ μμ μ¬λ¬ κ°κ° μ μ§λ³΄μνκΈ° μ½λ€
* λ§μ΄ν¬λ‘ μλΉμ€κ° μ₯μ μ κ°λ κ²½μ°
(1) Software stack agnostic - κ°μ μμμ μ§ / APIλ§ λ§μΆμ (HTTP ν΅μ νλ‘ν μ½λ‘ νλ κ²)
- SW stackμ μ νμ X, μ½λ§€μ΄μ§ μμ - μνλ κΈ°λ₯λ§ μ λλ‘ ν΄μ£Όλ©΄ λ¨ / λ΄λΆλ μμμ μ§λΌ (μ΅μ ν κ°λ₯)
(2) Faster Development - μμ SWλ₯Ό ν루μ λ¦΄λ¦¬μ¦ 4λ²μ΄λ λ°κΏ μ μλ κ² ex) λ€μ΄λ², ꡬκΈ
(3) clear separation of business concerns - 볡μ‘νλ λμ€μ
+ λ³λλ‘ κ°λ°λκ³ , μ μ§λ³΄μ λλ©°, 7~9λͺ
μ μμ ν λ΄λΆμμ κ°λ°νκ³ , λ€νΈμν¬λ₯Ό ν΅ν΄ μλ‘ λννλ©°, κ°μ μ΄λ»κ² κ°λ°νλμ§ λ΄λΆμ μΈ κ΅¬νμλ κ΄μ¬μ΄ μλ€ - κ°κ°μ μλ²λ APIλ₯Ό μ 곡ν λΏ
- mesh κ·Έλ¬Ό λΌμΈμ ν΅μ λΌμΈμ΄ μλ κ²μ μλ―Έ - APIκ° λ―Έλ¦¬ μ μ μνλ κ² μ€μ // κ°μ²΄μ§ν₯μ κΈ°λ²κ³Ό μ μ¬ν¨
- κ°μ²΄μ κ°μ΄ κ°κ° λ
립μ μΈ μ»¨ν
μ΄λλ€λ‘ λ¨μ΄μ Έ μλ κ²
- flask crud resful μμ - get put delete λ± μ λ§ μμ νλ‘κ·Έλ¨μ κ°λ°νκΈ° μν λꡬ β micro νλ‘κ·Έλ¨λ€μ 짬
- μ΄λ° μ λ€μ 컨ν
μ΄λ μμ ꡬνν¨ + κ΅³μ΄ νλ μμν¬ μ μ¨λ λλλ°, ν΅κ³ μ 보 λ± κΈ°ν νΈνλκΉ μ°λ κ²
+ λ컀λ μκΈ°κ° μ§μ , μΏ λ²λ€ν°μ€λ NodePortλΌλ νλ‘κ·Έλ¨μ΄ λμ νλ κ²
β Cluster IP - μΏ λ²λ€ν°μ€λ₯Ό λμ°μλ§μ get allμ νλ©΄ μμ - DNSλ₯Ό ν¬ν¨νμ¬, ν΄λ¬μ€ν°λ₯Ό λ
Όλ¦¬μ μΌλ‘ νλλ‘ λ¬Άμ΄μ€
Chap18. Microservices and Killercoda
- μΏ λ²λ€ν°μ€λ λ컀 κΈ°λ°μ 컨ν
μ΄λλ₯Ό νμ©ν΄μ, κ·Έ μμ μΆκ°μ μΈ κΈ°λ₯λ€μ μ 곡νλ μ€μΌμ€νΈλ μ΄ν° SW
- Basic Objects in k8s β Node, Cluster, Container, Pod, Deployment, Ingress
* 컨ν μ΄λ κ°λ μ κ·Έλλ‘ μ¬μ©ν¨ - μΏ λ²λ€ν°μ€μμλ μ‘°κΈ λ ν° κ°λ μ΄ νμ -> podμ κ³ μν¨
* Pods - κ°λ° κ΄μ μμ κ°μ₯ μμ λ¨μλ 컨ν μ΄λ But μ΄μ κ΄μ μμλ DB, Logic λ±μ΄ ν¨κ» μμ§μ
- κ°λ³μ μΌλ‘ 컨ν μ΄λλ₯Ό μ΄μ©ν μΌX // ν¨κ» μμ§μ¬μΌ νκΈ° λλ¬Έμ IP Addressλ₯Ό λ¬Άλλ€.
- μ μλ―Έν κΈ°λ₯μ νλ μ΅μ λ¨μκ° pod - λ΄λΆμ 컨ν
μ΄λλ€μ΄ λ€μ΄κ°
ex) 1a, 1b : 컨ν
μ΄λ1μ ν΄λΉνλ μ κ° 2κ° λ μꡬλ // λμΌν IP Addressλ₯Ό νλ λΆμ¬ν΄μ 3κ°μ 컨ν
μ΄λκ° ν¨κ» μ°λ κ²μ²λΌ 보μΈλ€ - localhostλ‘ λ³ΈμΈλ€μ νΈμΆν μ μλ€
- basic building block of Kubernetes β the smallest and simplest unit in k8s β μΏ λ²λ€ν°μ€λ μ΄μ κ΄μ μ΄λκΉ
- podμ νλμ IP Addressλ₯Ό 곡μ - ν¬νΈ λλ²λ§ λ€λ₯΄κ² λΆλ₯΄λ©΄ λ¨ / λ΄λΆ 컨ν
μ΄λλ€μ΄ μκΈ°λ€λΌλ¦¬ λννκΈ° μ©μ΄
- Each pod is assigned a unique IP address β pod μμ μ λ€μ localhostμ port numberλ§ μ£Όλ©΄ κ°μ μ μ κ°λ₯
* Nodes - λ
Έλ = λ컀 λ¨Έμ , μ»΄ν¨ν°μ μμ / A worker machine in Kubernetes β VM or physical machine
- each node contains the services (a set of pods using label selectors) necessary to run pods
* Clusters - λ
Έλλ€μ μ§ν©μ²΄κ° ν΄λ¬μ€ν° / λ
Έλκ° ν΄λ¬μ€ν° μμΌλ‘ λλ €λ€μ΄κ° + μ€ν 리μ§λ€μ΄ ν΄λ¬μ€ν°μ λΆμ
- νλμ λ
Όλ¦¬μ μΈ μ»΄ν¨ν°, ν΄λ¬μ€ν°κ° μ°λ¦¬μ μ΄μμ λμ
- A set of nodes that run containerized applications managed by Kubernetes
- μ΄ ν΄λ¬μ€ν°λ λ
Έλλ€μ΄ μ§μ μΈν°λ·μ λ
ΈμΆλμ§λ μμ β λ€νΈμν¬κ° λ°©μ΄λ¨
-> λ°μΌλ‘ λκ°λ €λ©΄ ν΄λ¬μ€ν°μ ꡬλ©μ λ«μ΄μ μΈλΆλ‘ λκ°μΌ ν¨
* Deployment - νλμ μνμΌλ‘ νμν κ²λ€μ λ€ λμ β programmer describe a desired state in a Deployment
- κ°λ°μλ ν¬λ§νλ μνλ₯Ό μ λ¬ν΄ β λ컀 νμΌμ μ€ν, μΏ λ²λ€ν°μ€λ λΆν (pod 4κ°κ° λ¨κΈΈ ν¬λ§ν©λλ€)
- 4κ° μ€ νλκ° μ£½μμ΄ -> μΏ λ²λ€ν°μ€λ λͺ¨λν°λ§νλ€κ° λ€μ μ΄λ €μ€λ€ - μλΉμ€κ° μ΄λ»κ²λ μ μ§λλλ‘
* μνμΌμ μΈνλΌ κΈ°μ νλ κ²μ΄ desired state
** λ컀νκ³ λ€λ₯Έ ν° μ°¨μ΄μ
- λ컀μ€μ vs μΏ λ²λ€ν°μ€ - μΏ λ²λ€ν°μ€μλ μλΉμ€ μ΄μν λ νμν νλ‘κ·Έλ¨λ€μ΄ λ§μ
- λ컀λ λ컀 μμ§ / λ컀 λ°λͺ¬ λ (λ΄κ° λ컀 μμ§μκ² CLIλ‘ 4κ° λ§λ€μ΄μ£ΌμΈμ μμ²ν¨)
- μΏ λ²λ€ν°μ€λ 무μν νλ‘κ·Έλ¨λ€μ λ©μ΄λ¦¬ - μΏ λ²λ€ν°μ€κ° ν΄μ£Όλκ±°μΌ X μμ£Ό ꡬ체μ μΈ Deployment Controller νλ‘κ·Έλ¨μ΄ νλ κ²
- λ컀μκ² λͺ
λ Ήμ μ£Όλ©΄, λμ»€κ° μ΄μ ν΄λΉνλ νλμ ν¨ (4κ°λ₯Ό λ§λ€μ΄λΌ) - μ΄κ² λ컀 μ€νμΌ
- μΏ λ²λ€ν°μ€λ μΈκ°μ΄ μλλΌ μΏ λ²λ€ν°μ€κ° νλ κ² // 4κ°κ° λμνλλ‘ λ§λ€μ΄ μ£Όμ ¨μΌλ©΄ μ’κ² μ΄μ λΆν (κ°λ°κ³Ό μ΄μμ μ°¨μ΄μ λΉμ·)
* Ingress β An API Object that manages external access to the services in a cluster, typically HTTP
- ingress can provide load balancing, SSL termination and name-based virtual hosting
+ μ μΌ μ²μμλ service/cluster IP λ± νλ λ μμ - μλΉμ€ μμ cluster IP / node port μλ μλΉμ€
- μλΉμ€κ° λλ? νλ‘κ·Έλ¨μ΄λ€ - μΏ λ²λ€ν°μ€λ μ²μμλ λ컀 μ€μ + borg, omega μ λ -> μ μ κΈ°λ₯μ΄ λ§μμ§
- κ°λ°νμμλ μμ£Ό μ°λ κΈ°λ₯λ€μ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ§λ€μ΄λ΄κ³ , μ΄μνμμλ μΏ λ²λ€ν°μ€λ‘ μ΄κ²λ€μ λμ
νλ κ²