Kubernetes 的 Service 机制 Iptables 实现 Service 负载均衡 目录 CONTENTS 当前 Iptables 实现存在的问题 IPVS 实现 Service 负载均衡 Iptables VS. IPVS IPSet 与 IPVS 协同

Similar documents
MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

文件1

Microsoft Word - XN30Chap3.doc

Simulator By SunLingxi 2003

untitled

2

实践课堂成都站-0609.key

IP505SM_manual_cn.doc

BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli

untitled

FortiADC SLB Virtual Server L4 方式部署详解 版本 1.0 时间支持的版本作者状态反馈 2015 年 10 月 FortiADC v4.3.x 刘康明已审核

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

自由軟體教學平台

使用 LVS 集群架设高可扩展的网络服务 章文嵩 LVS 项目 哲思沙龙 - 哲思自由软件社区 2008 年 6 月期总第 6 期 Page 1

<BFC6D1A7B7F0D1A7D0D2B8A3C8CBC9FA2E696E6464>

Microsoft Word - 文化2016(2)修改.doc

active phisical rp address: backup phisical rp address: 截取部分 TOPO 图说明到 不通的问题 : internet internet tengige 0/0/0/0 tengige

ebook140-8

红土创新定增业务及红石31号产品介绍

A9RBC8B.tmp

ebook140-9

计算机网络概论

Dell EMC Data Domain DDOS 5.5 Data Domain Data Domain Data Domain : Data Domain Boost (DDBoost) Dell EMC DDBoost Data Domain DDBoost Source De-Dup Bac

常 见 问 题 SLB 产 品 和 业 务 限 制 SLB 产 品 限 制 SLB 产 品 和 业 务 限 制 限 制 项 普 通 用 户 限 制 描 述 例 外 申 请 方 式 ( 例 外 上 限 ) 创 建 SLB 实 例 的 财 务 限 制 账 户 余 额 大 于 等 于 100 元 现 金

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南




ù `


10 1



ù





1 1





<4D F736F F D C2D6CCA5BBE1BFAF2D2D2D2DD7EED6D5B0E62D2DC4BFC2BC2E646F63>



`



`

穨九十年普通版.PDF






Microsoft Word - 新疆银行业金融机构小微企业金融服务产品汇编.doc

<4D F736F F D DD7A1B7BFB9ABBBFDBDF0D0C5CFA2BBAFBDA8C9E8B5BCD4F25FB1A8C5FAB8E55F2E646F6378>

ebook67-9

AL-M200 Series

ebook140-11

PowerPoint Presentation

.. (,, ),(): ( (,,, (, (,,, (), ( ): (, ), ( ): (,,, (,,, (,,, ),( ): (,,, (, (,,, (,, (, ),(): ~ (, ~ (,, ~ (, ~ (,,, ), ( ), ( ): ( (,, ~ (,, ), ~ (

專 用 或 主 要 用 於 第 8525 至 8528 節 所 屬 器 具 之 零 件 用 於 衣 服 靴 鞋 帳 蓬 手 提 包 旅 行 用 品 或 其 他 已 製 作 品 之 卑 金 屬 搭 鈕 帶 搭 鈕 之 框 架 帶 扣 帶 扣 搭 鈕 眼 環 眼 及 其

C3_ppt.PDF

/3/15 1, linux. linux,,. : 1.NAT ; 2. (load balance, virtual server);; 3. ; 4. ; 5. 6.VPN; 7. ; 8. ; 9.. (,

中国药师 年第 卷第 期 C P m V N 左金丸源自元代 丹溪心法 的火方 由黄连和 型在线脱气机 S L A型自动进样器 CTO A型 吴茱萸两味药按照 的比例组成 近年来的现 柱温箱 日本 S m 公司 BPD型电子天平 代药理学研究表明 左金丸具有调节中枢 抑杀幽门 德国赛多利斯集团 BR



QL1880new2.PDF

Ph m V N 中国药师 年第 卷第 期 Ch 学基础首先是开放性药物可直接经口 鼻给予 其次是应 连整个产品设计紧凑携带使用方便此外减速网也被认为 答性它富含的感受器和药物受体能对体内外刺激作出应答 是可用于降低药物微粒速度从而减少其惯性嵌顿的一种结 反射从而对调节气道的张力有重要作用 第三是吸

工程硕士信息通信网实验讲义.doc

期 李 海 青 等 : 生 物 安 全 性 白 藜 芦 醇 合 成 酶 表 达 载 体 的 构 建 及 水 稻 遗 传 转 化 子 植 物 中 作 为 植 物 处 于 恶 劣 环 境 下 或 遭 到 病 原 体 侵 害 时, 植 物 自 身 分 泌 的 一 种 可 抵 御 病 菌 感 染 的 抗 菌

小敏的PPT私家菜谱

¶C¶L§§¬_™¨ A.PDF

ebook48-8

中国人民财产保险股份有限公司

FortiADC SLB Virtual Server L7 方式部署介绍 版本 1.0 时间支持的版本作者状态反馈 2015 年 10 月 FortiADC v4.3.x 刘康明已审核


1

2013年度西藏自治区教育厅

實用文格式大全.doc

个 小 小 的 乡 下 人 木 匠 的 儿 子, 竟 然 有 这 么 大 的 力 量 其 实 就 是 这 点, 祂 活 出 来 的 那 种 爱, 是 世 界 上 没 有 的 祂 活 出 来 的 爱 是 世 界 上 的 人 都 需 要 的, 但 却 是 人 人 在 这 个 世 界 上 都 得 不 到

薛 秦 高 继 宁 宋 明 锁 文 洪 梁 瑞 敏 贾 跃 进 内 蒙 古 自 治 区 (3 人 ) 琪 格 其 图 米 子 良 赵 震 生 辽 宁 省 (8 人 ) 田 素 琴 白 凤 鸣 肖 瑞 崇 黄 恩 申 白 长 川 杨 世 勇 李 敬 林 王 秀 云 吉 林 省 (5 人 ) 赵 继 福

D E 答 案 :C 3. 工 作 站 A 配 置 的 IP 地 址 为 /28. 工 作 站 B 配 置 的 IP 地 址 为 /28. 两 个 工 作 站 之 间 有 直 通 线 连 接, 两 台

ebook66-15

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO

更 没 有 高 深 的 思 想, 甚 至 说 不 出 一 点 儿 高 级 的 俏 皮 话 他 们 普 遍 认 为, 生 活 中 的 我 和 电 视 里 的 那 个 人 基 本 上 还 算 表 里 如 一, 但 相 比 之 下 少 了 很 多 趣 味 记 得 有 一 个 女 记 者 采 访 我, 半

此 外, 晚 上 可 以 在 海 滩 东 边 的 剧 场 看 印 象 海 南 岛 的 实 景 演 出 1 可 乘 兴 龙 观 光 巴 士 和 共 速 达 巴 士 游 1 2 路 抵 达, 途 经 白 龙 路 海 府 路 滨 海 大 道 ;2 可 乘 坐 路 公 交 车 到 达

21 贵 省 黔 东 南 贵 中 共 天 柱 县 委 党 奥 鹏 学 习 中 贵 省 黔 东 南 天 柱 县 凤 城 镇 环 城 中 共 天 柱 县 委 党 心 [23] 东 路 14 号 贵 省 黔 东 南 贵 省 榕 江 县 古 镇 古 中 路 附 一

晨 星 评 论 及 公 司 信 息 摘 要 : 银 河 主 题 股 票 基 金 成 立 于 2012 年 9 月, 属 于 晨 星 股 票 型 基 金, 成 立 以 来 业 绩 良 好, 业 绩 波 动 相 对 较 大, 截 至 今 年 7 月 31 日, 该 基 金 今 年 以 来 基 金 净 值

年 度 总 结 齐 心 协 力 地 想 要 做 好 事 情, 还 有 什 么 原 因 可 以 解 释 这 支 连 萍 水 相 逢 都 算 不 上 的 团 队 呢? 又 是 这 样 一 支 团 队, 可 以 说 是 藏 龙 卧 虎, 且 互 相 扶 携, 让 人 信 心 百 倍 我 在 此 衷 心 感

Microsoft Word - 選擇_無解答2_.doc

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

A9RF716.tmp

FreeRouter V2 完全手册

Microsoft Word - 1HF12序.doc

Microsoft Word - 讀報看科普─人體篇_橫_.doc

Microsoft Word - 2B802內文.doc

鍟嗗搧瑙傚療鈥㈤挗鏉

Transcription:

Kubernetes Service 在大规模场景下的优化实战 杜军 (Github: @m1093782566) 华为云高级工程师 - PaaS 开源组 Kubernetes upstream, feature maintainer

Kubernetes 的 Service 机制 Iptables 实现 Service 负载均衡 目录 CONTENTS 当前 Iptables 实现存在的问题 IPVS 实现 Service 负载均衡 Iptables VS. IPVS IPSet 与 IPVS 协同

- 多个后端实例, 如何做到负载均衡? - 如何保持会话亲和性? - 容器迁移,IP 发生变化如何访问? - 健康检查怎么做? - 怎么通过域名访问? Kubernetes 的 Service 但, 简单的生活总是暂时的 :

Kubernetes Service 与 Endpoints

Service 与 Endpoints 定义

Service 内部逻辑

Kubernetes 的 Service 机制 Iptables 实现 Service 负载均衡 目录 CONTENTS 当前 Iptables 实现存在的问题 IPVS 实现 Service 负载均衡 Iptables VS. IPVS IPSet 与 IPVS 协同

Iptables 是什么? 用户空间应用程序, 通过配置 Netfilter 规则表 ( Xtables ) 来构建 linux 内核防火墙

网络包通过 Netfilter 全过程

Iptables 实现流量转发与负载均衡 Iptables 如何做流量转发? DNAT 实现 IP 地址和端口映射 iptables -t nat -A PREROUTING -d 1.2.3.4/32 -- dport 80 -j DNAT --to-destination 10.20.30.40:8080 Iptables 如何做负载均衡? statistic 模块为每个后端设置权重 iptables -t nat -A PREROUTING -d 1.2.3.4 --dport 80 -m statistic --mode random --probability.25 -j DNAT --to-destination 10.20.30.40:8080 Iptables 如何做会话保持? recent 模块设置会话保持时间 iptables -t nat A FOO -m recent --rcheck -- seconds 3600 --reap -- name BAR -j BAR

Iptables 在 Kubernetes 的应用举例 VIP:Port -> PREROUTING(OUTPUT) -> KUBE-SERVICES -> KUBE-SVC-XXX -> KUBE-SEP-XXX -> RIP:Port 1 1 2 3 4 2 3 4

Kubernetes 的 Service 机制 Iptables 实现 Service 负载均衡 目录 CONTENTS 当前 Iptables 实现存在的问题 IPVS 实现 Service 负载均衡 Iptables VS. IPVS IPSet 与 IPVS 协同

Iptables 做负载均衡的问题 规则线性匹配时延 规则更新时延 可扩展性 可用性 KUBE- SERVICES 链挂了一长串 KUBE- SVC-* 链 ; 访问每个 service, 要遍历每条链直到匹配, 时间复杂度 O(N) 非增量式 当系统存在大量 iptables 规则链时, 增加 / 删除规则会出现 kernel lock Another app is currently holding the xtables lock. Perhaps you want to use the -w option? 后端实例扩容, 服务会话保持时间更新等都会导致连接断开

Iptables 规则匹配时延 注 : 上面测试中, 每个 service 在 kube-services 对应 1 条 chain

更新 Iptables 规则的时延 时延出现在哪? 非增量式, 即使加上 no-flush(iptables-restore) 选项 Kube-proxy 定期同步 iptables 状态 : ü ü ü ü 拷贝所有规则 iptables-save 在内存中更新规则在内核中修改规则 iptables-restore 规则更新期间存在 kernel lock K service(40k 规则 ), 增加一条 iptables 规则, 耗时 11min 20K service(160k 规则 ), 增加一条 iptables 规则, 耗时 5h

Iptables 周期性刷新导致 TPS 抖动

K8S Scalability 5000 Nodes 1000 Services??

优化方案 使用树形结构组织 iptables 规则 IPVS

树形结构的 iptables 规则

Kubernetes 的 Service 机制 Iptables 实现 Service 负载均衡 目录 CONTENTS 当前 Iptables 实现存在的问题 IPVS 实现 Service 负载均衡 Iptables VS. IPVS IPSet 与 IPVS 协同

什么是 IPVS(IP Virtual Server) Linux 内核实现的 L4 LB,LVS 负载均衡的实现 基于 netfilter, hash table 支持 TCP, UDP,SCTP 协议,IPV4,IPV6 支持多种负载均衡策略 rr, wrr, lc, wlc, sh, dh, lblc 支持会话保持 persistent connection 调度算法

IPVS 工作流

IPVS 三种转发模式 支持三种 LB 模式 : Direct Routing(DR), Tunneling, NAT DR 模式工作在 L2, 最快, 但不支持端口映射 Tunneling 模式用 IP 包封装 IP 包, 不支持端口映射 DR 和 Tunneling 模式, 回程报文不会经过 IPVS Director NAT 模式支持端口映射, 回程报文经过 IPVS Director - 内核原生版本只做 DNAT, 不做 SNAT

DR

Tunneling

NAT

IPVS 做流量转发 绑定 VIP ü dummy 网卡 # ip link add dev dummy0 type dummy # ip addr add 192.168.2.2/32 dev dummy0 ü 本地路由表 # ip route add to local 192.168.2.2/32 dev eth0 proto kernel ü 网卡别名 # ifconfig eth0:1 192.168.2.2 netmask 255.255.255.255 up IPVS Virtual Server # ipvsadm -A -t 192.168.60.200:80 -s rr -p 600 IPVS Real Server # ipvsadm -a -t 192.168.60.200:80 -r 172.17.1.2:80 m # ipvsadm -a -t 192.168.60.200:80 -r 172.17.2.3:80 m

IPVS 实现 Kubernetes Service

Kubernetes 支持 IPVS 模式 社区 1.8 Alpha 特性, Owner @m1093782566 社区 1.9 进 beta, Owner @m1093782566 支持 ClusterIP,NodePort,External IP,Load Balancer 类型 Service iptables 模式的特性,IPVS 模式都支持! 兼容 Network Policy 依赖 iptables 做 SNAT 和访问控制

Kubernetes 的 Service 机制 Iptables 实现 Service 负载均衡 目录 CONTENTS 当前 Iptables 实现存在的问题 IPVS 实现 Service 负载均衡 Iptables VS. IPVS IPSet 与 IPVS 协同

Iptables vs. IPVS 增加规则时延 Service 基数 1 5000 20000 Rules 基数 8 40000 160000 增加 1 条 Iptables 规则 50 us 11 min 5 hours 增加 1 条 IPVS 规则 30 us 50 us 70 us 增加一条 Iptables 的时延, 随着规则数的增加 指数 上升 增加一条 IPVS 的时延, 规则基数对其几乎没影响

使用 iperf 测量 每个 Service 暴露 4 个端口 (KUBE-SERVICES 下挂 4 条 KUBE-SVC-*) service 数 1 1000 5000 10000 25000 50000 带宽,iptables,first 66.6 64 50 15 0 0 带宽,iptables,last 66.6 56 38.6 6 0 0 带宽,IPVS,first 65.3 61.7 53.5 43 30 24 带宽,IPVS,last 65.3 55.3 53.8 43.5 28.5 23.8

Iptables vs. IPVS CPU/ 内存消耗 Metrics number of service IPVS Iptables Memory Usage 1000 386 MB 1.1 G 5000 N/A 1.9 G 10000 542 MB 2.3 G 15000 N/A OOM 50000 1272 MB OOM CPU Usage 1000 N/A 5000 50% - 85% 10000 0% 50%-100% 15000 N/A 50000 N/A

Iptables vs. IPVS Iptables ü 灵活, 功能强大 ü 在 prerouting, postrouting, forward, input, output 不同阶段都能对包进行操作 IPVS ü 更好的性能 (hash vs. chain) ü 更多的负载均衡算法 - rr, wrr, lc, wlc, ip hash ü 连接保持 - IPVS service 更新期间, 保持连接不断开 ü 预先加载内核模 - nf_conntrack_ipv4, ip_vs, ip_vs_rr, ip_vs_wrr, ipvs_sh ü# echo 1 > /proc/sys/net/ipv4/vs/conntrack ü 不支持 127.0.0.1 作为 VIP

Why we still need iptables? 自己访问自己

从 Host 发起跨节点访问

Iptables: Masquerade

但, 不想要太多 iptables

Kubernetes 的 Service 机制 Iptables 实现 Service 负载均衡 目录 CONTENTS 当前 Iptables 实现存在的问题 IPVS 实现 Service 负载均衡 Iptables VS. IPVS IPSet 与 IPVS 协同

IPSet - 把 O(N) 的 iptables 规则降为 O(1) pset create KUBE-LOOP-BACK hash:ip,port,ip ipset add KUBE-LOOP-BACK 192.168.1.1,udp:53,192.168.1.1 ipset add KUBE-LOOP-BACK 192.168.1.2,tcp:80,192.168.1.2 O(N) iptables -t nat -A POSTROUTING -m set --match-set KUBE-LOOP- BACK dst,dst,src -j MASQUERADEOUTING O(1) 而且 : ipset 支持 增量 式增 / 删 / 改, 而非 iptables 式全量更新

欢迎关注, 华为云!

感谢聆听 Thanks!