
추가 설명. Service IP (ClusterIP)
정의
- Service에 할당되는 가상 IP
- 실제 네트워크 인터페이스에 바인딩되지 않고, iptabels/IPVS 규칙에만 존재
[ 가상 IP를 왜 사용하는지? ]
왜 이렇게 하는지?
1. Pod IP는 재생성 시 바뀜
2. 백엔드 Pod가 여러 개일때 Cluster IP 하나로 LB 가능
3. 클라이언트는 Service IP만 알면 되고, 뒤에 Pod IP는 몰라도됨
할당 방식
- Service 생성 시 API 서버가 지정된 CIDR 범위(EX. 10.96.0.0/12)에서 자동 할당하고 etcd에
저장
특징
- 클러스터 내부에서만 접근 가능
- Service가 삭제되지 않는 한 변하지 않음
- Pod이 죽고 재생성되어도 Service IP는 유지
- 실제 트래픽을 받는 게 아니라 netfilter가 이 IP를 보면 Pod IP로 DNAT하는 트리거 역할
Service 종류별 IP
[ Cluster IP ]
- 디폴트 설정
- 클러스터 내부에서만 접근 가능한 가상 IP
[ NodePort ]
- ClusterIP + 모든 노드의 특정 포트(30000~32767)로 외부 접근 가능
[ LoadBalancer ]
- ClusterIP + NodePort + 외부 LB의 공인 IP 할당
[ Headless(ClusterIP: None) ]
- 가상 IP 없음
- DNS가 Pod IP를 직접 반환