K8S

Headless Service와 Kube proxy

ohrohi 2025. 2. 7. 10:26
반응형
  • Headless Service란?
    • ClusterIP가 없는 서비스로 단일 진입점이 필요 없을때 사용
    • Service와 연결된 Pod의 endpoint로 DNS 레코드가 생성됨
    • Pod의 DNS 주소: pod-ip-addr.namespace.pod.cluster.local
    • Pod들의 endpoint에 DNS resolving Service 지원
  • kube-proxy란?
    • Kubernetes Service 의 backend 구현
    • endpoint 연결을 위한 iptables 구성
    • nodePort로의 접근과 Pod 연결을 구현(iptables 구성)
# kube-proxy 구성정보 확인 명령어
iptables -t nat -S | grep 80
  • kube-proxy mode
    • 클라이언트의 서비스 요청을 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 (never queue)
반응형