Skip to content

Latest commit

 

History

History
176 lines (143 loc) · 20.8 KB

README-KOR.md

File metadata and controls

176 lines (143 loc) · 20.8 KB

image

Website eBPF Emerging Project Go Report Card OpenSSF Best Practices build workflow sanity workflow
apache Info Slack

loxilb란 무엇인가?

loxilb는 GoLang/eBPF를 기반으로 한 오픈 소스 클라우드 네이티브 로드 밸런서로, 온-프레미스, 퍼블릭 클라우드 또는 하이브리드 K8s 환경 전반에 걸쳐 호환성을 달성하는 것을 목표로 합니다. loxilb는 텔코 클라우드(5G/6G), 모빌리티 및 엣지 컴퓨팅에서 클라우드 네이티브 기술 채택을 지원하기 위해 개발되고 있습니다.

loxilb와 함께하는 Kubernetes

Kubernetes는 ClusterIP, NodePort, LoadBalancer, Ingress 등 여러 서비스 구조를 정의하여 파드에서 파드로, 파드에서 서비스로, 외부 에서 서비스로의 통신을 가능하게 합니다.

LoxiLB Cover

이 모든 서비스는 Layer4/Layer7에서 작동하는 로드 밸런서/프록시가 제공합니다. Kubernetes는 매우 모듈화되어 있으며, 다양한 소프트웨어 모듈이 이러한 서비스를 제공할 수 있습니다. 예를 들어, kube-proxy는 기본적으로 ClusterIP 와 NodePort 서비스를 제공하지만, LoadBalancer 와 Ingress 같은 일부 서비스는 기본적으로 제공되지 않습니다.

로드 밸런서 서비스는 일반적으로 퍼블릭 클라우드 제공자가 관리 구성 요소로 함께 제공합니다. 그러나 온프레미스 및 자체 관리 클러스터의 경우 사용할 수 있는 옵션이 제한적입니다. 매니지드 K8S 서비스(예: EKS)의 경우에도 로드 밸런서를 클러스터 어디서나 가져오려는 사람들이 많습니다. 추가적으로, 텔코 5G/6G 및 엣지 서비스는 GTP, SCTP, SRv6, DTLS와 같은 범용적이지 않은 프로토콜 사용으로 인해 기존 K8S 서비스에서의 원활한 통합이 특히 어렵습니다. loxilb는 로드 밸런서 서비스 유형 기능을 주요 사용 사례로 제공합니다. loxilb는 사용자의 필요에 따라 클러스터 내 또는 클러스터 외부에서 실행할 수 있습니다.

loxilb는 기본적으로 L4 로드 밸런서/서비스 프록시로 작동합니다. L4 로드 밸런싱이 우수한 성능과 기능을 제공하지만, 다양한 사용 사례를 위해 K8s에서 동일하게 성능이 뛰어난 L7 로드 밸런서도 필요합니다. loxilb는 또한 eBPF SOCKMAP Helper를 사용하여 향상된 Kubernetes Ingress 구현 형태로 L7 로드 밸런싱을 지원합니다. 이는 동일한 환경에서 L4와 L7 로드 밸런싱이 필요한 사용자에게도 유리합니다.

추가적으로 loxilb는 다음을 지원합니다:

  • eBPF를 통한 kube-proxy 교체(Kubernetes의 전체 클러스터 메쉬 구현)
  • 인그레스 지원
  • Kubernetes Gateway API
  • Kubernetes 네트워크 정책

loxilb와 함께하는 텔코 클라우드

클라우드 네이티브 기능으로 텔코-클라우드를 배포하려면 loxilb를 SCP(Service Communication Proxy: 서비스 통신 프록시)로 사용할 수 있습니다. SCP는 3GPP에서 정의한 통신 프록시로, 클라우드 네이티브 환경에서 실행되는 텔코 마이크로 서비스에 목적을 두고 있습니다. 자세한 내용은 이 블로그를 참조하십시오. image

텔코-클라우드는 N2, N4, E2(ORAN), S6x, 5GLAN, GTP 등 다양한 인터페이스와 표준을 통한 로드 밸런싱 및 통신을 필요로 합니다. 각각 고유한 챌린지를 요구하며, loxilb는 이를 해결하는 것을 목표로 합니다. 예를 들어:

  • N4는 PFCP 수준의 세션 인텔리전스를 요구합니다.
  • N2는 NGAP 파싱 기능이 필요합니다(관련 블로그 - 블로그-1, 블로그-2, 블로그-3).
  • S6x는 Diameter/SCTP 멀티-호밍 LB 지원이 필요합니다(관련 블로그).
  • MEC 사용 사례는 UL-CL 이해가 필요할 수 있습니다(관련 블로그).
  • 미션 크리티컬 애플리케이션을 위해 히트리스 장애 조치 지원이 필수적일 수 있습니다.
  • E2는 OpenVPN과 번들된 SCTP-LB가 필요할 수 있습니다.
  • 클라우드 네이티브 VOIP를 가능하게 하는 SIP 지원이 필요합니다.

loxilb를 선택해야 하는 이유?

  • 다양한 아키텍처 전반에서 경쟁자보다 성능이 훨씬 뛰어납니다.
  • ebpf를 활용하여 유연하고 사용자 정의가 가능합니다.
  • 워크로드에 대한 고급 서비스 품질(LB별, 엔드포인트별 또는 클라이언트별)
  • 어떤 Kubernetes 배포판/CNI와도 호환 - k8s/k3s/k0s/kind/OpenShift + Calico/Flannel/Cilium/Weave/Multus 등
  • loxilb를 사용한 kube-proxy 교체는 간단한 플러그인으로 기존에 배포된 파드 네트워킹 소프트웨어와 통합이 가능합니다.
  • K8s에서 SCTP 워크로드(멀티-호밍 포함)에 대한 광범위한 지원
  • NAT66, NAT64를 지원하는 듀얼 스택 K8s
  • 멀티 클러스터 K8s 지원 (계획 중 🚧)
  • 어떤 클라우드(퍼블릭 클라우드/온프레미스) 또는 독립형 환경에서도 실행 가능

loxilb의 전반적인 기능

  • L4/NAT 상태 저장 로드밸런서
    • NAT44, NAT66, NAT64를 지원하며 One-ARM, FullNAT, DSR 등 다양한 모드 제공
    • TCP, UDP, SCTP(멀티-호밍 포함), QUIC, FTP, TFTP 등 지원
  • Hiteless/maglev/cgnat 클러스터링을 위한 BFD 감지로 고가용성 지원
  • 클라우드 네이티브 환경을 위한 광범위하고 확장 가능한 엔드포인트 라이브니스 프로브
  • 상태 저장 방화벽 및 IPSEC/Wireguard 지원
  • Conntrack, QoS 등 기능의 최적화된 구현
  • ipvs와 완전 호환(ipvs 정책 자동 상속 가능)
  • 정책 지향 L7 프록시 지원 - HTTP1.0, 1.1, 2.0, 3.0

loxilb의 구성 요소

  • GoLang 기반의 제어 평면 구성 요소
  • 확장 가능하고 효율적인 eBPF 기반 데이터 경로 구현
  • 통합된 goBGP 기반 라우팅 스택
  • Go로 작성된 Kubernetes 오퍼레이터 kube-loxilb
  • Kubernetes 인그레스 구현

아키텍처 고려 사항

시작하기

클러스터 외부에서 loxilb 실행

클러스터 내에서 loxilb 실행

서비스 프록시로서의 loxilb(kube-proxy 대체)

Kubernetes 인그레스로서의 loxilb

독립형 모드에서 loxilb 실행

고급 가이드

배경 지식

커뮤니티

Slack

loxilb 개발자 및 다른 loxilb 사용자와 채팅을 하려면 loxilb Slack 채널에 가입하세요. 이곳은 loxilb에 대해 배우고, 질문을 하고, 협력작업을 하기에 좋은 장소입니다.

일반 토론

GitHub 토론에 자유롭게 질문을 게시하세요. 문제나 버그가 발견되면 GitHub에서 이슈를 제기해 주세요. loxilb 커뮤니티의 멤버들이 도와드릴 것입니다.

CICD 워크플로우 상태

기능(Ubuntu20.04) 기능(Ubuntu22.04) 기능(RedHat9)
build workflow Docker-Multi-Arch SCTP-LB-Sanity-CI-RH9
simple workflow Sanity-CI-Ubuntu-22 Sanity-CI-RH9
tcp-lb-sanity-CI tcp-lb-sanity-CI TCP-LB-Sanity-CI-RH9
udp-lb-sanity-CI udp-lb-sanity-CI UDP-LB-Sanity-CI-RH9
sctp-lb-sanity-CI ipsec-sanity-CI IPsec-Sanity-CI-RH9
extlb workflow nat66-sanity-CI NAT66-LB-Sanity-CI-RH9
ipsec-sanity-CI Scale-Sanity-CI-Ubuntu-22 Adv-LB-Sanity-CI-RH9
scale-sanity-CI perf-CI
liveness-sanity-CI
nat66-sanity-CI
perf-CI
K3s 테스트 K8s 클러스터 테스트 EKS 테스트
K3s-Base-Sanity-CI K8s-Calico-Cluster-IPVS-CI EKS
k3s-flannel-CI K8s-Calico-Cluster-IPVS2-CI
k3s-flannel-ubuntu22-CI K8s-Calico-Cluster-IPVS3-CI
k3s-flannel-cluster-CI K8s-Calico-Cluster-IPVS3-HA-CI
k3s-flannel-incluster-CI
k3s-flannel-incluster-l2-CI
k3s-calico-CI
k3s-cilium-cluster-CI
k3s-sctpmh-CI
k3s-sctpmh-ubuntu22-CI
k3s-sctpmh-2-CI

📚 자세한 정보는 loxilb 웹사이트를 확인하십시오.