ν”Όλ“œλ‘œ λŒμ•„κ°€κΈ°
Deploying a Dockerized Node.js Application on Kubernetes πŸš€
Dev.toDev.to
DevOps

Kubernetes Deployment 및 Service 기반 Node.js κ³ κ°€μš©μ„± μ•„ν‚€ν…μ²˜ κ΅¬ν˜„

Deploying a Dockerized Node.js Application on Kubernetes πŸš€

Madhav Nakra2026λ…„ 6μ›” 9일5λΆ„beginner

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 λ™μž‘ μ—¬λΆ€ 및 λ‘€λ°± μ‹œλ‚˜λ¦¬μ˜€ 사전 검증

원문 읽기