-
[따배쿠] Service - 개요kubernetes 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
'kubernetes' 카테고리의 다른 글
[따배쿠] Headless Service, Kube-Proxy (0) 2024.12.08 [따배쿠] Service - ClusterIP, NodePort, LoadBalancer, ExternalName (0) 2024.12.07 [따배쿠] Controller - Cronjob (0) 2024.12.07 [따배쿠] Controller - Job (0) 2024.12.06 [따배쿠] Controller - StatefulSet (0) 2024.12.05