파드들을 통해 실행되고 있는 애플리케이션을 네트워크에 노출시키는 가상의 컴포넌트
- 파드들은 언제든 다른 노드로 옮겨지거나 삭제될 수 있고
- 새로 생성될 때 마다 새로운 내부 IP를 받게 되므로
- 내/외부 통신을 유지하기 어려움
→ 파드가 외부와 통신할 수 있도록 클러스터 내부에서 고정적인 IP를 갖는 서비스(Service)를 이용
- ClusterIP
- NodePort
- LoadBalancer
- Ingress

출처 : dangtong
• kube-proxy 기반으로 동작 (IPTables 또는 IPVS 모드 선택 가능)
• IPTables 모드에서 라우팅은 랜덤 선택
• IPVS 모드에서는 아래와 같은 라우팅 알고리즘 선택 가능
• 다른 서비스의 컴포넌트로 포함

• 노드의 특정 포트를 할당 및 개방 하여 서비스(ClusterIP) 와 연동
• 노드의 포트 할당 범위가 (30000 ~ 32767 : --service-node-port-range) 로 제한
→ Product에 적합하지 않은 이유
• 특정 노드로 접속하더라도 ClusterIP 로 연동 되기 때문에 로드밸런싱 됨

• ClustereIP + 외부 로드벨런서
• ClusterIP 가 외부 통신이 불가능 하기 때문에 앞 단에 LoadBalancer 와 결합하여 외부 트래픽 유입이 가능한 서비스
• 외부 로드밸런서는 Layer4 로드밸런서 (GCP의 경우 TCP 로드밸런스 할당)

• NodePort + 외부 로드벨런서
• 반드시 Ingress 콘트롤러가 있어야함 (Nginx 등)
• Ingress Controller 리스트 : https://kubernetes.io/ko/docs/concepts/services-networking/ingress-controllers/
• 외부 로드밸런서는 Layer7 로드밸런서
