본문 바로가기
AI Journey/클라우드

[k8s] 내 파드는 잘 연결되었을까? 쿠버네티스 서비스(Service) 상태 확인

by 보눔비스타 2026. 1. 29.

쿠버네티스에서 서비스(Service)는 유동적인 파드 IP들을 하나의 고정된 가상 IP(VIP)로 묶어주는 핵심 역할을 한다.

디플로이먼트로 배포한 파드들이 서비스에 올바르게 매핑되었는지, 그리고 로드 밸런싱이 정상적으로 작동하는지 확인하는 명령어를 정리해보자.

1. 서비스 리소스 및 가상 IP 확인

가장 먼저 클러스터 내의 서비스 목록과 할당된 ClusterIP를 확인한다.

이 IP는 외부나 내부 클라이언트가 파드 그룹에 접근하기 위한 단일 진입점이 된다.

# 서비스 목록과 할당된 가상 IP, 포트 정보 조회
kubectl get svc -o wide
  • CLUSTER-IP: 서비스의 고정 IP다.
  • SELECTOR: 서비스가 파드를 식별하는 기준(Label)을 보여준다. 이 라벨이 파드의 라벨과 일치해야 연결이 성립된다.

 

2. 서비스와 파드의 연결 고리: 엔드포인트(Endpoints)

 

서비스가 실제로 어떤 파드들로 트래픽을 보내고 있는지 확인하려면 엔드포인트를 점검해야 한다.

서비스 객체는 자신의 셀렉터와 일치하는 파드들의 IP를 엔드포인트 리스트로 관리한다.

# 특정 서비스의 상세 설정과 연결된 파드 IP(Endpoints) 확인
kubectl describe svc <서비스_이름>

 

출력 결과 중 Endpoints 항목에 현재 실행 중인 파드들의 IP가 나열되어 있다면 서비스와 파드가 정상적으로 바인딩된 상태다.

만약 이 항목이 <none>으로 뜬다면 서비스의 셀렉터와 파드의 라벨이 일치하지 않는 것이므로 수정을 해야 한다.

 

3. 서비스 생성 및 로드 밸런싱 테스트

실행 중인 디플로이먼트를 서비스로 노출하고, 실제로 요청이 분산되는지 확인하는 과정이다.

서비스 노출 (Expose)

# main-ui 디플로이먼트를 포트 80의 서비스로 생성
kubectl expose deployment main-ui --name=main-ui-svc --port=80 --target-port=80

로드 밸런싱 검증 (Curl)

마스터 노드에서 서비스 IP로 여러 번 접속했을 때, 각기 다른 파드가 응답하는지 확인한다.

# 서비스 IP로 반복 접속 테스트 (응답하는 파드의 호스트네임이나 IP 확인)
curl <서비스_ClusterIP>

 

4. 실시간 상태 모니터링

파드의 개수를 늘리거나 줄일 때(Scaling), 서비스가 실시간으로 엔드포인트를 업데이트하는지 확인하려면 watch 명령어를 조합한다.

# 엔드포인트(연결된 파드 리스트)의 변화를 2초마다 감시
watch kubectl get ep

 

 

쿠버네티스 서비스는 파드의 유동적인 생명 주기를 추상화하여 안정적인 네트워크 환경을 제공한다.

describe 명령어를 통해 엔드포인트 리스트를 주기적으로 확인하면 네트워크 트러블슈팅 시간을 줄일 수 있다.