개발 창고/Server

네트워킹 - Part3 정리

Royzero 2025. 7. 29. 22:00
반응형

들어가며: 서비스 타입 총정리

지난 시간에 다룬 ClusterIP, NodePort, LoadBalancer, ExternalName은 Kubernetes 네트워킹의 핵심 요소입니다.
이번 글에서는 각 서비스 타입의 특징, 활용 사례, 장단점을 한눈에 정리하고, 서비스 선택 가이드라인을 제시합니다.


목차 (Table of Contents)

  1. 서비스 타입 요약
  2. ClusterIP 정리
  3. NodePort 정리
  4. LoadBalancer 정리
  5. ExternalName 정리
  6. 서비스 타입 선택 가이드
  7. 실습: 서비스 타입 변경하기
  8. FAQ (Answer Engine Optimization)
  9. 핵심 요약
  10. 마무리

1. 서비스 타입 요약

타입 접근 범위 주요 사용 사례
ClusterIP 내부 통신 전용 마이크로서비스 간 통신
NodePort 외부 접근 개발/테스트 환경
LoadBalancer 외부 접근 클라우드 운영 환경
ExternalName 외부 DNS 매핑 외부 API 연계

2. ClusterIP 정리

  • 기본값으로 설정되는 서비스 타입
  • 클러스터 내부 Pod 간 통신에 최적화
  • 외부 접근이 필요 없는 백엔드 서비스에 사용

예시:

type: ClusterIP

3. NodePort 정리

  • 30000~32767 포트로 외부에서 접근 가능
  • 간단한 테스트 및 로컬 환경에서 적합
  • 운영 환경에서는 보안 및 관리 문제로 잘 사용되지 않음

예시:

type: NodePort
ports:
  - port: 80
    targetPort: 8080
    nodePort: 30080

4. LoadBalancer 정리

  • 클라우드 환경에서 외부 로드밸런서를 자동 생성
  • 운영 환경에서 가장 많이 사용되는 서비스 타입
  • NodePort를 내부적으로 포함하여 동작

예시:

type: LoadBalancer
ports:
  - port: 80
    targetPort: 8080

5. ExternalName 정리

  • 외부 도메인과 Kubernetes Service를 연결
  • Pod에서 my-external-service로 호출하면 example.com으로 라우팅
  • 외부 API 서버 연동 시 편리

예시:

type: ExternalName
externalName: example.com

6. 서비스 타입 선택 가이드

  • 내부 서비스 통신: ClusterIP
  • 개발/테스트 환경의 간단한 외부 접근: NodePort
  • 운영 환경 (클라우드 로드밸런싱): LoadBalancer
  • 외부 DNS 기반 서비스 연동: ExternalName

7. 실습: 서비스 타입 변경하기

기존 서비스 타입을 NodePort로 변경하는 예:

kubectl patch service my-service -p '{"spec": {"type": "NodePort"}}'

ClusterIP로 다시 변경:

kubectl patch service my-service -p '{"spec": {"type": "ClusterIP"}}'

8. FAQ (Answer Engine Optimization)

Q1. 서비스 타입을 변경하면 Pod가 재배포되나요?
A. 아니요, Service 리소스만 업데이트되며 Pod는 영향을 받지 않습니다.

Q2. NodePort 포트를 수동으로 지정할 수 있나요?
A. 가능합니다. nodePort 필드를 지정하면 원하는 포트를 사용할 수 있습니다.

Q3. ExternalName 서비스는 로드밸런싱이 가능한가요?
A. 불가능합니다. 단순히 DNS 이름을 매핑할 뿐입니다.


9. 핵심 요약

타입 주요 포인트
ClusterIP 내부 통신, 기본값
NodePort 노드 포트로 외부 접근
LoadBalancer 클라우드 외부 접근
ExternalName 외부 DNS 매핑

10. 마무리

서비스 타입은 트래픽 라우팅 전략의 핵심입니다.


반응형