kubernetes

[따배쿠] Service - 개요

bbiyak2da 2024. 12. 7. 12:43

Service

  • 동일한 서비스를 제공하는 Pod 그룹의 단일 진입점(Virtual IP) 제공
  • 즉, node1에 pod(10.44.0.1) / node2에 pod(10.45.0.1) / node3에 pod(10.36.0.1)이 있는데 해당 pod들을 묶어서 단일 진입점(10.96.x.x)을 제공하는 것이 Service이다.
  • Pod의 Label 단위로 Service가 생성된다. ex) Label이 app:webui인 pod들을 하나로 묶어 Service(단일 진입점) 생성
  • Service는 Cluster IP를 가지며 Load Balancing 기능을 지닌다.

 

Service-definition

 

Cluster IP(=Virtual IP, LB IP) : Pod들을 묶은 Cluster의 단일 진입점 IP

port : Cluster IP의 port

targetPort : Pod IP의 port

 

즉 10.96.100.100:80으로 접근하면, 10.44.0.1:80 or 10.36.0.1:80 or 10.45.0.1:80 으로 접근된다.

 

Service Type

  • Cluster IP (default)
    • Pod 그룹의 단일 진입점 (Virtual IP) 생성

  • NodePort
    • 모든 Worker Node에 외부에서 접속 가능한 포트가 예약
    • ex) Client가 http://node2.example.com:30100 접근 시, 10.44.0.1 or 10.45.0.1 or 10.36.0.1으로 접근

  •  LoadBalancer
    • 클라우드 제공업체(ex. AWS, Azure, GCP)에서 외부 로드 밸런서를 생성하고 Service에 고정된 외부 IP 할당
    • LoadBalancer를 자동으로 프로비전하는 기능 지원
  • ExternalName (DNS 기능)
    • Service를 externalName 필드의 내용(예: DNS 이름)에 매핑
    • 클러스터 도메인이 실제 외부 도메인으로 치환되어 동작

참고 영상

 

https://www.youtube.com/watch?v=5sKkIg7k8nw&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c&index=25