본문으로 건너뛰기
버전: 1.0.2

서비스

서비스(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 편집기와 폼 편집기를 모두 사용할 수 있습니다.