본문 바로가기

About/Kubernetes

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

ㄹkubeproxy

 

kube-proxy는 쿠버네티스에서 서비스를 만들었을 때 Cluster IP나 NodePort로 접근할 수 있게 하는 실제 조작을 하는 컴포넌트입니다. 쿠버네티스 클러스터의 노드마다 실행되면서 클러스터 내부 IP로 연결하려는 요청을 적절한 파드로 전달합니다.

kube-proxy가 네트워크를 관리하는 방법은 userspace, iptables, IPVS가 있습니다. 초기에는 userspace가 기본 관리 모드였고, 2019년 12월에는 iptables가 기본 관리 모드 입니다. 앞으로는 iptables에서 IPVS로 기본 관리 모드가 바뀔 것으로 예상됩니다.


userspace 모드

userspace 모드

클라이언트에서 서비스의 클러스터 IP를 통해 어떤 요청을 하면 iptables를 거쳐서 kube-proxy가 요청을 받습니다. 그리고 서비스의 클러스터 IP는 연결되어야 하는 적절한 파드로 연결해줍니다. 이 때 요청을 파드들에게 나눠줄 때는 라운드 로빈(round robin) 방식을 사용합니다.

iptables 모드

iptables 모드

userspace 모드와 다른 점은 kube-proxy가 iptables를 관리하는 역할만 한다는 것입니다. 직접 클라이언트에서 트래픽을 받지 않습니다. 클라이언트에서 오는 모든 요청은 iptables를 거쳐서 파드로 직접 전달됩니다. 그래서 userspace 모드 보다 요청 처리 서능이 좋습니다.

userspace 모드에서는 파드 하나로의 연결 요청이 실패하면 kube-proxy가 자동으로 다른 파드에 연결을 재시도합니다. 하지만 iptables 모드에서는 파드 하나로의 연결 요청이 실패하면 재시도하지 않고 그냥 요청이 실패합니다. 

컨테이너에 readinessProbe가 설정되었고 그에 따른 헬스 체크가 정상적으로 되어야 연결 요청이 이루어집니다.

IPVS(IP Virtual Server) 모드

IPVS(IP Virtual Server) 모드는 리눅스 커널에 있는 L4 로드밸런싱 기술입니다. 리눅스 커널 안 네트워크 관련 프레임워크인 넷필터(Netfilter) 에  포함되어 있습니다. 따라서 IPVS 커널 묘듈이 노드에 설치되어야 합니다.

https://ko.wikipedia.org/wiki/%EB%84%B7%ED%95%84%ED%84%B0

 

넷필터 - 위키백과, 우리 모두의 백과사전

넷필터 위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

IPVS 모드

IPVS 모드는 커널 스페이스(kernel space)에서 동작하고 데이터 구조를 해시 테이블로 저장하기 때문에 iptables 모드 보다 빠르고 좋은 성능을 냅니다. 또한 더 많은 로드밸런싱 알고리즘이 있어서 이를 이용할 수 있습니다.

주요 로드밸런싱 알고리즘은 다음과 같습니다.

로드밸런싱 알고리즘 설명
rr(round-robin) 프로세스 사이에 우선순위를 두지 않고 순서와 시간 단위로 CPU를 할당합니다.
lc(least connection) 접속 개수가 가장 적은 서버를 선택합니다.
dh(destination hashing) 목적지 IP 주소로 해시값을 계산해 분산할 실제 서버를 선택합니다.
sh(source hashing) 출발지 IP 주소로 해시값을 계산해 분산할 실제 서버를 선택합니다.
sed(shortest expected delay) 응답 속도가 가장 빠른 서버를 선택합니다.
nq(never queue) sed와 비슷하지만 활성화된 접속 개수가 0인 서버를 가장 먼저 선택합니다.

kubernetes의 kube-proxy 동작에 대하여 알아보았습니다.

참고

http://www.yes24.com/Product/Goods/85578606

 

쿠버네티스 입문 - YES24

현업의 운영 경험을 바탕으로 엄선한 쿠버네티스 입문 A~Z현재 다양한 인프라 구축의 핵심 기술은 컨테이너이다. 운영체제, 데이터베이스, 웹 서버 등 인프라 구축에 필요한 컨테이너 이미지 각

www.yes24.com