44BITλμ [μ΄λ³΄λ₯Ό μν μΏ λ²λ€ν°μ€ μλ΄μ] μΏ λ²λ€ν°μ€ μν€ν μ² κ°μλ₯Ό λ£κ³ μ 리ν λ΄μ©μ λλ€.
μΏ λ²λ€ν°μ€κ° 무μμΈμ§, κ·Έλ₯ 컨ν μ΄λλ₯Ό κ°λ°νκ³ λ°°ν¬νλ κ²κ³Ό 무μμ΄ λ€λ₯Έμ§λ 곡μ λ¬Έμ μΏ λ²λ€ν°μ€λ 무μμΈκ°?μ μ μ€λͺ λμ΄ μλ€. 본격μ μΌλ‘ 곡λΆνκΈ° μ μ μ΄λ€ λλμΈμ§ μ΄ν΄ν λ°λ‘λ, μΏ λ²λ€ν°μ€λ κΈ°μ‘΄ λΆμ° μμ€ν μ μ’ λ νλ ₯μ μΌλ‘ μ€νν μ μλλ‘ λμμ£Όκ³ (μ μ°μ±), μ 곡λλ νλ μμν¬, λ°°ν¬ ν¨ν΄ λ±μμ μλΉμ€μ κ·λͺ¨μ λ§κ² μ€νν μ μλλ‘ κ°λ°μμ μ νμ§κ° λ λ€μν κ² κ°λ€(μ νκΆ).
μ¦, μΏ λ²λ€ν°μ€λ μ¬μ©μμ μ νκΆκ³Ό μ μ°μ±μ μ§μΌμ£Όλ©΄μ νμ₯κ³Ό μ΄μμ΄ μ©μ΄ν 컨ν μ΄λ κ΄λ¦¬ μ€νμμ€ νλ«νΌμ΄λ€.
λ
Έλ(node)
: μΏ λ²λ€ν°μ€μμ μ΅μ λ¨μμ μ»΄ν¨ν
νλμ¨μ΄ν΄λ¬μ€ν°(cluster)
: ν¨μ¨μ μΈ λ¦¬μμ€ κ³΅μ μ κ· ν λ°°λΆμ μν΄ μ¬λ¬ λ
Έλλ₯Ό λ¬Άμ 그룹컨ν
μ΄λ(container)
: νλ μ΄μμ νλ‘μΈμ€ λͺ¨μ. μ€νμ νμν νμΌλ λͺ¨λ λ€μ΄μμ΄ λ¨Έμ κ° μ΄μμ΄ κ°λ₯.ν¬λ(pod)
: νλ μ΄μμ 컨ν
μ΄λ λͺ¨μ. 리μμ€ κ³΅μ μ μ₯μ μ κ·ΉλννκΈ° μν΄ ν¨ν€μ§λ‘ λ¬Άμ¬ μμ.ν¬λμ ν΄λ¬μ€ν°μ κ΄κ³ λλ¬Έμ μΏ λ²λ€ν°μ€λ μ§μ 컨ν μ΄λλ₯Ό μ€ννμ§ μλλ€. κ·Έ λμ ν¬λλ₯Ό μ€ννλ©΄μ ν¬λ μμ κ° μ»¨ν μ΄λκ° λμΌν 리μμ€ λ° λ‘컬 λ€νΈμν¬λ₯Ό 곡μ νκ² νλ€. μ΄λ κ² μ»¨ν μ΄λλ₯Ό ν¬λλ‘ κ΅¬μ±νλ κ²μ΄ μΏ λ²λ€ν°μ€μ μ λͺ ν κΈ°λ₯, λ°λ‘ 볡μ (Replication)μ ν λκ° λλ€.
컨ν μ΄λλ₯Ό λͺ¨μ ν¬λλ₯Ό λ§λ€λ©΄, μ΄λ€ ν¬λ νλκ° κ³ΌλΆν μνκ° λμμ λ μΏ λ²λ€ν°μ€λ μλμΌλ‘ μ΄λ₯Ό 볡μ ν λ€μ ν΄λ¬μ€ν°μ λ°°ν¬ν μ μλ κ²μ΄λ€.
μΆμ² : μΏ λ²λ€ν°μ€ ν¬λλ?
μΏ λ²λ€ν°μ€ ꡬ쑰λ₯Ό 곡λΆνκΈ° μ , λ¨Όμ Desired State κ°λ μ μ΄ν΄νλ©΄ μ’λ€. μλ² κ΄λ¦¬μμ μ€μν κ°λ μ΄μ μΏ λ²λ€ν°μ€μ κ·Όκ°μ μμ°λ₯΄λ μμ€ν μ΄λ€. νμ¬ μνμ Desired State(μνλ μν)λ₯Ό κ³μ 체ν¬νκ³ (컨ν μ΄λ νλκ° λ μμ΄μΌ λλλ° μ λ μλμ§ λ±), λ§μ½ λ¬Έμ κ° μλ€λ©΄ μ‘°μΉλ₯Ό νκ³ . μ΄ λ¨μν μμ μ μ λ°λ³΅νλ©΄ μλ² κ΄λ¦¬μ λ¬Έμ κ° μμ κ²μ΄λ€.
μΏ λ²λ€ν°μ€μ ꡬ쑰λ μ κ·Έλ¦Όκ³Ό κ°λ€. κ°μ μ μΌ λλΆλΆμ λμ€λλ°, 미리 μΊ‘μ³λ₯Ό ν΄λ΄€λ€. ν¬κ² 보면 Masterμ NodeλΌλ ꡬ쑰 μμμ μλ² κ΄λ¦¬ νλ¦μ΄ μ§νλλ κ²μ΄λ€. μ κ·Έλ¦Όμ²λΌ μ²μ 보λ μ©μ΄κ° κ°λν κ²°λ‘ μ μ μ λ€μ μκ³ , κ°κ°μ κ°λ μ κ°μ μμλλ‘ μ΅ν보μ.
μλ² κ΄λ¦¬μμ state(μν)μ μ’ λ₯λ λ€μν μ μλ€. μΏ λ²λ€ν°μ€μμλ ν΄λ¬μ€ν° μνμ κ° νΉμ ν λΆλΆμ κ΄λ¦¬νλ λ§μ 컨νΈλ‘€λ¬ λ₯Ό μ¬μ©νλ€. μΏ λ²λ€ν°μ€ λμμΈ μ리μ ν΅μ¬μ΄κΈ°λ νλ°, μνλ₯Ό μ μ΄ν λ 루νκ° νλλ‘ μ°κ²°λμ΄ μλ λͺ¨λ리μ(monolithic) μ§ν©λ³΄λ€ κ°λ¨νκ² μ»¨νΈλ‘€λ¬λ₯Ό μ¬λ¬ κ° μ¬μ©νλκ² νΈλ¦¬νκΈ° λλ¬Έμ΄λ€.
컨νΈλ‘€λ¬ κ°λ λλΆμ μμμ λ°°μ΄ Desired State 루νκ° μλ κ·Έλ¦Όμ²λΌ κ΅μ₯ν λ§μμ§ μ μλ€.
CPU λλ λ©λͺ¨λ¦¬μ κ°μ ν¬λ(컨ν μ΄λμμ μ§ν©μ΄μ μΏ λ²λ€ν°μ€ μ ν리μΌμ΄μ μ μ΅μ λ¨μ)μ 리μμ€ μꡬ μ¬νκ³Ό ν¨κ» ν΄λ¬μ€ν°μ μνλ₯Ό κ³ λ €νλ€. κ·Έλ° λ€μ ν¬λλ₯Ό μ μ ν μ»΄ν¨ν λ Έλμ μμ½νλ€. μ½κ² λ§ν΄μ μ¬μ μλ μλ²λ₯Ό μ°Ύμ 컨ν μ΄λλ₯Ό μ΄λμ λμΈμ§ κ²°μ νλ κ².
μνλ₯Ό μ μ₯νκ³ μ‘°ννλ DBμΈ μ£μ§λ(etcd)κ° μλ€. etcdλ λͺ¨λ μνμ λ°μ΄ν°λ₯Ό νμ€νκ² μ μ₯ν΄μΌνλ€. λ°λΌμ λ°±μ μ νμμ΄λ©°, μλ κ°μ νΉμ§μ κ°μ§κ³ μλ€.
λ§μ€ν°μ μ‘°μ¨μ μν μ νλ API Server μ΄λ€. λ°μ΄ν°μ μνλ₯Ό μ‘°ννκ±°λ λ³κ²½νλ μμ²μ λͺ¨λ API μλ²λ₯Ό ν΅ν΄(κ±°μ³μ) μ΄λ€μ§λ€. μλμ κ°μ νΉμ§μ κ°μ§κ³ μλ€.
λ Έλμλ ν¬κ² λ κ°μ§ μ»΄ν¬λνΈκ° λ μλλ°, νλ‘μ(Proxy)μ νλΈλ¦Ώ(Kubelet) μ΄λ€. μ΄ λ μ»΄ν¬λνΈλ λ§μ€ν°μ ν΅μ μ ν λ API Serverλ₯Ό ν΅ν΄μλ§ μμ²μ μλ΅λ₯Ό μ»μ μ μλ€.
λ€νΈμν¬ νλ‘μ μν (λΆν λΆμ°)μ νκΈ΄ νμ§λ§ μ€μ λ‘ μμ²/μλ΅μ λ°λ νλ‘μκ° λ μλ κ°λ μ μλκ³ , λ΄μΈλΆ ν΅μ μ€μ λ§ κ΄λ¦¬νλ μν μ νλ€.
iptables λλ IPVSλ₯Ό μ¬μ©νλ€.
κ° λ Έλμμ μ€νλλ©°, podλ₯Ό μ€ννκ±°λ μ€μ§νκ³ μνλ₯Ό 체ν¬νλ€. λ컀 λ± μλλΌ λ€μν CRI(Container Runtime Interface), μ¦ μ»¨ν μ΄λλ₯Ό podλ‘ κ°μΈ νμ€νκ² κ΄λ¦¬νλ μ무λ₯Ό κ°μ§κ³ μλ κ²μ΄λ€.
λ μ λ³΄κ³ μμ΅λλ€..!!