μ€κ°
[1] ν΄λΌμ°λ μ»΄ν¨ν μ νμ λ°°κ²½μ Public Cloud μ 곡μ μμ μΈ‘λ©΄μμ μ€λͺ ν©λλ€.
AWS λ₯Ό μμλ‘ λ€ μ μλλ°, μ¨λΌμΈ μΌνλͺ°μ μν νμ¬ λ΄μμμ Private ν΄λΌμ°λλ₯Ό μ¬μ©νλ©΄μ μ¬μ©μλ€μ΄ μ¨λΌμΈ μΌνλͺ°μ μ¬μ©νμ§ μλ μκ°μ κ²½μ° λ Έλ 리μμ€λ€μ΄ λ§μλ€. ν΄λΉ μκ°λμ μ¬μ©νμ§ μλ 리μμ€λ€μ μμ΅μ μ»μΌλ©° μλν¨μΌλ‘μ¨ Public ν΄λΌμ°λ μ»΄ν¨ν μ΄ νμνλ€.
[2] ν΄λΌμ°λ μ»΄ν¨ν μ μλΉμ€ λͺ¨λΈ 3 κ°μ§λ₯Ό λμ΄νκ³ , κ°κ° 무μμ μ 곡νλμ§ μ€λͺ ν©λλ€.
SaaS(Software as a Service) : κ΅¬κΈ λ μ€, μ νλΈ λ± μννΈμ¨μ΄λ₯Ό μλΉμ€λ‘ μ 곡νλ€. PaaS(Platform as a Service) : κ°λ°μκ° API λ₯Ό νμ©ν΄ λ νΈλ¦¬νκ² κ°λ°ν μ μλλ‘ λΌμ΄λΈλ¬λ¦¬, ν΄λ€μ μλΉμ€λ‘ μ 곡νλ€. IaaS(Infrastructure as a Service) : κΈ°μ΄μ μΈ μ»΄ν¨ν μμμ μ κ³΅ν΄ μ€μ€λ‘ μ μ΄νλ©° μ¬μ©νλλ‘ νλ€.
[3] ν΄λΌμ°λ μ»΄ν¨ν μμ Public Cloud, Private Cloud λ° Hybrid Cloud κ° λ¬΄μμΈμ§ μ€λͺ ν©λλ€.
Public Cloud λ ꡬκΈ, μλ§μ‘΄κ³Ό κ°μ΄ μ 3 μμ ν΄λΌμ°λλ₯Ό λκ°λ₯Ό μ§λΆνκ³ μ¬μ©νλ κ²μ λ§νλ€. Private Cloud λ λ€μμ μ¬μ©μλ€λ‘ ꡬμ±λ μ‘°μ§μ΄ μμ νκ³ , μ‘°μ§ λ΄μμ μ¬μ©νλ ννλ₯Ό λ§νλ€. Hybrid Cloud λ Private Cloud λ₯Ό κ°μ§λ©΄μ νμμ μν΄ Public Cloud λ₯Ό μ νμ μΌλ‘ νμ©νλ ννλ₯Ό λ§νλ€.
[4] Pet λͺ¨λΈκ³Ό Cattle λͺ¨λΈμ 무μμ΄λ©°, μ€μ Container μ μ΄μμ μ΄λ»κ² μ μ©λλμ§ μ€λͺ ν©λλ€.Β
Pet λͺ¨λΈμ κ° μλ²λ₯Ό κ³ μ ν μμ€ν μΌλ‘ μΈμνκ³ μ΄λ¦μ λΆμ¬ μ§μ μ κ²νκ³ κ΄λ¦¬νλ λͺ¨λΈμ λ§νλ€. Cattle λͺ¨λΈμ μλ²λ λμΌν μμ€ν μΌλ‘ μΈμνκ³ νκ·Έλ‘ κ΅¬λΆλλ©° λ¬Έμ κ° μκΈΈ κ²½μ° ν΄λΉ 컨ν μ΄λλ₯Ό μ¬μμνμ¬ μ¬λμ κ°μ μμ΄ ν΄κ²°νλ€.
[5] IaC κ° λ¬΄μμ΄λ©°, κΈ°μ‘΄μ λ°μ΄ν°μΌν°λ₯Ό ꡬμΆνκ³ μννΈμ¨μ΄λ₯Ό μ΄μνλ λ°©μκ³Ό μ΄λ»κ² λ€λ₯Έμ§ μ€λͺ ν©λλ€.
IaC λ Infrastructure as Code λ‘, μ½λλ₯Ό ν΅ν΄μ νμν νκ²½μ ꡬμΆνλ κ²μ λ§νλ€. κ³Όκ±°μλ λ°μ΄ν°μΌν°λ₯Ό ꡬμΆν λ νλμ¨μ΄λ₯Ό μλμΌλ‘ μ€μ νκ³ , μννΈμ¨μ΄λ₯Ό λ°°ν¬νλ λ± μμ μ μ¬λμ΄ μ§μ μλμΌλ‘ ꡬμΆν΄μΌ νμ§λ§, IaC λ μλ², λ€νΈμν¬ λ± infrastructure λ₯Ό μννΈμ¨μ΄λ‘ λ€λ£¨λ©΄μ μ€μ μ½λλ₯Ό ν΅ν΄ μλμΌλ‘ λμΌν νκ²½μ μ€μ ν μ μλ€.
[6] Mutable infrastructure μ Immutable infrastructure λ 무μμ΄λ©°, μ Immutable infrastructure λ₯Ό μ§ν₯νλμ§ μ€λͺ ν©λλ€.
μ¬λ¬ μλ²λ₯Ό ν΅ν΄ μλΉμ€λ₯Ό μ 곡νλ©΄μ Mutable μ λμμμ΄ κ° μλ²μ λν΄ μ λ°μ΄νΈνκ³ μ‘°μ λλ νκ²½μ λ§νκ³ , Immutable μ λ³ννμ§ μκ³ κ° μλ²μ νκ²½μ λμΌνκ² μ μ§νλ κ²μ μλ―Ένλ€. Mutable μ κ²½μ° κ° μλ²κ° μ λ°μ΄νΈλκΈ° λλ¬Έμ κ° μλ²λ§λ€ μλΉμ€μμ μ°¨μ΄κ° μκΈ°κ³ , κ΄λ¦¬νκΈ° μ΄λ ΅λ€. νμ§λ§, Immutable μ κ²½μ° λμΌν νκ²½μ κ°κΈ° λλ¬Έμ μ λ°μ΄νΈλ₯Ό ν λ²μ ν΄μ£Όκ³ , λ€μ λ‘€λ°±νλ λ± κ΄λ¦¬κ° μ½λ€λ μΈ‘λ©΄μμ Immutable μ μ§ν₯νλ€.
[7] Hypervisor λ₯Ό μμ μμ λ κ°μ§ νμ μΌλ‘ μ μνμμ΅λλ€ (type.1 & type.2). κ°κ°μ΄ μ΄λ»κ² λμνλ μ§ μ€λͺ ν©λλ€.
Type1 μ νλμ¨μ΄ μμ λ°λ‘ Hypervisor κ° μ¬λΌκ° λͺ¨μμ΄κ³ , Type2 λ Host OS μμ Hypervisor κ° μ¬λΌκ° λ°©μμ΄λ€.
[8] Guest Linux OS over Host Linux OS λ¬Έμ κ° λ¬΄μμΈμ§ μ€λͺ ν©λλ€.
λ°μ΄ν° μΌν°μ κ²½μ° Public Cloud λ₯Ό μ 곡νλλ°, κΈ°λ³Έμ μΌλ‘ 무λ£μΈ 리λ μ€λ₯Ό μ¬μ©νλ€. μ¬μ©μμκ² μλ²λ₯Ό μλν κ²½μ° μ¬μ©μκ° μνλ νκ²½μ κ°μΆ°μ€μΌ νλ―λ‘ VM μ μ¬μ©νλ€. μ΄λ Guest OS λ‘ λ¦¬λ μ€κ° μ¬λΌκ° κ²½μ° λμΌν OS κ° μ€λ³΅λλ κ²½μ°κ° λ°μν΄ λ λ§μ λΉμ©μ μ¬μ©νκ² λλ λ¬Έμ λ₯Ό λ§νλ€.
[9] λ°μ΄ν°μΌν°μμμ μννΈμ¨μ΄ κ°λ°κ³Ό μ΄μμμ, Container κΈ°μ μ΄ κ°μ λ¨Έμ κΈ°μ μ λμμ΄ λ μ μλ μ΄μ λ₯Ό μ€λͺ ν©λλ€.
Guest Linux OS over Host Linux OS μ OS μ€λ³΅ λ¬Έμ λ‘ μΈν΄ λ λ§μ λΉμ©μ μλͺ¨νλ, 컨ν μ΄λ κΈ°μ μ OS λ₯Ό νΈμ€νΈ OS μ 곡μ νκ³ νλ‘κ·Έλ¨ μ½λ, λΌμ΄λΈλ¬λ¦¬λ₯Ό ν¨ν€μ§νμ¬ κ° μ»¨ν μ΄λλ§λ€ λ 립λ νλ‘μΈμ€λ‘ λμν μ μλ€λ μ μμ λΉ λ₯Έ μλ, μ μ μ©λμ μ₯μ μ κ°μ§κ³ μκΈ° λλ¬Έμ λΉμ©λ κ°μνλ ν¨κ³Όλ₯Ό κ°μ Έμ€λ©° κ°μ λ¨Έμ κΈ°μ μ λμμ΄ λ μ μλ€.
[10] Docker λ₯Ό ꡬμ±νλ CLI/Daemon λ° REST API μ λν΄μ, κ°κ° 무μμΈμ§ μ€λͺ ν©λλ€.
CLI(Command-Line Interface) λ κΈμλ‘ μ λ ₯ν΄ μ»΄ν¨ν°μ λͺ λ Ήμ λ΄λ¦¬λ λ°©μμΌλ‘, λ컀μ ν΄λΌμ΄μΈνΈ μν μ νλ€. Daemon μ ν΄λΌμ΄μΈνΈλ‘λΆν° μ¨ λͺ λ Ήμ λ£κ³ λͺ λ Ήμ μννλ€. REST API λ ν΄λΌμ΄μΈνΈκ° μλ²μκ² μμ²μ 보λμ λ κ·Έμ λ°λ₯Έ μλ΅μ λλ €μ£Όλ νμμ μλ―Ένλ€.
[11] IaC λ μννΈμ¨μ΄ κ°λ°κ³Ό μ μ¬ν κ³Όμ μ κ±°μΉλ κ²μΌλ‘ μ€λͺ νκ² λ©λλ€. Docker container λ₯Ό κ°λ°νκ³ μ€ννλ κ³Όμ μ python/C++ λ±μ νλ‘κ·Έλ¨μ κ°λ°νκ³ μ€ννλ κ³Όμ κ³Ό λΉκ΅νμ¬ μ€λͺ ν΄ λ΄ λλ€.
python/C++ μ μμ€μ½λλ₯Ό λ§λλ κ²κ³Ό κ°μ΄ νμν 컀λ©λλ₯Ό ν¬ν¨ν Dockerfile μ λ§λ λ€. Dockerfile μ μ΄μ©ν΄ μ΄λ―Έμ§λ₯Ό λ§λ€κ³ , python/C++ μ μ»΄νμΌ, λΉλλ‘ μ€ννμΌμ λ§λλ κ²κ³Ό κ°μ΄ μ΄λ―Έμ§λ₯Ό μ΄μ©ν΄ 컨ν μ΄λλ₯Ό λ§λ λ€. μ΄ν, νλ‘κ·Έλ¨μ μ€ννλ κ²κ³Ό κ°μ΄, 컨ν μ΄λμ μ€ν λͺ λ Ήμ μ£Όμ΄ μ»¨ν μ΄λλ₯Ό μ€νμν¨λ€.
[12] Docker compose λ 볡μμ 컨ν μ΄λ (μλΉμ€) λ₯Ό νλμ μ΄ν리μΌμ΄μ μ²λΌ ꡬλνλλ‘ ν©λλ€. λ€νΈμν¬ μΈ‘λ©΄μμ μ΄λ₯Ό μνμ¬ μ΄λ€ κΈ°λ₯μ μννλμ§ κ°λ¨νκ² μ€λͺ ν©λλ€.
볡μμ 컨ν μ΄λλ₯Ό ꡬλνκΈ° λλ¬Έμ 컨ν μ΄λ DNS(Domain Name Service) μλ²λ₯Ό λ§λ€μ΄ μ΄λ¦μΌλ‘ 컨ν μ΄λλ₯Ό ꡬλΆν μ μλλ‘ νλ€.
[13] PAT κ° λ¬΄μμΈμ§ μ€λͺ νκ³ , Docker 컨ν μ΄λμμ μ νμνμ§ μ€λͺ ν©λλ€.
PAT(Port Address Translation) λ private ν¬νΈμ public ν¬νΈλ₯Ό μ°κ²°νλ μν μ νλ€. 컨ν μ΄λλ νΈμ€νΈμ λ¨μ΄μ Έ λ 립μ μΌλ‘ ν¨ν€μ§λμκΈ° λλ¬Έμ ν¬νΈλ₯Ό μ€μ ν΄λ μΈλΆμμλ λ΄λΆμ ν¬νΈλ₯Ό μΈμνμ§ λͺ»νλ€. λλ¬Έμ, λ΄λΆμ ν¬νΈλ μΈλΆμ ν΅μ κ³Ό μ°κ²°ν μ μλλ‘ private ν¬νΈμ public ν¬νΈλ₯Ό μ°κ²°ν΄ ν΅μ μ΄ κ°λ₯νλλ‘ λ§λ λ€.
[14] curl νλ‘κ·Έλ¨μ΄ 무μμ΄λ©°, μμ μμ μ΄λ€ μ©λλ‘ νμ©ν μ μλμ§ μ€λͺ ν©λλ€.
curl(Client URL) νλ‘κ·Έλ¨μ μ¬λ¬ νλ‘ν μ½μ μ¬μ©νλ λ°μ΄ν°λ€μ μ μ‘νκΈ° μν λΌμ΄λΈλ¬λ¦¬, 컀λ©λ λΌμΈ λꡬλ₯Ό μ 곡νλ μννΈμ¨μ΄ νλ‘μ νΈμ΄λ€. μλ² ν΄λΌμ΄μΈνΈλ₯Ό λμ μ κ²½μ° μλ²μ λ°μ΄ν°λ₯Ό μμ²νκ³ λ°μμ€λ http νλ‘ν μ½μ μ¬μ©ν μ μλ€.
[15] Docker μμ Volume μ μ΄λ€ μ©λλ‘ νμ©νλ©°, 물리μ μΌλ‘ μ΄λ»κ² ꡬνλλμ§ μ€λͺ ν©λλ€.
Volume μ 컨ν μ΄λλ₯Ό μμ±ν΄ μ¬μ©νκ±°λ, λ°μ΄ν° 볡μ¬λ³Έμ μ μ₯ν΄ μ¬μ©νκ³ , 컨ν μ΄λλ₯Ό μμ νμ λ λ°μ΄ν°κ° μμ΄μ§μ§ μκ² νκΈ° μν΄ μ¬μ©νκ³ , νΈμ€νΈ νμΌμμ€ν μ ν λΆλΆμ λμ»€κ° μ μ νμ¬ μ μ₯λλ€.
[16] Docker μμ Bind Mounts λ μ΄λ€ μ©λλ‘ νμ©νλ©°, Volume κ³Όμ μ°¨μ΄μ μ 무μμΈμ§ μ€λͺ ν©λλ€.
Bind Mounts λ νΈμ€νΈ μ»΄ν¨ν°μ μ€ν λ¦¬μ§ μ€ νΉμ μμΉλ₯Ό μ§μ ν΄ μ°κ²°νλ€. λ―Όκ°ν νμΌμ μ κ·Όνκ±°λ, 컨ν μ΄λκ° λ§λ€μ΄μ§κΈ° μ μ μμ±λ νμΌμ μ¬μ©ν λ νμ©νλ€. Volumn μ κ²½μ° λ컀 νλ‘μΈμ€κ° μλλΌλ©΄ νμΌμ μμ ν΄μλ μ λμ§λ§, Bind Mounts λ λ컀 νλ‘μΈμ€κ° μλλλΌλ μΈμ λ μμ ν μ μλ€.
[17] Docker Machine μ μ΄λ€ κΈ°λ₯μ μννλ©°, μ΄λ€ μ©λλ‘ νμ©νλμ§ μ€λͺ ν©λλ€.
κ°μ λ¨Έμ μ λ컀 μμ§μ μ€μΉν μ μλλ‘ νλ€. λ컀 λ¨Έμ μ μ€λλ 리λ μ€ λ°μ€ν¬νμ κ°μ§κ³ μκ³ , λ§₯μ΄λ μλμ°μμ λ컀λ₯Ό μ€ννκ³ μΆμ κ²½μ°. νΉμ μ격 μμ€ν μ λ컀 νΈμ€νΈλ₯Ό 곡κΈνκ³ μΆμ κ²½μ°μ νμ©νλ€.
[18] Jenkins λ₯Ό μ¬μ©νμ¬ CI/CD λ₯Ό ꡬνν μ μλ€λ κ²μ μ΄λ€ μλ―ΈμΈμ§ μ€λͺ ν©λλ€.
μ½λ μμ±μ λ§μΉκ³ κΉνλΈμ μ¬λ¦° ν μ»΄νμΌ, λΉλ, ν μ€νΈ, λ°°ν¬ λ±μ μμ μ μ¬λμ κ°μ μμ΄ μλμΌλ‘ μννλ κ³Όμ μ ꡬνν μ μλ€λ κ²μ μλ―Ένλ€. μκ°μ μ€μ ν΄μ λ°°ν¬νλ λ± μ€μ ν μ μλ€.
κΈ°λ§
[1] Docker Swarm μμ manager μ worker(slave) λ μ΄λ€ μν μ μννλμ§ μ€λͺ ν©λλ€.
manager λ Worker μ λ Όλ¦¬μ μ°κ²°μ λ§λ€κ³ Worker λ€μ κ΄λ¦¬νλ€.
Worker λ Swarm μ μλΉμ€λ₯Ό μ€ννλ μν μ μννλ€.
[2] Docker Swarm μμ join κ³Ό leave λ μ΄λ€ κΈ°λ₯μ μννλμ§ μ€λͺ ν©λλ€.
join μ Worker κ° Manager μκ² λ±λ‘λμ΄ Manager μ κ΄λ¦¬λ₯Ό λ°λ₯Ό μ μλλ‘ νλ€. leave λ Manager μμ λ±λ‘λ Worker κ° λΆλ¦¬λλλ‘ νλ€.
[3] Monolithic architecture λλΉ Microservice architecture λ μ΄λ€ κ²μΈμ§ μ€λͺ ν©λλ€.
Monolithic architecture λ νλμ 컀λ€λ μλΉμ€λ₯Ό λ§λλ κ²μ λ§νκ³ , Microservice architecture λ νλμ 컀λ€λ μλΉμ€λ₯Ό μͺΌκ°μ λ 립μ μΌλ‘ λΆλ¦¬νκ³ μλ‘ μ 보λ₯Ό μ£Όκ³ λ°λ ννμ κΈ°μ
[4] Monolithic architecture λλΉ Microservice architecture κ° Scalability, Availability (Fault tolerance), Agility, Polyglot persistence, Maintainability κ° λλ€λ κ²μ΄ μ΄λ€ λ΄μ©μΈμ§ κ°κ°μ λν΄μ μ€λͺ ν©λλ€.Β
λͺ¨λ리ν±μ ν κ°μ§ κΈ°λ₯μ νμ₯νλ €λ©΄ λ€λ₯Έ 99 κ°μ§ κΈ°λ₯λ€λ ν¨κ» μ°κ²°λμ΄ νμ₯ν΄μΌ νμ§λ§ λ§μ΄ν¬λ‘μλΉμ€λ λ 립μ μ΄κΈ° λλ¬Έμ μν₯ μμ΄ νμ₯ κ°λ₯νλ€. λͺ¨λ리ν±μ ν μλΉμ€μ λ¬Έμ κ° λ°μν κ²½μ° λ€λ₯Έ μλΉμ€μ μν₯μ μ£Όμ΄ λͺ¨λ λ¬Έμ κ° λ°μνλ, λ§μ΄ν¬λ‘μλΉμ€λ λ―ΈμΉλ μν₯μ΄ μ λ€. λͺ¨λ리ν±μ λͺ¨λ νλλ‘ μ°κ²°λμ΄ λͺ¨λκ° κΈ°λ₯ μ μμ μλ£ν΄μΌ λ°°ν¬ν μ μμ§λ§ λ§μ΄ν¬λ‘μλΉμ€λ κ° κΈ°λ₯λ§λ€ λ°λ‘ λΉλ, λ°°ν¬λ₯Ό ν μ μλ€λ μ μμ Agility κ° λλ€. λͺ¨λ리ν±μ ν΅ν©μ μΈ ν κ°μ§ λꡬλ₯Ό μ¬μ©ν΄μΌ νμ§λ§ λ§μ΄ν¬λ‘μλΉμ€λ κ°μμ κ²½μ°μ λ§λ λꡬλ₯Ό μ¬μ©ν μ μλ€. λͺ¨λ리ν±μ λΉν΄ λ§μ΄ν¬λ‘μλΉμ€λ κΈ°λ₯μ λΆλ¦¬νκΈ° λλ¬Έμ κ°μλ μ½λ μμΌλ‘ μΈν΄ μ μ§ λ³΄μνκΈ° νΈλ¦¬νλ€.
[5] Kubernetes μ Pod κ³Ό Docker μ Container μ λν΄μ, κΈ°μ μ μ΄ μ μ¬μ (곡ν΅μ λ±) κ³Ό μ°¨μ΄μ μ μ€λͺ ν©λλ€.
컨ν μ΄λκ° νλ‘κ·Έλ¨, μ€ν 리μ§, νκ²½ λ³μ λ±μ λ¬Άμ΄ μ¬μ©νλ κ²κ³Ό κ°μ΄ νλ λ€μν 컨ν μ΄λλ₯Ό νλλ‘ λ¬Άμ΄ μ¬μ©νλ€λ μ μμ μ μ¬νλ€.
컨ν μ΄λλ κ°κ°μ΄ κ°λ³μ μΌλ‘ μμ±νκ³ μλνμ§λ§ μΏ λ²λ€ν°μ€μ νμ μ¬λ¬ 컨ν μ΄λλ₯Ό λ¬Άμ΄ μ€ν 리μ§, λ€νΈμν¬ λ±μ λ€λ₯Έ μν μ νλ 컨ν μ΄λλ₯Ό ν¨κ» μ¬μ©νλ€λ μ μμ μ°¨μ΄μ μ κ°λλ€.
[6] Kubernetes μ Ingress λ 무μμ΄κ³ , μ΄λ€ κΈ°λ₯μ μννλμ§ μ€λͺ ν©λλ€.
Ingress λ μλΉμ€μ λν μΈλΆ μ κ·Όμ λ€λ£¨λ κ°μ²΄μ΄λ€. ν΄λ¬μ€ν°μ μΈλΆμ ν΅μ μ μννκ³ λ°μ μμ²μ μ΄λ€ νμΌλ‘ λ³΄λΌ μ§ μ‘°μ νλ load balancing, ν λμ μ»΄ν¨ν°κ° μ¬λ¬ μ΄λ¦μ λ°μ ν΄λΉνλ λΌλ²¨λ‘ μ λ¬νλ name-based virtual hosting μ μννλ€.
[7] Kubernetes μ NodePort λ 무μμ΄κ³ , μ΄λ€ κΈ°λ₯μ μννλμ§ μ€λͺ ν©λλ€.
NodePort λ νΉμ λ Έλμ ν¬νΈλ₯Ό λ«μ΄ λ Έλκ° μΈλΆμ ν΅μ ν μ μλλ‘ νλ λ°©μμ΄λ€. NodePort λ₯Ό ν΅ν΄ μΈλΆμμ μλΉμ€λ‘ μμ²μ λ³΄λ΄ νμμ μ²λ¦¬ν μ μλλ‘ νλ€.
[8] Kubernetes μμ μλΉμ€ μ΄μμ IP μ΄λλ μ€λ₯Ό μ¬μ©νμ§ μλλ‘ νλ μ΄μ μ, IP μ΄λλ μ€λ₯Ό μ¬μ©νμ§ μλ κ²½μ° λ¬΄μμ μ¬μ©ν΄μΌ νλμ§μ λν΄μ μ€λͺ ν©λλ€.
μΏ λ²λ€ν°μ€μ νλ€μ μ€λ₯κ° λ°μν΄λ κ³ μ³μ μ¬μ©νμ§ μκ³ μ’ λ£νκ³ μλ‘ μμ±νλ cattle λ°©μμ΄λ€. λλ¬Έμ μλ‘ μμ±λ λλ§λ€ μλ‘μ΄ IP μ£Όμλ₯Ό λ°κΈ° λλ¬Έμ IP μ£Όμλ₯Ό λ§€λ² μ§μ ν΄μ€ μ μμ΄ IP μ£Όμλ₯Ό μ¬μ©νμ§ μλλ€. IP μ£Όμ λμ Label μ μ€μ ν΄μ μ΄λ¦μ μ§μ νκ³ label μ μ¬μ©ν΄ λμμ μ§μ νλ€.
[9] Replica Controller μ μν κ³Ό μ΄μ ꡬλμ μν yaml νμΈ μμ selector, template, replicas κ° μ΄λ€ μλ―ΈμΈμ§ μ€λͺ ν©λλ€.
selector : μ΄μμκ° μꡬν 무μΈκ°λ₯Ό λͺ λ Ήν λμμ μ§μ νκΈ° μν μ΄λ¦μ μ€μ νλ€.
replicas : μμ±νκ³ μ ν¬λ§νλ νμ κ°μλ₯Ό μ€μ νλ€.
template : 볡μ ν μλ‘μ΄ νμ λ°μ΄ν°λ₯Ό ꡬ체μ μΌλ‘ μμ±ν ν νλ¦Ώμ μ€μ νλ€.
[10] Deployment λ μ΄λ ν κ²½μ°μ μ¬μ©νλμ§ μμ μμμ νμ© μ¬λ‘λ₯Ό κΈ°μ€μΌλ‘ μ€λͺ ν©λλ€.
κΈ°μ‘΄ λ²μ 1 μ Replication Controller κ° λ²μ 1 νμ λ§λ€μ΄ μ¬μ©νκ³ μμ λ μλ‘μ΄ λ²μ 2 μ Replication Controller λ₯Ό μμ±ν΄ λ²μ 2 μ νμ λ§λ€μ΄ μ¬μ©νλ λ± 2 κ° μ΄μ 볡μμ ReplicaSet Controller λ₯Ό μ¬μ©ν λ Deployment λ₯Ό μ¬μ©νλ€.
[11] Kubernetes μ Client API λ 무μμ΄λ©°, μ νμνκ³ , μ΄λ€ μ©λλ‘ νμ©νλμ§ μ€λͺ ν©λλ€.
Client API λ μΏ λ²λ€ν°μ€μ κ°μ²΄ μμ±, μμ λ±μ λμμ νΉμ λͺ λ Ήμ ν΅ν΄μ λμμν¬ μ μλλ‘ νλ λ°©μμ΄λ€.
API λ₯Ό μ¬μ©νμ§ μλλ€λ©΄ λ΄κ° μνλ λμμ νλ μ½λλ₯Ό νλ‘κ·Έλ¨μΌλ‘ ꡬμ±ν΄μΌ νμ§λ§ API λ₯Ό ν΅ν΄μ κ°λ¨ν λͺ λ Ήμ΄λ₯Ό ν΅ν΄ λμμν¬ μ μλ€λ μ μμ νμνλ€.
λ΄κ° μμ±ν νλ‘κ·Έλ¨μμ μΏ λ²λ€ν°μ€ API λ₯Ό μ¬μ©ν μ μκ³ kubectl μ ν΅ν΄ CLI μμλ μΏ λ²λ€ν°μ€ API λ₯Ό νΈμΆν΄ μνλ λͺ λ Ήμ λ΄λ¦΄ μ μλ€.
[12] Kubernetes μΒ object λΌλΒ κ²μ΄Β 무μμ΄κ³ ,Β μ΄λ€Β μ©λλ‘Β νμ©νλμ§Β μ€λͺ ν©λλ€.Β κ·Έλ¦¬κ³ Β μΒ νλ‘κ·Έλλ°Β μΈμ΄μμμΒ object μΒ μ μ¬νλ€κ³ Β νλμ§Β μΆκ°Β μ€λͺ ν©λλ€.
Object λ 리μμ€ νμ μ νλμ μΈμ€ν΄μ€λ₯Ό λ§νλ€. κ°μ²΄λ₯Ό μμ±ν¨μΌλ‘μ¨ μΏ λ²λ€ν°μ€ μμ€ν μ ν΄λ¬μ€ν°μ desired state λ₯Ό μ λ ₯ν μ μλ€.
νλ‘κ·Έλλ° μΈμ΄μμ μΌμ νμ ν΄λμ€λ₯Ό μ μνκ³ κ·Έ μΈμ€ν΄μ€ object λ₯Ό μμ±νλ κ²κ³Ό κ°μ΄ μΏ λ²λ€ν°μ€λ ν΄λμ€μ μ μ¬ν 리μμ€ νμ μ μ μνκ³ κ·Έ μΈμ€ν΄μ€ κ°μ²΄λ₯Ό μμ±ν΄ μ¬μ©νκΈ° λλ¬Έμ μ μ¬νλ€.
[13] Kubernetes μμ imagePullPolicy μλ μ΄λ€ κ²λ€μ΄ μμΌλ©°, κ°κ° μ΄λ»κ² λμνλμ§ μ€λͺ ν©λλ€.Β
IfNotPresent : μ΄λ―Έμ§κ° Local, ν΄λΉ λ Έλμ μμ§ μλ€λ©΄, μ΄λ―Έμ§λ₯Ό pull νμ¬ μ€ννλ€.
Always : μ΄λ―Έμ§λ₯Ό νμ΄ μμλλ λμ νμ pull νλ€. (μμλ‘ μ λ°μ΄νΈκ° λκ³ μ΅μ μ΄λ―Έμ§λ₯Ό μ¬μ©νκ³ μΆμ κ²½μ°)
Never : Remote μ λ μ§μ€νΈλ¦¬λ₯Ό μ¬μ©νμ§ μκ³ Local μ μλ κ²λ§ μ¬μ©νλ€. (보μ μμ κ²½μ°)
[14] Kubernetes μΒ Cluster IP, Node Port, Ingress λ 무μμ΄λ©°,Β μ΄λ€Β μ©λλ‘Β νμ©νλμ§Β μ€λͺ ν©λλ€.
Cluster IP λ ν΄λ¬μ€ν° μμμ μ ν¨ν IP μ£Όμλ₯Ό μ§μ νλ κ°μ²΄μ΄λ€. ν΄λ¬μ€ν° λ΄λΆμ λ€λ₯Έ νκ³Ό ν΅μ νκΈ° μν λ΄λΆ IP μ£Όμμ΄λ€.
NodePort λ λ Έλμ ν¬νΈλ₯Ό λ«λ κ°μ²΄μ΄λ€. ν¬νΈλ₯Ό ν΅ν΄ μΈλΆμμ ν΅μ μ΄ κ°λ₯νλλ‘ λ§λ λ€.
Ingress λ ν΄λ¬μ€ν°μμ μλΉμ€μ λν μΈλΆ μ κ·Όμ λ€λ£¨λ κ°μ²΄μ΄λ€. κ° μλΉμ€λ‘ νΈλν½μ λλλ load balancing, ν λμ μ»΄ν¨ν°μ μ¬λ¬ μ΄λ¦μ κ°λ name-based virtual hosting μ μνν΄ λΌλ²¨μ λ°λΌ μ λ¬ν΄μ£Όλ μ©λλ‘ νμ©νλ€.
[15] Kubernetes μ Storage μΈ emptyDir, hostPath, PVC(Persistent Volume Claim) μ λν΄μ, κ°κ° 물리μ μΈ μμΉκ° μ΄λμ΄κ³ , νμ© μ©λλ 무μμΈμ§ μ€λͺ ν©λλ€.
emptyDir λ νμ μμΉνλ€. μμμ μΌλ‘ 컨ν μ΄λκ° μμ νκΈ° μν κ²λ€μ μ μ₯νκΈ° μν΄ μ¬μ©νλ€. hostPath λ λ Έλμ μμΉνλ€. λ Έλμ μμΉν΄ λ Έλμ νΉμ νμΌμ΄λ λλ ν 리λ₯Ό 컨ν μ΄λ νμΌμμ€ν μ λ§μ΄νΈνλ€. PVC λ ν΄λ¬μ€ν°μ μμΉνλ€. PV μ¬μ© μμ²μ ν΅ν΄ PV λ₯Ό μ¬μ©νκΈ° μν΄ νμ©νλ€.