<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kube-Proxy on Joonlog</title><link>https://joonlog.github.io/tags/kube-proxy/</link><description>Recent content in Kube-Proxy on Joonlog</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Tue, 19 Aug 2025 09:00:00 +0900</lastBuildDate><atom:link href="https://joonlog.github.io/tags/kube-proxy/index.xml" rel="self" type="application/rss+xml"/><item><title>kube-proxy 모드(iptables vs IPVS)</title><link>https://joonlog.github.io/p/kube-proxy-%EB%AA%A8%EB%93%9Ciptables-vs-ipvs/</link><pubDate>Tue, 19 Aug 2025 09:00:00 +0900</pubDate><guid>https://joonlog.github.io/p/kube-proxy-%EB%AA%A8%EB%93%9Ciptables-vs-ipvs/</guid><description>&lt;h1 id="kubernetes-kube-proxy-iptables-vs-ipvs"&gt;Kubernetes kube-proxy: iptables vs IPVS
&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;K8S에서 Service를 만들면, 클러스터 내부 Pod는 &lt;code&gt;ClusterIP&lt;/code&gt;를 통해 접근 가능
&lt;ul&gt;
&lt;li&gt;이때 트래픽을 실제 Pod로 보내주는 역할을 하는 게 &lt;code&gt;kube-proxy&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;kube-proxy는 iptables 모드와 IPVS 모드 두가지 모드 중 하나로 동작 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="iptables-모드"&gt;iptables 모드
&lt;/h2&gt;&lt;p&gt;K8S 초창기부터 기본으로 사용된 방식&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;동작 원리
&lt;ul&gt;
&lt;li&gt;service/endpoint 정보를 iptables 규칙에 직접 기록&lt;/li&gt;
&lt;li&gt;커널이 NAT 체인을 따라가면서 Pod로 트래픽을 전송&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;장점
&lt;ul&gt;
&lt;li&gt;별도 모듈 설치 없이 바로 사용 가능&lt;/li&gt;
&lt;li&gt;오래 쓰여온 만큼 안정적이고, 문제 생겼을 때 &lt;code&gt;iptables -t nat -L -n&lt;/code&gt; 으로 바로 확인 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단점
&lt;ul&gt;
&lt;li&gt;엔드포인트 수가 많아지면 규칙도 폭발적으로 늘어나 성능 저하가 생길 수 있음&lt;/li&gt;
&lt;li&gt;규칙을 갱신할 때 전체 체인을 다시 써야 해서 순간 부하 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="ipvs-모드"&gt;IPVS 모드
&lt;/h2&gt;&lt;p&gt;리눅스 커널의 IPVS 기능을 사용&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;동작 원리
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ip_vs&lt;/code&gt; 모듈을 이용해 L4 로드밸런서처럼 동작&lt;/li&gt;
&lt;li&gt;kube-proxy는 service/endpoint를 커널에 등록만 해두고, 실제 트래픽 처리는 커널이 빠르게 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;장점
&lt;ul&gt;
&lt;li&gt;수천~수만 엔드포인트까지 안정적으로 처리 가능&lt;/li&gt;
&lt;li&gt;엔드포인트 변경 시 필요한 부분만 업데이트 → 부하 적음&lt;/li&gt;
&lt;li&gt;라운드로빈, 세션 해시 등 다양한 로드밸런싱 알고리즘 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단점
&lt;ul&gt;
&lt;li&gt;커널 모듈(&lt;code&gt;ip_vs&lt;/code&gt;)과 유틸리티(&lt;code&gt;ipvsadm&lt;/code&gt;, &lt;code&gt;ipset&lt;/code&gt;) 설치 필요&lt;/li&gt;
&lt;li&gt;iptables에 비해 디버깅이 낯설 수 있음 (&lt;code&gt;ipvsadm -Ln&lt;/code&gt; 확인 필요)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="선택-기준"&gt;선택 기준
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;iptables 모드
&lt;ul&gt;
&lt;li&gt;수십~수백 노드, 수천 개 엔드포인트 수준&lt;/li&gt;
&lt;li&gt;운영 단순성, 문제 대응 속도 중시&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;IPVS 모드
&lt;ul&gt;
&lt;li&gt;수천 노드 이상, 서비스 엔드포인트 수가 수만 단위&lt;/li&gt;
&lt;li&gt;대규모 SaaS 환경, 트래픽이 매우 많은 서비스&lt;/li&gt;
&lt;li&gt;고급 로드밸런싱(세션 어피니티 등) 필요한 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;kubespray는 기본적으로 IPVS로 동작&lt;/p&gt;
&lt;/blockquote&gt;</description></item></channel></rss>