Kubernetes 서비스 개요

y001·2025년 3월 15일
0
post-thumbnail

쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션을 관리하는 강력한 오케스트레이션 도구다. 클러스터 내에서 실행되는 파드(Pod) 는 동적으로 배치되고, 이 과정에서 IP 주소가 변경될 수 있다. 이러한 변화 속에서도 안정적인 네트워크 접근을 제공하기 위해 서비스(Service) 개념이 필요하다.

1. 서비스(Service)란?

쿠버네티스의 서비스는 동일한 Label을 가진 파드들을 묶어 단일 엔드포인트(IP 및 포트)를 제공하는 객체다. 이를 통해 특정 파드의 IP 변경과 무관하게 클라이언트가 안정적으로 접근할 수 있다.

1.1 서비스가 필요한 이유

  • 파드의 IP 주소는 동적으로 변경됨 → 직접 접근 시 불안정함
  • 여러 파드가 동일한 역할을 수행 → 하나의 엔드포인트 필요
  • 내부 및 외부 트래픽을 관리 → 로드밸런싱을 통해 부하 분산 가능

2. 서비스의 주요 기능

2.1 로드밸런싱

서비스는 여러 개의 파드로 트래픽을 분산시켜 부하를 조절할 수 있다. 예를 들어, 웹 애플리케이션이 3개의 파드로 실행된다면, 서비스는 클라이언트 요청을 균등하게 배분할 수 있다.

2.2 내부 DNS 지원

쿠버네티스는 클러스터 DNS(CoreDNS) 를 통해 각 서비스에 대해 내부 도메인 이름을 자동으로 생성한다. 예를 들어, my-service 라는 서비스는 my-service.default.svc.cluster.local 과 같은 형태로 접근 가능하다.

2.3 서비스 유형

쿠버네티스 서비스는 네트워크 노출 방식에 따라 다음과 같이 분류된다.

서비스 유형설명
ClusterIP클러스터 내부에서만 접근 가능 (기본값)
NodePort모든 노드에서 지정된 포트를 통해 외부 접근 가능
LoadBalancer클라우드 제공자의 외부 로드밸런서를 이용한 서비스
ExternalName클러스터 내부에서 외부 도메인으로 요청을 포워딩
Headless단일 IP 없이 각 파드의 개별 IP로 직접 접근

3. 마무리

쿠버네티스 서비스는 파드의 동적인 IP 변경 문제를 해결하고, 내부 및 외부 네트워크 접근을 효율적으로 관리하는 중요한 역할을 한다. 다음 글에서는 ClusterIP 실습을 통해 실제로 서비스를 생성하고 활용하는 방법을 다룰 예정이다.

0개의 댓글