iptables와 ipvs 그리고 kubernetes

Taesun Lee·2024년 12월 1일
0

CS

목록 보기
2/2

IPTables

개념 및 특징

  • 패킷 필터링, NAT 수행
    • Netfilter 프레임워크 위에서 동작
  • 규칙을 하나씩 차례로 검사, 매칭되는 규칙을 찾고 적용
  • 규칙이 많아질 수록 검사 시간이 오래 걸림
  • 사용 목적: 방화벽, NAT, LB, 포트 포워딩

기본 명령 예시

  • 설정 확인
iptables -L -v -n
  • 규칙 추가
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  • 규칙 삭제
iptables -D INPUT 1

IPVS

  • IP Virtual Server의 약자
    • 클라이언트가 '가상 서버'에 요청을 보내고, IPVS 설정에 따라서 적절한 백엔드 서버로 트래픽을 전달하는 개념
    • 백엔드 서버 응답
      - 직접 클라이언트로 응답 or IPVS 통해서 응답
  • Netfilter 대신 커널 공간에서 작동 -> 더 빠르다.
  • 연결된 서비스와 앤드포인트를 해시 테이블로 관리 -> 더 빠르다.
  • 대규모 서비스 환경에 적합
  • 네트워크 포로토콜(TCP, UDP)을 지원

IPTables vs IPVS

기능IPTablesIPVS
LBRR, NATRR, LC, WRR 등 다양한 알고리즘 지원
트래픽L3/L4 레벨 트래픽 제어L4 기반 LB

기타 개념

Netfilter

  • 리눅스 커널의 네트워크 스택에 내장된 패킷 필터링 프레임워크

NAT

  • Network Address Translation, 네트워크 주소 변환

LB (로드밸런싱) 종류

  • 라운드 로빈(Round Robin)
  • 최소 연결(Least Connections)
  • 가중 라운드 로빈(Weighted Round Robin)
  • 가중 최소 연결(Weighted Least Connections)
  • 해시 기반(Source Hashing, Destination Hashing)

LB

  • L3 LB: IP 주소 기준 트래픽 분배
  • L4 LB: IP 주소, 포트(TCP, UDP) 기준으로 트래픽 분배

kube-proxy of Kubernetes

  • kube-proxy가 Kubernetes 클러스터 네트워크 트래픽 제어를 위해 iptables나 IPVS를 사용
    • iptables기본
  • Kubernetes v1.9이상에서 IPVS 사용 가능, IPVS 모듈이 커널에 설치되어 있어야함
  • IPVS 설정 방법
kube-proxy 설정에 '--proxy-mode-ipvs' 플래그를 설정
profile
구름위 개발자

0개의 댓글