1.
Kubernetes Service 개요
역할
: Kubernetes에서 애플리케이션의 다양한 컴포넌트 간(내부/외부) 통신을 가능하게 함
주요 기능
프론트엔드 ↔ 백엔드 Pod 간 통신
외부 사용자가 클러스터 내부 애플리케이션에 접근 가능하도록 연결
외부 데이터 소스(DB 등)와의 연결
Loose coupling
제공 → Pod IP 변경과 무관하게 안정적인 접근 가능
2.
서비스 타입
NodePort
Node의 특정 포트를 외부에 개방하고, 해당 포트를 통해 들어온 요청을 Pod로 전달
NodePort 범위:
30000~32767
ClusterIP
클러스터 내부에서만 접근 가능한 가상 IP 생성
서비스 간 내부 통신에 사용
LoadBalancer
클라우드 환경에서 외부 로드밸런서 프로비저닝
다수의 Pod로 트래픽 분산
3.
NodePort Service 동작 원리
세 가지 포트
targetPort
: Pod 내부 컨테이너에서 서비스가 동작하는 포트 (예: 80)
port
: Service 객체 자체의 포트 (ClusterIP가 사용하는 포트)
nodePort
: Node에서 외부로 노출되는 포트 (30000~32767)
동작 흐름:
사용자 → Node IP:nodePort → Service(port) → Pod(targetPort)
4.
서비스와 Pod 연결 방법
selector
와
label
을 사용
Pod에 부여된 label을 Service 정의 파일에서 selector로 지정
Service는 selector를 통해 해당 label을 가진 모든 Pod를 자동으로 엔드포인트로 설정
5.
서비스 정의 파일 예시 (NodePort)