绕过conntrack,使用eBPF增强 IPVS优化K8s网络性能access • Major modes • Iptables • IPVS Iptables mode • How it works • DNAT at PREROUTING chain • SNAT at POSTROUTING chain • Pros • Iptables is widely adopted in popular Linux distributions • Cons difficult to debug IPVS mode • Services are organized in hash table • IPVS DNAT • conntrack/iptables SNAT • Pros • O(1) time complexity in control/data plane • Stably runs for two decades • Support rich ingress/egress packets IPVS bypass conntrack • Why IPVS depends on conntrack? • Iptables/conntrack SNAT • How IPVS bypasses conntrack? • Ingress • Move IPVS Netfilter hook from local-in to PREROUTING0 码力 | 24 页 | 1.90 MB | 1 年前3
腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明NodePort 提供集群外部的访问 iptables mode • 在netfilter pre-routing阶段做DNAT • 在netfilter post-routing阶段做SNAT • 每个service 添加一条或多条rules。使用数组管理rules。 • 仅支持随机的调度算法 • kube-proxy代码实现比较简单 • iptables 在linux iptables rule 不容易调试 IPVS mode • 使用hashtable 管理service • IPVS 仅仅提供了DNAT,还需要借用 iptables+conntrack 做SNAT • 控制面和数据面算法复杂度都是O(1) • 经历了二十多年的运行,比较稳定成熟 • 支持多种调度算法 优势 IPVS mode 不足之处 • 没有绕过conntrack,由此带来了性能开销 编译成eBPF中间代码 • 注入内核 • 挂载到network traffic control • 报文激发eBPF代码 技术创新点一 • IPVS 对conntrack的功能依赖 • Iptables SNAT • 具体如何绕过conntrack? • 进报文 • 将处理请求的钩子从nf local-in 前移到nf pre-routing • skb的路由指针是NULL • 处理分片 •0 码力 | 27 页 | 1.19 MB | 9 月前3
运维上海2017-Kubernetes 在大规模场景下的service性能优化实战 - 杜军��� Ø DR�Tunneling�����������IPVS Director Ø NAT���������������IPVS Director - �������� DNAT���SNAT DR Tunneling NAT IPVS����� • �VVIP ü dummy�G # ip link add dev dummy0 type dummy # ip addr add @Huawei���1.9�beta • ��ClusterIP�NodePort�External IP�Load Balancer�OnlyLocalNode… • ��iptables�SNAT����� Kubernetes�Service�� Iptables��Service���� ��iptables������� IPVS��Service���� Iptables0 码力 | 38 页 | 3.39 MB | 1 年前3
基于Kubernetes构建容器云平台的实践
- UCloud优刻得实验室负责⼈ 叶理灯Bgpd 负责将 Service IPv6 地址段通过 BGP 路路由协议宣告给接⼊入交换机 P o d 返 回 的 包 , 会 先 回 给 S e r v i c e Gateway,由于做了了SNAT,基于连接 追踪(conntrack),再返回给请求的 客户端。 每个接⼊入交换机下,选择两台节点作为Service Gateway,作为集群外部访问Service的⽹网关 Kube-proxy负责将发往 Kube-proxy负责将发往 Service IP 的流量量转 发到对应的Pod。启动时将 kube-proxy的 masquerade-all 选项打开,这样 kube- proxy 转发给Pod的包会实现源地址转换 (SNAT) Service Gateway包括 bgpd 和 kube-proxy两部分。 Node Pod Pod Pod BGPD Kube-proxy masquerade-all=true0 码力 | 30 页 | 3.52 MB | 1 年前3
Amazon Elastic Kubernetes Service (EKS) 初探秘– 100.64.0.0/10 客户网 关 公司数 据中心 On-premises 10.1.0.0/16 VPN / DX Pod Outbound Traffic SNAT EKS worker node Primary elastic network interface Pod Secondary elastic network interface0 码力 | 39 页 | 1.83 MB | 1 年前3
共 5 条
- 1













