TIL

Kubernetes Service가 없으면 어떻게 될까?

하얀잔디 2026. 5. 3. 20:44

 

없으면 -> 노드 ssh 접속 후에 따로 10.x.x.x. 로 접근해야함. (귀찮)

 

Kubernetes에서 Pod는 고정된 존재가 아님.
장애가 나면 다시 생성되고, 배포가 바뀌면 교체됨.

 

문제는 이때 Pod IP도 바뀔 수 있음.

그래서 애플리케이션이 Pod IP를 직접 보고 통신하면 위험함.


예를 들어 프론트엔드가 백엔드 Pod IP로 직접 요청을 보내고 있었는데, 백엔드 Pod가 재시작되면 IP가 바뀜.
그러면 기존 IP로는 더 이상 접근할 수 없음.

 

이 문제를 해결하는 게 Service임.

Service는 Pod 앞에 고정된 접근 지점을 만들어줌.
Pod가 바뀌어도 Service 이름은 그대로라서 안정적으로 접근 가능함.

 

 

 

 
curl http://backend-service
 

또 Service는 같은 라벨을 가진 여러 Pod로 트래픽을 분산해줌.
즉, 로드밸런싱 역할도 함.

Service가 없으면 다음 문제가 생김.

  • Pod IP 변경 시 통신 끊김
  • 여러 Pod로 트래픽 분산 어려움
  • DNS 이름으로 접근 불가
  • 운영 중 장애 대응 어려움

CKA 시험에서는 Service 문제를 보면 selector부터 확인하는 게 중요함.

 
kubectl get pods --show-labels
kubectl describe svc <service-name>
kubectl get endpoints
 

Service가 있는데 통신이 안 되면 대부분 Pod label과 Service selector가 안 맞는 경우가 많음.

결론적으로 Service는 Kubernetes에서 안정적인 통신을 위한 필수 리소스임.
Pod가 바뀌어도 애플리케이션이 계속 접근할 수 있게 해주는 고정된 문 같은 역할임.