loxilb-io/loxilb

GitHub: loxilb-io/loxilb

loxilb 是一个基于 Go 和 eBPF 的开源云原生负载均衡器,为 Kubernetes、电信和边缘计算场景提供高性能的 L4/L7 流量调度、NAT 和服务代理能力。

Stars: 1865 | Forks: 144

![image](https://static.pigsec.cn/wp-content/uploads/repos/cas/b6/b69b7c1f76eea86b57e2e4509ae2ba9a6b18bbb68c8745cd2f0e9d8f5b88f510.png) [![Website](https://img.shields.io/static/v1?label=www&message=loxilb.io&color=blue?style=for-the-badge&logo=appveyor)](https://www.loxilb.io) [![eBPF Emerging Project](https://img.shields.io/badge/ebpf.io-Emerging--App-success)](https://ebpf.io/projects#loxilb) [![Go Report Card](https://goreportcard.com/badge/github.com/loxilb-io/loxilb)](https://goreportcard.com/report/github.com/loxilb-io/loxilb) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8472/badge)](https://www.bestpractices.dev/projects/8472) ![build workflow](https://static.pigsec.cn/wp-content/uploads/repos/cas/4a/4a137862ce668fa98a57eb054ab61521069d0b71a5b91bf83f7862ffd93eb934.svg) ![sanity workflow](https://static.pigsec.cn/wp-content/uploads/repos/cas/29/29d03046ca9ae3574b67e376f6d1302c0549dde68da177e979dfd913b8a1eaef.svg) ![apache](https://img.shields.io/badge/license-Apache-blue.svg) [![Info](https://img.shields.io/badge/info-docs-blue)][docs-url] [![Slack](https://img.shields.io/badge/community-join%20slack-blue)](https://join.slack.com/t/loxilb/shared_invite/zt-2b3xx14wg-P7WHj5C~OEON_jviF0ghcQ) ## 什么是 loxilb loxilb 是一个基于 GoLang/eBPF 的开源云原生负载均衡器,旨在实现跨本地、公有云或混合 K8s 环境的广泛兼容性。开发 loxilb 的目的是支持在电信、移动和边缘计算中采用云原生技术。 ## Kubernetes 与 loxilb Kubernetes 定义了许多服务构造,如 cluster-ip、node-port、load-balancer、ingress 等,用于 pod 到 pod、pod 到 service 以及外部到 service 的通信。 ![LoxiLB Cover](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/photos/loxilb-cover.png) 所有这些服务均由运行在 Layer4/Layer7 的负载均衡器/代理提供。由于 Kubernetes 具有高度模块化的特性,这些服务可以由不同的软件模块提供。例如,默认使用 kube-proxy 来提供 cluster-ip 和 node-port 服务。对于 LB 和 Ingress 等某些服务,通常没有提供默认实现。 Load-balancer 类型的服务通常由公有云提供商作为托管实体提供。但对于本地和自管理的集群,只有少数几个不错的选择。即使是对于像 EKS 这样的提供商托管的 K8s,也有许多人希望将自带的 LB 引入到运行在任何地方的集群中。此外,由于涉及各种特殊协议,包括 GTP、SCTP、SRv6、SEPP 和 DTLS,电信 5G 和边缘服务引入了独特的挑战,使得无缝集成变得尤为困难。loxilb 将提供 load-balancer 类型的服务作为其主要用例。loxilb 可以根据用户需求在集群内部或集群外部运行。 默认情况下,loxilb 作为 L4 负载均衡器/服务代理运行。虽然 L4 负载均衡提供了出色的性能和功能,但在 K8s 中,为了满足各种用例,同样需要一个高性能的 L7 负载均衡器。loxilb 还以 Kubernetes Ingress 实现的形式支持 L7 负载均衡,并通过 eBPF sockmap helper 进行了增强。这也使需要同时使用 L4 和 L7 负载均衡的用户受益。 此外,loxilb 还支持: - [x] 使用 eBPF 替换 kube-proxy(支持 Kubernetes 的完整 cluster-mesh 实现) - [x] Ingress 支持 - [x] Kubernetes Gateway API - [x] 支持 HA 的 Kubernetes Egress - [ ] Kubernetes Network Policies ## 与 loxilb 结合的电信云 为了部署包含云原生功能的电信云,loxilb 可以用作增强型 SCP(服务通信代理)。SCP 是由 [3GPP](https://www.etsi.org/deliver/etsi_ts/129500_129599/129500/16.04.00_60/ts_129500v160400p.pdf) 定义的一种通信代理,面向在云原生环境中运行的电信微服务。详情请阅读此[博客](https://dev.to/nikhilmalik/5g-service-communication-proxy-with-loxilb-4242)。 ![image](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/photos/scp.svg) 电信云需要在各种接口/标准(如 N2、N4、E2(ORAN)、S6x、5GLAN、GTP 等)之间进行负载均衡和通信。每一项都有其独特的挑战,而 loxilb 旨在解决这些问题,例如: - N4 需要 PFCP 级别的会话智能 - N2 需要 NGAP 解析能力(相关博客 - [Blog-1](https://www.loxilb.io/post/ngap-load-balancing-with-loxilb), [Blog-2](https://futuredon.medium.com/5g-sctp-loadbalancer-using-loxilb-b525198a9103), [Blog-3](https://medium.com/@ben0978327139/5g-sctp-loadbalancer-using-loxilb-applying-on-free5gc-b5c05bb723f0)) - S6x 需要 Diameter/SCTP multi-homing LB 支持(相关[博客](https://www.loxilb.io/post/k8s-introducing-sctp-multihoming-functionality-with-loxilb)) - MEC 用例可能需要理解 UL-CL(相关[博客](https://futuredon.medium.com/5g-uplink-classifier-using-loxilb-7593a4d66f4c)) - 对于关键任务应用,无缝故障转移支持可能是必不可少的 - E2 可能需要将 SCTP-LB 与 OpenVPN 捆绑在一起 - 需要 SIP 支持来启用云原生 VOIP - N32 需要支持 Security Edge Protection Proxy(SEPP) ## 为什么选择 loxilb? - 与其在各种架构上的竞争对手相比,```性能```好得多 * [单节点性能](https://loxilb-io.github.io/loxilbdocs/perf-single/) * [多节点性能](https://loxilb-io.github.io/loxilbdocs/perf-multi/) * [ARM 上的性能](https://www.loxilb.io/post/running-loxilb-on-aws-graviton2-based-ec2-instance) * [关于性能的简短 Demo](https://www.youtube.com/watch?v=MJXcM0x6IeQ) - 利用 eBPF,使其具有```灵活性```和```可定制性``` - 为工作负载提供高级```服务质量```(基于每个 LB、每个 endpoint 或每个客户端) - 与```任何``` Kubernetes 发行版/CNI 协同工作 (k8s / k3s / k0s / kind / OpenShift + Calico, Flannel, Cilium, Weave, Multus 等) - 用 loxilb 替代 kube-proxy 允许```简单插入```任何已部署的 pod 网络软件 - 在 K8s 上对 ```SCTP 工作负载```(带有多宿主)提供广泛支持 - 支持 K8s 的双栈 ```NAT66, NAT64``` - K8s ```多集群```支持 *(计划中 🚧)* - 运行在```任何```云(公有云/本地)或```独立```环境中 ## loxilb 的整体特性 - L4/NAT 有状态的负载均衡器 * NAT44, NAT66, NAT64,支持 One-ARM, FullNAT, DSR 等 * 支持 TCP, UDP, SCTP(带有多宿主), QUIC, FTP, TFTP 等 - 通过 BFD 检测实现高可用性支持,适用于 hitless/maglev/cgnat 集群 - 针对云原生环境的可扩展且全面的 endpoint 存活探测 - 有状态防火墙以及 IPSEC/Wireguard 支持 - 对 [Conntrack](https://thermalcircle.de/doku.php?id=blog:linux:connection_tracking_1_modules_and_hooks)、QoS 等功能进行了优化实现 - 完全兼容 ipvs(可自动继承 ipvs 策略) - 面向策略的 L7 代理支持 - HTTP1.0, 1.1, 2.0, 3.0 ## loxilb 的组件 - 基于 GoLang 的控制平面组件 - 基于 [eBPF](https://ebpf.io/) 的可扩展且高效的数据面实现 - 集成的基于 goBGP 的路由栈 - 用 Go 语言编写的 kubernetes operator [kube-loxilb](https://github.com/loxilb-io/kube-loxilb) - 一个 kubernetes ingress [实现](https://github.com/loxilb-io/loxilb-ingress) ## 架构考量 - [了解 loxilb 模式以及如何使用 kube-loxilb 在 K8s 中进行部署](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/kube-loxilb.md) - [了解 loxilb 的高可用性](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/ha-deploy.md) ## 快速入门 #### loxilb 作为集群外 pod - [K8s : loxilb ext-mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k8s-flannel-ext.md) - [K3s : 带有默认 flannel 的 loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k3s_quick_start_flannel.md) - [K3s : 带有 calico 的 loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k3s_quick_start_calico.md) - [K3s : 带有 cilium 的 loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/quick_start_with_cilium.md) - [K0s : 带有默认 kube-router 网络的 loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k0s_quick_start.md) - [EKS : loxilb ext-mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/eks-external.md) #### loxilb 作为集群内 pod - [K8s : loxilb in-cluster mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k8s-flannel-incluster.md) - [K3s : loxilb in-cluster mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k3s_quick_start_incluster.md) - [K0s : loxilb in-cluster mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k0s_quick_start_incluster.md) - [MicroK8s : loxilb in-cluster mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/microk8s_quick_start_incluster.md) - [EKS : loxilb in-cluster mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/eks-incluster.md) - [RedHat OCP : loxilb in-cluster mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/rhocp-quickstart-incluster.md) #### loxilb 作为 service-proxy(kube-proxy 替代品) - [K3s : 带有 flannel 的 loxilb service-proxy](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/service-proxy-flannel.md) - [K3s : 带有 calico 的 loxilb service-proxy](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/service-proxy-calico.md) #### loxilb 作为 Kubernetes Ingress - [K3s: 如何运行 loxilb-ingress](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/loxilb-ingress.md) #### loxilb 在 standalone 模式下 - [以 standalone 模式运行 loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/standalone.md) ## 进阶指南 - [操作指南 : 使用 loxilb 的 Service-group zones](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/service-zones.md) - [操作指南 : 访问 K8s 外部的 endpoint](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/ext-ep.md) - [操作指南 : 使用 loxilb 部署多服务器 K3s HA](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k3s-multi-master.md) - [操作指南 : 在 AWS 中部署带有 multi-AZ HA 支持的 loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/aws-multi-az.md) - [操作指南 : 部署带有多云 HA 支持的 loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/multi-cloud-ha.md) - [操作指南 : 将 loxilb 与 ingress-nginx 配合使用](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/loxilb-nginx-ingress.md) - [操作指南 : 使用辅助网络在集群内运行 loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/loxilb-incluster-multus.md) - [操作指南 : 使用 loxilb 进行 Kubernetes service sharding](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/service-sharding.md) - [操作指南 : 使用 Kubernetes Gateway API 进行 loxilb L4/L7 负载均衡](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/gw-api.md) ## 知识库 - [什么是 eBPF](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/ebpf.md) - [什么是 k8s service - load-balancer](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/lb.md) - [架构简介](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/arch.md) - [代码组织](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/code.md) - [loxilb 的 eBPF 内部机制](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/loxilbebpf.md) - [什么是 loxilb NAT 模式](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/nat.md) - [loxilb 负载均衡算法](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/lb-algo.md) - [构建/运行的手动步骤](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/run.md) - [调试 loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/debugging.md) - [loxicmd 命令行工具使用方法](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/cmd.md) - [loxicmd 开发者指南](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/cmd-dev.md) - [loxilb API 开发者指南](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/api-dev.md) - [loxilb API 的 HTTPS 指南](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/https.md) - [API 参考 - loxilb web-Api](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/api.md) - [性能报告](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/perf.md) - [开发路线图](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/roadmap.md) - [贡献](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/contribute.md) - [系统要求](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/requirements.md) - [常见问题解答 - FAQs](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/faq.md) - [博客](https://www.loxilb.io/blog) - [演示视频](https://www.youtube.com/@loxilb697) ## CI/CD 工作流状态 | Features(Ubuntu20.04) | Features(Ubuntu22.04)| Features(Ubuntu24.04)| Features(RedHat9)| |:----------|:-------------|:-------------|:-------------| | [![build workflow](https://static.pigsec.cn/wp-content/uploads/repos/cas/4a/4a137862ce668fa98a57eb054ab61521069d0b71a5b91bf83f7862ffd93eb934.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/docker-image.yml) | [![Docker-Multi-Arch](https://static.pigsec.cn/wp-content/uploads/repos/cas/f7/f7959b19935f121396005b5f4a307d680843aa56a383558337e31e3b761b73e2.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/docker-multiarch.yml) | [![Docker-Multi-Arch](https://static.pigsec.cn/wp-content/uploads/repos/cas/f7/f7959b19935f121396005b5f4a307d680843aa56a383558337e31e3b761b73e2.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/docker-multiarch.yml) | [![Docker-Multi-Arch](https://static.pigsec.cn/wp-content/uploads/repos/cas/f7/f7959b19935f121396005b5f4a307d680843aa56a383558337e31e3b761b73e2.svg)](https://github.com/loxilb-io/loxilb/workflows/docker-multiarch.yml) | | [![simple workflow](https://static.pigsec.cn/wp-content/uploads/repos/cas/29/29d03046ca9ae3574b67e376f6d1302c0549dde68da177e979dfd913b8a1eaef.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/basic-sanity.yml) | [![Sanity-CI-Ubuntu-22](https://static.pigsec.cn/wp-content/uploads/repos/cas/ce/ce5895304553e0f2d417c97bd9468b2eb0aab3252ae623a36f1fba17f6176d6a.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/basic-sanity-ubuntu-22.yml) | [![Sanity-CI-Ubuntu-24](https://static.pigsec.cn/wp-content/uploads/repos/cas/75/7554c3e8c3f896533e6152a4898c389606cc7e0f23264e201303d558224515c0.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/basic-sanity-ubuntu-24.yml) | [![Sanity-CI-RH9](https://static.pigsec.cn/wp-content/uploads/repos/cas/42/424eb1a3f5446766fa1c71d86ae0bad9ef0c7c097f5758c844c425d75be7aff0.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/basic-sanity-rh9.yml) | | [![tcp-lb-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/f2/f2a74a99a6f2ba1cddb5a871464129a98f494d36d1d0f9ce836512daee7f8be3.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/tcp-sanity.yml) | [![tcp-lb-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/0d/0d2134ba5a672be78f0f33ca4217a90ef41113cfb0c594d4247ace14345b0c8f.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/tcp-sanity-ubuntu-22.yml) | [![tcp-lb-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/d4/d4002aa8f884b4e7a57286940282be555ef0794f2440f5b3be53062c6d465221.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/tcp-sanity-ubuntu-24.yml) | [![TCP-LB-Sanity-CI-RH9](https://static.pigsec.cn/wp-content/uploads/repos/cas/52/523d1942f7be2b559a4d2d083989b7d4125e3faab005cfb25430730d4fe1ffa0.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/tcp-sanity-rh9.yml) | | [![udp-lb-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/f0/f05fbeb91531663c22fc37be5d67cf6d64a47ea22eb73ea14b0cecc022371aa2.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity.yml) | [![udp-lb-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/f4/f4d7b5105ad18087fab38f6b2361d12b0110688556bf74aadc3d50565514b56b.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity-ubuntu-22.yml) | [![udp-lb-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/40/40c0f0c61542bb9df4c0b708a67fcde011527c05c366144a51e29a1b7fd92805.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity-ubuntu-24.yml) | [![UDP-LB-Sanity-CI-RH9](https://static.pigsec.cn/wp-content/uploads/repos/cas/c7/c7b05708c533eb10341036a8c9ed24507b7311398069e810750b9c8d50d8e30d.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity-rh9.yml) | | [![sctp-lb-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/3f/3fbddeb3f4fcf706f02ea42ca8234f7de868934f2c924af0c0759618f282e77e.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/sctp-sanity.yml) | [![SCTP-LB-Sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/83/83ecca1c9968e544267bd7154e59c8f6fd24583cbb4c3443c7c6dbe1e2bcccd1.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/sctp-sanity-ubuntu-22.yml) | [![SCTP-LB-Sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/72/7283494d49e7e654a8537961417076d54a7fdf1352b5a17debc21d95940d697c.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/sctp-sanity-ubuntu-24.yml) |[![SCTP-LB-Sanity-CI-RH9](https://static.pigsec.cn/wp-content/uploads/repos/cas/be/be234d681fb0087f258a4ad56371d155f80d43c0313b737c32db24a24f076bb3.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/sctp-sanity-rh9.yml) | | [![extlb workflow](https://static.pigsec.cn/wp-content/uploads/repos/cas/34/349b07fc1fac351d6a439041e760c41f98b7c6e5b716c3dc83cc8c17b1da4ccd.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/advanced-lb-sanity.yml)| [![extlb workflow](https://static.pigsec.cn/wp-content/uploads/repos/cas/55/552baf6ff6f5e74029ee84added83955832762f8a95038d4a9a3dd244531242c.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/advanced-lb-sanity-ubuntu-22.yml) | [![extlb workflow](https://static.pigsec.cn/wp-content/uploads/repos/cas/3c/3ccbad01d92d7823aa3563bf24b0c4b560b36415e7e43aa12213157490f38123.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/advanced-lb-sanity-ubuntu-24.yml) | [![Adv-LB-Sanity-CI-RH9](https://static.pigsec.cn/wp-content/uploads/repos/cas/33/334e98fb870c154c4aa8aa3cc7978a175d435e60f5e0e724f088455cb3080745.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/advanced-lb-sanity-rh9.yml)| | [![nat66-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/0c/0cf184e50e119e3f48596d4cfceeb628aabdd76728cf997822dd9eafdb5476b7.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/nat66-sanity.yml) | [![nat66-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/1b/1b0263b0ffbf4ed58756f75183f023c771384718ff759b78c8a8bab5dceb8d70.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/nat66-sanity-ubuntu-22.yml) | [![nat66-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/dc/dc636ea4545c3a654b79ce892a5c5e19121bd773c8141d13496ab56ae9120526.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/nat66-sanity-ubuntu-24.yml) | [![NAT66-LB-Sanity-CI-RH9](https://static.pigsec.cn/wp-content/uploads/repos/cas/87/876313a915357fbeb917c6bf0337fb1db1ab7c6db71ad6d2ee1779202749d607.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/nat66-sanity-rh9.yml) | | [![ipsec-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/f0/f0b7ad16dc4eead0c685b7e60061c388cafe68c3cda09c38bf6af654a469e942.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/ipsec-sanity.yml) | [![ipsec-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/69/69638cc31294a7a126b0650aa911199104ec6d557cbe18bad655c698b5008e7a.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/ipsec-sanity-ubuntu-22.yml) | [![ipsec-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/41/414cc4211c9e179357d814adaf577ec50f3911b7d7ab31323b8fad2a51bce5e8.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/ipsec-sanity-ubuntu-24.yml) | [![IPsec-Sanity-CI-RH9](https://static.pigsec.cn/wp-content/uploads/repos/cas/b2/b26d1097ffbdbefc084587609b9b73251e23c16f3c3dfb594bfba8bc914c6ec7.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/ipsec-sanity-rh9.yml) | | [![liveness-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/9e/9e0b20154c2fd9c9b1954a182e0b07df4147ecd70d0a677b526b6786e7b7ae8b.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/liveness-sanity.yml) | [![liveness-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/75/75691cb9a85ddb5b51088d70c9179a35ddb993a378d26571572e42bd6900154e.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/liveness-sanity-ubuntu-22.yml) | [![liveness-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/5e/5e472278cdae6b98f596a2cbacfb9e74e5a7af2298813f4611b5f4e5f397b756.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/liveness-sanity-ubuntu-24.yml) | [![liveness-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/d8/d8ef1a64463b7984ba198e9d33d7c6eaef665cb6ba86bf0d08f22d5082219490.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/liveness-sanity-rh9.yml) | |![scale-sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/23/23e651ea92fbeece3c873eae0774bfbdf4c2bde00696d23b48df5447fc52a0ad.svg) | [![Scale-Sanity-CI-Ubuntu-22](https://static.pigsec.cn/wp-content/uploads/repos/cas/0f/0f12771d596e8a5a9168b45f05781afe08ba6caf0ca89e8bb6d73d1f9c8e8b43.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/scale-sanity-ubuntu-22.yml) | [![Scale-Sanity-CI-Ubuntu-24](https://static.pigsec.cn/wp-content/uploads/repos/cas/63/63b5779f5229bc9a998ff77de3d84992f78649df990b37b933cabd42343e5445.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/scale-sanity-ubuntu-24.yml) | | |[![perf-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/30/30e1de2c35f841d8693c1dc269dc99212154c0546e6268022ce46e6a7199b91b.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/perf.yml) | [![perf-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/30/30e1de2c35f841d8693c1dc269dc99212154c0546e6268022ce46e6a7199b91b.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/perf.yml) |[![perf-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/30/30e1de2c35f841d8693c1dc269dc99212154c0546e6268022ce46e6a7199b91b.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/perf.yml) | | | K8s Base Tests | K8s Adv Tests | EKS Test | |:-------------|:-------------|:-------------| |[![K3s-Base-Sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ee/ee7b514d44b79f8d978d29fa50b41b2cc07de13e44e6551a8c168eaf2d88c8e1.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-base-sanity.yml) | [![K8s-Calico-Cluster-IPVS-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ba/ba67ad882d5ef97b521b350ec324fb7ee648e78df44118743c75449e901cf0f1.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k8s-calico-ipvs.yml) | [![EKS](https://static.pigsec.cn/wp-content/uploads/repos/cas/ca/ca22ac5c69fe8609df7139dbff4cfb038d83622e70e89c3e227e8216a7c37203.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/eks.yaml)| | [![k3s-flannel-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/90/90cb18b6f3df3fa21f7639e134a2ddd396204c64b57689ed6ab823060fd6f3fb.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-flannel.yml) | [![K8s-Calico-Cluster-IPVS2-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/db/dba2ce3688088f4e170a0f2db1ae1ceb5705b4ffa51b967523281371fb585540.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k8s-calico-ipvs2.yml) | | | [![k3s-flannel-ubuntu22-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/c9/c9899ba1700e36cb70a810edcaf118c18091965c648ecd45ff4b4f09fe10057e.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-flannel-ubuntu-22.yml) | [![K8s-Calico-Cluster-IPVS3-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/bf/bf69734a5d36ad62244f229636d2c4a5c770cb16661e756e76bccc336a23776e.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k8s-calico-ipvs3.yml) | | |[![k3s-flannel-cluster-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/b5/b5243bc0a7cfd034b10b60165baeda40a09b2cdaab55def9606ed9426b791d30.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-flannel-cluster.yml) | [![K8s-Calico-Cluster-IPVS3-HA-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/b4/b464cb701bbdde39c5fd51fb0fa205755a064db0f314c61cd5790c0b06f71410.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k8s-calico-ipvs3-ha.yml) | | | [![k3s-calico-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/47/479da0c7ff6cd034d6041e3925fd71b4f4da9e5605daa57c74b89668fdd2eff2.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-calico.yml) | [![k3s-flannel-incluster-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/31/3134f1e3ff6f578fde8324c706fc1cfb525278f1da80d535a4b0de3270e750e2.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-flannel-incluster.yml) | | | [![k3s-cilium-cluster-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/be/be01c8fc2824245713cabfc5255f57863374ca608eb079ea8b0600296e6ad2e9.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-cilium-cluster.yml) | [![k3s-flannel-incluster-l2-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ed/edc87fffe34540723ee7dd76a1b931cc9ad610ff664d8af976e1b06ba6af4e21.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-flannel-incluster-l2.yml) | | | [![k3s-sctpmh-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/cd/cd9c94ef6dbefe7c55b55b3205d2ccf943ffbae5d97d9d1db78c5e11f67ee787.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-sctpmh.yml) | [![K3s-Dual-Stack-Sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/5d/5d14909c0aeaeeeade82eddfa5221dc8a25bd45ead0a8453a840d4d06bc5a1f2.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/dual-stack.yml) | | | [![k3s-sctpmh-ubuntu22-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/28/28c5b0012c1bd06c682414020c3778a83d947a04d49066f7921a40488f6985e6.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-sctpmh-ubuntu22.yml) | [![K3s-Loxi-GWAPI-Sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/d9/d936bce77e6151515f6ce972088911b800abe3d37859595f2321b2239b1c670e.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-loxi-gwapi.yml) | | | [![k3s-sctpmh-2-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/5b/5bc0003f053eda8a939f05d5439284e6c633c9145ff58a22d6109a041c1557e6.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-sctpmh-2.yml) | [![K3s-Loxi-Ingress-Sanity-CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/96/961e1d03b9704d7286d69ad0c5c17cb678356d79ad314eabdc9ea5bda1f6c279.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/k3s-loxi-ingress.yml) | | ## 📚 请查看 loxilb [官方网站](https://www.loxilb.io) 获取更详细的信息。
标签:Docker镜像, EVTX分析, Go语言, 子域名突变, 日志审计, 程序破解, 网络, 请求拦截, 负载均衡