Pod들의 Endpoint에 DNS Resolving 서비스를 제공
- Kube-Proxy 로드밸런싱이 필요 없거나 ClusterIP 서비스의 IP주소(단일 진입점)가 필요 없는 경우 사용
- 서비스와 연결된 파드의 endpoint로 DNS 레코드가 생성
→ Headless 서비스 도메인을 이용하여 POD의 IP 주소 정보를 관리할 수 있음
headless-svc.default.svc.cluster.local
▶ 해당 도메인을 이용하여 단일 진입점 없이 각각의 파드로 접근이 가능
[root@master ~/kube/08/headless]# vi headless-svc.yaml
[root@master ~/kube/08/headless]# cat headless-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: headless-svc
spec:
type: ClusterIP
clusterIP: None
selector:
app: webui
ports:
- protocol: TCP
port: 80
targetPort: 80
nginx-headless deployment
[root@master ~/kube/08/headless]# vi nginx-headless-deployment.yaml
[root@master ~/kube/08/headless]# cat nginx-headless-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
spec:
replicas: 3
selector:
matchLabels:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
▶ 컨테이너 내에서 ClusterIP 없이 도메인(headless-svc.default.svc.cluster.local)으로 해당 파드 접근
▶ headless-svc 대신 해당 파드의 IP(XXX-XXX-XXX-XXX)를 적어주면 해당 파드만 접근 가능