본문 바로가기
AEWS2기

2-1-1. 쿠버네티스 네트워크 - 서비스 내부 구현(kube-proxy, iptables)

by yeongki0944 2024. 3. 16.

[Vivek Grover Linkedin] IPTables vs IPVS in kubernetes
[tistory] Pod 네트워크 (2) : Service 내부 구현 분석 (kube-proxy와 iptables)

[tistory] [k8s] kube-porxy가 네트워크를 관리하는 3가지 모드(userspace, iptables, IPVS) 

1. kube-proxy

  • kube-proxy is a daemon running on each node
  • kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.
  • kube-proxy maintains network rules on nodes.

 


 

  • server Pod의 Cluster IP : 10.3.241.152

client pod > server pod 접속 시도

  1. client pod > 10.3.241.152(server pod의 Cluster IP) 요청 
    • 10.3.241.152 - 가상 IP
  2. veth, eth 모두 어디로 트래픽을 보내야 할 지 판단불가 > Gateway로 전달
  3. Gateway의 routing table에도 없음 > 트래픽 전달 실패

  • server Pod의 Cluster IP : 10.3.241.152
  • iptables
    • rule : 10.3.241.152 > 10.0.2.2 

client pod > server pod 접속 시도

  1. client pod > 10.3.241.152(server pod의 Cluster IP) 요청  > veth1
    • iptables을 통해 10.3.241.152 > 10.0.2.2 
  2. bridge > eth > gateway > ( 10.0.2.0 - 10.100.0.3 ) 

 

2. iptables  rule을 누가 관리할 것인가? > kube-proxy

  • kube-proxy는 API-server와 직접 통신
    • 서비스와 엔드포인트 오브젝트의 추가, 삭제를 감시
    • 서비스와 엔드포인트가 추가, 삭제가 되면 그에 따라 iptable rule을 추가, 삭제함

  • kube-proxy 3가지 모드

[tistory] [k8s] kube-porxy가 네트워크를 관리하는 3가지 모드(userspace, iptables, IPVS) 


3. ClusterIP 구현

 

4. NodePort 구현