当前位置: 首页 > news >正文

网站显示系统建设中网站二级域名打不开

网站显示系统建设中,网站二级域名打不开,wordpress 去除侧边栏,城乡建设部网站首页系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能。但是通过对 Cilium 不同模式的切换/功能的启用,可以进一步提升 Cilium 的网络性能。具体调优项包括不限于: 启用本地路由 (Native Rou…

系列文章

  • Cilium 系列文章

前言

将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能。但是通过对 Cilium 不同模式的切换/功能的启用,可以进一步提升 Cilium 的网络性能。具体调优项包括不限于:

  • 启用本地路由 (Native Routing)
  • 完全替换 KubeProxy
  • IP 地址伪装 (Masquerading) 切换为基于 eBPF 的模式
  • Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行
  • 绕过 iptables 连接跟踪 (Bypass iptables Connection Tracking)
  • 主机路由 (Host Routing) 切换为基于 BPF 的模式 (需要 Linux Kernel >= 5.10)
  • 启用 IPv6 BIG TCP (需要 Linux Kernel >= 5.19)
  • 禁用 Hubble(但是不建议,可观察性比一点点的性能提升更重要)
  • 修改 MTU 为巨型帧 (jumbo frames) (需要网络条件允许)
  • 启用带宽管理器 (Bandwidth Manager) (需要 Kernel >= 5.1)
  • 启用 Pod 的 BBR 拥塞控制 (需要 Kernel >= 5.18)
  • 启用 XDP 加速 (需要 支持本地 XDP 驱动程序)
  • (高级用户可选)调整 eBPF Map Size
  • Linux Kernel 优化和升级
    • CONFIG_PREEMPT_NONE=y
  • 其他:
    • tuned network-* profiles, 如:tuned-adm profile network-latencynetwork-throughput
    • CPU 调为性能模式
    • 停止 irqbalance,将网卡中断引脚指向特定 CPU

在网络/网卡设备/OS 等条件满足的情况下,我们尽可能多地启用这些调优选项,相关优化项会在后续文章逐一更新。敬请期待。

今天我们来将 Cilium 的 NodePort 实现从 SNAT 改为 DSR 以提升网络性能。

测试环境

  • Cilium 1.13.4
  • K3s v1.26.6+k3s1
  • OS
    • 3 台 Ubuntu 23.04 VM, Kernel 6.2, x86

Direct Server Return (DSR)

默认情况下,Cilium 的 eBPF NodePort 实现以 SNAT 模式运行。也就是说,当节点外部流量到达时,如果节点确定负载平衡器、NodePort 或具有外部 IP 的服务的后端位于远程节点,那么节点就会通过执行 SNAT 将请求重定向到代表自己的远程后端。这不需要额外更改 MTU。代价是,来自后端的回复需要额外跳回节点,在那里执行反向 SNAT 转换,然后再将数据包直接返回给外部客户端。

示例如下,Cilium 的 eBPF NodePort 实现以 SNAT 模式运行:

$ kubectl -n kube-system exec ds/cilium -- cilium status --verbose
...
KubeProxyReplacement Details:Status:                 StrictSocket LB:              EnabledSocket LB Tracing:      EnabledSocket LB Coverage:     FullDevices:                eth0 192.168.2.3 (Direct Routing)Mode:                   SNAT

SNAT 模式下,NodePort 后端 pod 在其他节点入向流量:

NodePort 后端 pod 在其他节点入向流量

出向流量:

NodePort 后端 pod 在其他节点出向流量

该设置可通过 loadBalancer.mode Helm 选项更改为 dsr,以便让 Cilium 的 eBPF NodePort 实现在 DSR 模式下运行。在这种模式下,后端直接回复外部客户端,而不需要额外的跳转,也就是说,后端通过使用服务 IP/port 作为源来回复。DSR 目前要求 Cilium 以本地路由模式部署,也就是说,它不能在任何一种隧道模式下工作。

DSR 模式流量如下:

DSR Mode

DSR 模式的另一个优点是保留了客户端的源 IP,因此可以在后端节点对其进行策略匹配。而在 SNAT 模式下则无法做到这一点。鉴于一个特定的后端可被多个服务使用,后端需要知道它们需要回复的服务 IP/端口。

请注意,由于 Cilium 特定的 IP 选项可能会被底层网络结构丢弃,因此 DSR 模式在某些公共云提供商环境中可能无法使用。如果后端位于与处理给定 NodePort 请求的节点相距较远的节点上,在出现服务连接问题时,首先要检查 NodePort 请求是否实际到达了包含后端的节点。如果不是,则建议切换回默认 SNAT 模式作为一种解决方法。

此外,在某些实施源/目标 IP 地址检查的公共云提供商环境中(如 AWS),必须禁用检查才能使用 DSR 模式。

启用 DSR 实施步骤

在启用仅 DSR 模式的无 kube proxy 环境中,上述 Helm 示例配置如下:

helm upgrade cilium cilium/cilium --version 1.13.4 \--namespace kube-system \--reuse-values \--set loadBalancer.mode=dsr

🐾Warning

前提是:

  1. 启用本地路由
  2. Cilium 完全替换 KubeProxy

验证

$ kubectl -n kube-system exec ds/cilium -- cilium status --verbose|grep DSRMode:                   DSR

性能提升

性能提升可以查看官方的 benchmark:

NodePort Latency Performance with DSR

👍️👍️👍️

总结

本文我们将 Cilium 的 NodePort 实现从 SNAT 模式切换为 DSR 的模式。相比 SNAT 模式,DSR 在"NodePort 后端 pod 在其他节点"时优势明显:

  • 网络少了至少一跳
  • 可以保留客户端的源 IP

但是在公有云环境上需要注意启用的条件。

至此,性能调优已完成:

  • ✔️ 启用本地路由 (Native Routing)
  • ✔️ 完全替换 KubeProxy
  • ✔️ IP 地址伪装 (Masquerading) 切换为基于 eBPF 的模式
  • ✔️ Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行
  • 绕过 iptables 连接跟踪 (Bypass iptables Connection Tracking)
  • 主机路由 (Host Routing) 切换为基于 BPF 的模式 (需要 Linux Kernel >= 5.10)
  • 启用 IPv6 BIG TCP (需要 Linux Kernel >= 5.19)
  • 修改 MTU 为巨型帧 (jumbo frames) (需要网络条件允许)
  • 启用带宽管理器 (Bandwidth Manager) (需要 Kernel >= 5.1)
  • 启用 Pod 的 BBR 拥塞控制 (需要 Kernel >= 5.18)
  • 启用 XDP 加速 (需要 支持本地 XDP 驱动程序)

📚️参考文档

  • DSR Mode - Kubernetes Without kube-proxy — Cilium 1.13.4 documentation
  • Cilium 1.10: WireGuard, BGP Support, Egress IP Gateway, New Cilium CLI, XDP Load Balancer, Alibaba Cloud Integration and more

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

http://www.yayakq.cn/news/631930/

相关文章:

  • 金坛区建设工程质量监督网站做网站用什么后台
  • dw可以做有后台的网站么?专业的医疗网站建设
  • php网站开发结构qq刷赞网站怎么做
  • 权威的企业网站建设wordpress文章刷新
  • 你的安全设置不允许网站 上的视频直播下载
  • 关于网站建设的广告语网站规划书包含哪些内容
  • ai做网站步骤做网站的时候用的什么框架
  • 给房地产公司做网站的公司行业关键词查询
  • 中国产品设计网seo快速推广
  • 兼职做设计什么网站好挂机赚一小时75元
  • 网站访问量jswordpress页面怎么添加
  • 网站开发工具 晴天娃娃做个人网站要注意什么
  • 佛山专业的免费网站优化无锡低价网站排名
  • 常州做网站的 武进青岛网景互联网站建设公司
  • 如何做自己的网站后台我有产品想找平台卖
  • 全国网站设计排名电脑软件下载网站
  • 红色系列的网站做质量计量的网站有哪些
  • 网站用的字体wordpress没有水印
  • 学做ps的网站衡水注册公司
  • 长沙智能建站模板智慧团建登录入口官网手机版
  • 网站如何做seo推广方案广西网站建设电话
  • 做p2p网站案例万江区做网站
  • 做电商网站前端用什么框架梵克雅宝为什么那么贵
  • 如何创建一个自己公司网站聊城企业门户网站建设
  • 大厂县网站建设或SEO优化综合商城网站建设
  • 潍坊做网站公司鹤山做网站公司
  • 网站设计案例做装修效果图的网站
  • 手机版的网站用什么开发建筑工程网络图计算方法
  • 怎样网站设计论坛创建
  • 建设大型视频网站需要的资金量网站培训班