ν΄λΌμ°λ μλ² κ°μνμ 컨ν μ΄λ κΈ°μ
Container Technology
1. 컨ν
μ΄λλ
μ΅κ·Όμλ 컨ν
μ΄λκ° λ±μ₯νλ€. Host λ‘λΆν° 격리λμ΄ λ
립μ μΈ νκ²½μ μ΄λ―Έμ§ νμΌλ‘λΆν° μ€νλλ νλ‘μΈμ€μ΄λ€. namespaceμ cgroup κΈ°μ μ μ¬μ©νλ€.
μλ VMλ OS λ₯Ό μ΄λ―Έμ§νν΄μ λ§λ€μ§λ§ 컨ν
μ΄λμμ λ§νλ μ΄λ―Έμ§λ μ΄ν리μΌμ΄μ
μ΄λ―Έμ§μ΄λ€.
λ΄κ° μ±μ λ릴λ νμν λΌμ΄λΈλ¬λ¦¬, μ΄ν리μΌμ΄μ
μ체λ₯Ό μ΄λ―Έμ§νν΄μ λ§λ€μ΄λμ κ²μ΄λ€.
2. 컨ν
μ΄λμ VMμ μ’
λ₯
Linux LXC : OS λ΄μμ μλνλ κ²½λνλ VM ꡬν.
Docker : Docker μΆμ μ΄νλ‘ μ»¨ν
μ΄λκ° κ°κ΄λ°κΈ° μμν¨. κ°λ°μλ€μ΄ λ€μν OSμμ μλνλ λμΌν κ°λ° νκ²½μ ꡬννλ κ²μ΄ λͺ©μ . Docker Image λ μ€νμ νμν λͺ¨λ κ²μ ν¬ν¨νμ¬ docker format νμΌλ‘ μμ±νλ κ²μ΄λ€.
App code, runtime, system tools, system libraries => image λ‘ λ§λ λ€. κ·Έλ¦¬κ³ imageλ 컨ν
μ΄λλ‘ λ€μ΄κ°λ€.
3. VM vs Docker Container
VM (Virtual Machine): GuestOSκ° νμνμ¬ μ€λ²ν€λ λ°μν μ μμ. κ·Έλ μ§λ§ OSκ° μμ΄μ κ΄λ¦¬μ±μ΄ μ’λ€.
Containers (ex) Docker) : GuestOSμμ μ¬μ©λλ 리μμ€ λΆνμ. Hypervisorλ‘ μΈν μ€λ²ν€λ κ°μ.
μμ§κΉμ§ 컨ν
μ΄λμ κ΄λ¦¬μ±μ΄ μ’μ§ μμμ, VMμ μ°λ κ²½μ°λ μμ.
4. Container Network
컨ν
μ΄λ λ΄λΆμ μλ λ€νΈμν¬λ νΈμ€νΈ 물리주μμ λ€λ₯΄λ€.
Port Forwardingμ ν΅ν΄μ host μ£Όμμ 컨ν
μ΄λ λ΄λΆμ μ£Όμλ₯Ό μ°κ²°ν΄μ€λ€. namespace μμμ μ‘°μ ν λΆλΆ, λ°κΉ₯μμ μ‘°μ ν λΆλΆμ μ ν΄μ£Όλ©΄ κΈ°μ‘΄μ λ€νΈμν¬ μλλ°©μκ³Ό μ μ¬νλ€.
5. κ°μν κΈ°μ
μλ², μ€ν 리μ§, λ€νΈμν¬ λ±μ IT리μμ€λ₯Ό 물리μ μ±μ§μ΄λ κ²½κ³λ₯Ό κ°λ¦¬κ³ , λ
Όλ¦¬μ μΈ λ¦¬μμ€ μ΄μ© λ¨μλ‘ λ³νν΄μ μ 곡νλ κΈ°μ
5-1. κ°μν κΈ°μ μ λͺ©μ
- μΈνλΌλ₯Ό λ¨μν μν΄ (μ¬μ©μλ μ΄λ€ μΈνλΌμΈμ§ λͺ°λΌλ μ¬μ©κ°λ₯νλ€. )
- λΆνμν μ₯λΉ μ¦μ€ λ°©μ§, μ ν΄ μ₯λΉμ νμ©λ₯ μ λμ
- μλΉμ€ μ₯μ μ μ λμ κ°λ₯
- TCO (Total Cost of Ownership) λ₯Ό μ κ°ν μ μλ€. μ¦ κ΄λ¦¬ λΉμ©μ μ κ°ν μ μλ€.
- μ μν νμ₯ κ°λ₯
5-2. κ°μν κΈ°μ μ μ’
λ₯
- μλ² κ°μν, μ€ν λ¦¬μ§ κ°μν, λ€νΈμν¬ κ°μν
- 곡μ ν΄μ μ¬μ©νλ μμμΈλ°, λ΄κ²μ λ€λ₯Έ κ²μΌλ‘λΆν° λΆλ¦¬μν€κΈ° μν΄ μ¬μ©νλ κΈ°μ μ΄λ€.
μλ² κ°μν
1. μλ²κ°μν μ’
λ₯
1) Bare-Metal Hypervisorκ°μν
μλ² μμ λ°λ‘ Hypervisorκ° μλ€. μ¦, HostOSκ° νμμμΌλ©°, HostOS μμμ λν CPU μ€μΌμ€λ§μ νμ§ μμλ λκΈ° λλ¬Έμ μ€λ²ν€λκ° μ λ€.
κ° VMλ³ κ΄λ¦¬κ° μ μ°ν¨
μ체μ μΈ κ΄λ¦¬ κΈ°λ₯μ΄ μμ΄μ λ³λμ κ΄λ¦¬ μ루μ
μ΄ νμν¨.
2) Hosted Hypervisor κ°μν
Host OSκ° νμν¨ .
HostOS μμ κ°μλ¨Έμ μ λ°°μΉνλ―λ‘ μ€λ²ν€λκ° λ°μν¨
VMμμ±μ΄ κ°λ¨νλ€.
λ€μν κ΄λ¦¬ μ루μ
μ΄ μλ€.
2. Hypervisor λ ?
νλ‘μΈμλ λ©λͺ¨λ¦¬μ κ°μ λ€μν μ»΄ν¨ν° μμμ μλ‘ λ€λ₯Έ κ°μ’
OSμ μ κ·Ό λ°©λ²μ ν΅μ νλ μμ κ³μΈ΅μ μννΈμ¨μ΄
λ€μμ OSλ₯Ό νλμ μ»΄ν¨ν° μμ€ν
μμ κ°λν μ μκ² νλ μννΈμ¨μ΄λ‘ CPUμ OSμ¬μ΄μ λ―Έλ€μ¨μ΄
νλμ μ»΄ν¨ν°μμ μλ‘ λ€λ₯Έ OSλ₯Ό μ¬μ©νλ κ°μ μ»΄ν¨ν°λ₯Ό λ§λ€ μ μλ ν¨κ³Όμ μΈ κ°μν μμ§
κ°μν μ ν
1. μ κ°μν
μμ€ν
μ 체λ₯Ό μμ ν κ°μννμ¬ μμ€ν
μ Bios λΆν° CPU, Memory, I/O λ±μ μμ ν κ°μννλ λ°©λ²
- μ₯μ : νλμ¨μ΄λ₯Ό μμ ν κ°μν νλ―λ‘, GuestOSλ₯Ό μμ νμ§ μκ³ λ€μν OSλ₯Ό μ¬μ©ν μ μμ. κ°μλ¨Έμ μ μ μ§λ³΄μκ° μ©μ΄
- λ¨μ : μ κ°μνλ₯Ό μ€ννκΈ° μν΄μ CPUμ Virtualization Technology λ₯Ό μ¬μ©νλ―λ‘ μ±λ₯ μ νκ° λ°μν μ μμ.
- μ’
λ₯ : KVM
KVMμ κ²μ€νΈ μ΄μ체μ μ μμ μ΄ νμμλ€.
Linux μ체λ₯Ό νΈμ€νΈ OSλ‘ μ¬μ©νλ€. -> νλνλκ° λ¦¬λ
μ€ single process μ²λΌ μλν¨.
2. λ°κ°μν
νλμ¨μ΄ μ 체λ₯Ό κ°μν νλ λμ μ, κ°μνκ° μ μ©λ 리λ
μ€ μ»€λμ μμ€ν
λΆν
μ μ μ©. λͺ¨λ μ₯μΉλ₯Ό κ°μννλ κ²μ μλ.
- μ₯μ : κ°μλ¨Έμ μ΄ μ§μ νλμ¨μ΄λ₯Ό μ μ΄νλ κ²μ΄ μλλΌ, νμ΄νΌλ°μ΄μ μκ² requestνκ³ , νμ΄νΌλ°μ΄μ κ° νλμ¨μ΄λ₯Ό μ μ΄νλ€. λ°λΌμ λμ μ±λ₯μ μ μ§ν μ μλ€.
- λ¨μ : λ° κ°μνλ₯Ό μ€ννκΈ° μν΄ κ°μλ¨Έμ OSμ 컀λ μΌλΆλΆμ μμ ν΄μΌ ν¨. μ μ§λ³΄μκ° μ΄λ €μ.
- μ’
λ₯ : Xen
λ°κ°μν/μ κ°μν λͺ¨λ ꡬν κ°λ₯.
κ²μ€νΈ μ΄μ체μ μ μμ μ΄ νμνλ€.
μ κ°μνμ λΉν΄ μ²λ¦¬ μ€λ²ν€λκ° μ λ€.