본문 바로가기
Kubernetes(k8s)/따배쿠(따라하면서 배우는 쿠버네티스) 학습

[k8s]Kubernetes - Headless Service/Kube Proxy

by 열정주니어 2023. 3. 9.
반응형

Headless Service

  • ClusterIP가 없는 서비스로 단일 진입점이 필요 없을 때 사용
    • Pod들의 endpoint를 묶어주지만 IP는 x
  • Service와 연결된 Pod의 endpoint로 DNS 레코드가 생성됨
    • Pod들의 endpoint에 DNS resolving Service로 지원
  • Pod의 DNS 주소: pod-ip-addr.namespace.pod.cluster.local

 

Example

  • clusterIP가 None으로 설정되면 Headless Service
  • create -f를 통해 Headless Service 실행
    • kubectl create -f headless-nginx.yaml
  • get, describe를 통해  Headless Service확인
    • kubectl get service
    • kubectl describe svc headless-service
  • Pod Endpoint DNS 서비스 조회
    • kubectl run testpod -it --image=centos:7 /bin/bash
    • curl ip-addr.default.pod.cluster.local

 

kube-proxy

  • Kubernetes Service의 backend 구현
    • iptables 룰 생성
  • endpoint 연결을 위한 iptables 구성
  • nodePort로의 접근과 Pod 연결을 구현(iptables 구성)


kube-proxy mode

  • userspace
    • 클라이언트의 서비스 요청을 iptables를 거쳐 kube-proxy가 받아서 연결
    • kubernetes 초기버전에 잠깐 사용
  • iptables
    • default kubernetes network mode
    • kube-proxy는 service API 요청 시 iptables rule이 생성
    • 클라이언트 연결을 kube-proxy가 받아서 iptables 룰을 통해 연결
  • IPVS
    • 리눅스 커널이 지원하는 L4 로드밸런싱 기술을 이용
    • 별도의 ipvs 지원 모듈을 설정한 후 적용 가능
    • 지원 알고리즘: rr(round-robin), lc(least connection), dh(destination hashing), sh(source hashing), sed(shortest expected delay), nc

 

Reference

따배쿠26강

 

반응형