Skip to main content

서비스

서비스(Service)는 Kubernetes에서 Pod 집합에 대한 안정적인 네트워크 접근점을 제공하는 핵심 리소스입니다. Pod는 생성과 삭제를 반복하면서 IP 주소가 변경되지만, 서비스를 통해 일관된 주소로 접근할 수 있습니다.


서비스 목록

사이드바에서 네트워크 > 서비스를 선택하면 현재 네임스페이스에 존재하는 서비스 목록이 표시됩니다. 목록에서는 다음 정보를 확인할 수 있습니다.

  • 이름: 서비스의 고유 이름
  • 네임스페이스: 서비스가 속한 네임스페이스
  • 타입: ClusterIP, NodePort, LoadBalancer, ExternalName 중 하나
  • 클러스터 IP: 클러스터 내부에서 접근 가능한 IP 주소
  • 외부 IP: 외부에서 접근 가능한 IP 주소 (해당하는 경우)
  • 포트: 서비스가 노출하는 포트 번호와 프로토콜
  • 생성 시간: 리소스가 생성된 시각

서비스 상세

목록에서 특정 서비스를 클릭하면 상세 화면으로 이동합니다.

상세 화면에서는 서비스의 전체 설정과 연결 상태를 확인할 수 있습니다.

  • 메타데이터: 이름, 네임스페이스, 레이블, 어노테이션, 생성 시간
  • 스펙: 서비스 타입, 셀렉터, 클러스터 IP, 포트 매핑, 세션 어피니티
  • 포트: 서비스가 노출하는 포트 목록과 타겟 포트 매핑
  • 엔드포인트: 서비스에 연결된 엔드포인트 정보
  • 이벤트: 서비스와 관련된 Kubernetes 이벤트

서비스 타입별 설명

Kubernetes는 네 가지 서비스 타입을 제공하며, 각 타입에 따라 콘솔에서 표시되는 정보가 달라집니다.

ClusterIP

가장 기본적인 서비스 타입으로, 클러스터 내부에서만 접근 가능한 가상 IP 주소를 할당합니다. 콘솔에서는 클러스터 IP와 내부 포트 매핑 정보를 확인할 수 있습니다. 외부 IP 항목은 표시되지 않습니다.

NodePort

ClusterIP 기능에 더해 각 노드의 특정 포트를 통해 외부에서 접근할 수 있도록 합니다. 콘솔에서는 클러스터 IP와 함께 노드 포트 번호(기본 범위: 30000~32767)가 표시됩니다. 노드의 IP 주소와 노드 포트를 조합하여 외부에서 접근할 수 있습니다.

LoadBalancer

클라우드 환경에서 외부 로드 밸런서를 자동으로 프로비저닝하여 외부 트래픽을 서비스로 전달합니다. 콘솔에서는 클라우드 제공자가 할당한 외부 IP 주소 또는 호스트네임이 외부 IP 항목에 표시됩니다. 로드 밸런서가 아직 프로비저닝 중인 경우 <pending> 상태로 나타납니다.

ExternalName

클러스터 외부의 서비스에 대한 DNS CNAME 별칭을 제공합니다. 셀렉터나 포트 정의 없이 외부 DNS 이름만 설정합니다. 콘솔에서는 External Name 필드에 매핑된 외부 도메인 이름이 표시됩니다.


서비스 생성 및 편집

서비스 목록 화면 상단의 + 버튼을 클릭하여 새 서비스를 생성하거나, 상세 화면에서 편집 버튼을 통해 기존 서비스를 수정할 수 있습니다. YAML 편집기와 폼 편집기를 모두 사용할 수 있습니다.