콘텐츠로 이동

Kube Proxy

Feb 12, 2026 · Updated Mar 15, 2026

Kube Proxy는 Kubernetes Service 객체가 제대로 동작할 수 있도록 네트워크 규칙을 설정하는 역할을 한다.

주요 역할:

  • 애플리케이션 인스턴스가 클라이언트의 연결을 수락할 준비가 되었음을 감지
  • Service에 대한 로드 밸런서 설정
  • 외부 및 내부 트래픽이 적절한 Pod로 라우팅되도록 네트워크 규칙 구성

이름은 “Proxy”이지만, 현재 버전에서는 트래픽이 실제로 Kube Proxy를 통과하지는 않는다. 초기에는 실제로 프록시 역할을 했지만, 이후 iptables나 IPVS와 같은 커널 레벨의 네트워크 규칙을 설정하는 방식으로 변경되었다.

Service의 로드 밸런싱 동작:

  1. Kube Proxy가 Pod가 준비되었음을 감지
  2. 해당 Service에 대한 네트워크 규칙(iptables/IPVS) 설정
  3. 클라이언트 요청이 Service IP로 들어오면 규칙에 따라 적절한 Pod로 분산
graph TD
  Client["외부 요청"] --> LB["Load Balancer"]
  LB --> NP["Node Port (30838)"]
  NP --> Rules["Kube Proxy가 설정한 iptables/IPVS 규칙"]
  Rules --> PodA["Pod A"]
  Rules --> PodB["Pod B"]
  Rules --> PodC["Pod C"]
Terminal window
# Service를 통한 로드 밸런싱 확인
$ curl 35.246.179.22:8080
web-server version 1.0. Request processed by "web-server-9d785b578-58vhc"
$ curl 35.246.179.22:8080
web-server version 1.0. Request processed by "web-server-9d785b578-p449x"
$ curl 35.246.179.22:8080
web-server version 1.0. Request processed by "web-server-9d785b578-jmnj8"
# 매 요청마다 다른 Pod가 응답 - Kube Proxy에 의한 로드 밸런싱