Kubernetes service headless

jaeyeon ha·2026년 3월 7일

[교육] Kubernetes

목록 보기
28/34

Headless

Pod들의 Endpoint에 DNS Resolving 서비스를 제공

  • Kube-Proxy 로드밸런싱이 필요 없거나 ClusterIP 서비스의 IP주소(단일 진입점)가 필요 없는 경우 사용
  • 서비스와 연결된 파드의 endpoint로 DNS 레코드가 생성
→ Headless 서비스 도메인을 이용하여 POD의 IP 주소 정보를 관리할 수 있음
  • POD 내부 컨테이너들은 내부 코어 DNS(169.254.25.10)을 사용
headless-svc.default.svc.cluster.local

▶ 해당 도메인을 이용하여 단일 진입점 없이 각각의 파드로 접근이 가능

headless service 예제

[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

Headless SVC 특징

  • Type : ClusterIP
  • ClusterIP는 None 이라 IP는 None
  • Endpoints는 해당 파드 모두 매핑됨

▶ 컨테이너 내에서 ClusterIP 없이 도메인(headless-svc.default.svc.cluster.local)으로 해당 파드 접근

▶ headless-svc 대신 해당 파드의 IP(XXX-XXX-XXX-XXX)를 적어주면 해당 파드만 접근 가능

0개의 댓글