νΌλλ‘ λμκ°κΈ°
Dev.toDevOps
μλ¬Έ μ½κΈ°
Kubernetes Deployment λ° Service κΈ°λ° Node.js κ³ κ°μ©μ± μν€ν μ² κ΅¬ν
Deploying a Dockerized Node.js Application on Kubernetes π
AI μμ½
Context
λ¨μΌ Docker 컨ν μ΄λ μ€ν λ°©μμ μλ κ΄λ¦¬ νκ³μ Production νκ²½μ κ°μ©μ± 보μ₯ νμμ± λλ. Pod IPμ λΉλ²ν λ³κ²½μΌλ‘ μΈν λ€νΈμν¬ μλν¬μΈνΈ λΆμμ μ± ν΄κ²° μꡬ.
Technical Solution
- Replica Set μ€μ μ ν΅ν Pod μ΅μ 2κ° μ μ§λ‘ Single Point of Failure μ κ±° λ° High Availability ν보
- Self-healing λ©μ»€λμ¦ μ μ©μ ν΅ν λΉμ μ Pod μλ κ°μ§ λ° μ¦κ°μ μΈ μ¬μμ± κ΅¬μ‘° μ€κ³
- Serviceμ NodePort νμ μ ν΅ν ν΄λ¬μ€ν° μΈλΆ νΈλν½ μ μ κ²½λ‘(NodePort 32000 β Service Port 123 β Target Port 3000) μ μ
- Service Abstraction λ μ΄μ΄ λμ μ ν΅ν λμ Pod IP νκ²½μμμ μμ μ μΈ Service Discovery ꡬν
- Rolling Update μ λ΅ μ±νμΌλ‘ μλΉμ€ μ€λ¨ μλ μ κ· μ΄λ―Έμ§ λ²μ λ°°ν¬ νλ‘μΈμ€ ꡬμΆ
μ€μ² ν¬μΈνΈ
1. Production λ°°ν¬ μ replicas κ°μ 2 μ΄μμΌλ‘ μ€μ νμ¬ λ¬΄μ€λ¨ κ°μ©μ± κ²ν
2. Podμ νλ°μ± IP λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ°λμ Service κ°μ²΄λ₯Ό ν΅ν λ€νΈμν¬ μΆμν μ μ©
3. μΈλΆ λ ΈμΆμ΄ νμν κ²½μ° NodePort, ClusterIP, LoadBalancer μ€ νκ²½μ μ ν©ν μλΉμ€ νμ μ ν
4. μ΄λ―Έμ§ νκ·Έ μ λ°μ΄νΈλ₯Ό ν΅ν Rolling Update λμ μ¬λΆ λ° λ‘€λ°± μλλ¦¬μ€ μ¬μ κ²μ¦