关于Kube-Proxy在IPVS模式下的路由问题

我们知道kube-proxy在1.8之后就增加了ipvs模式,直到我在部署1.9.1版本的Proxy时,ipvs默认仍然还在beta版本。

最近试用了一下,运行在ipvs模式下的kube-proxy大体和之前我所用的kube-router类似,但是功能反而没有kube-router支持的完善。比如对于ipvs的负载均衡策略的支持,kube-proxy是配置在启动参数当中,而kube-router是配置在svc的annotate中。相比kube-proxy的功能kube-router要更灵活一些。当然这些都不是问题,作为Kubernetes的亲儿子,这些功能应该很快都会被支持。

好了,说下最近遇到的问题吧。

背景

既然文章标题说是网络问题,下面就简单介绍下kube-proxy所在的物理机的网络环境:

服务器类型 管理网 容器网 SVC网络 存储网
Kube-Proxy 10.17.64.0/22 IPVLAN 10.17.74.0/24 10.17.70.0/23

问题现象:

  • 外部服务器无法ping通eth2网卡,也无法ping通svc网络。下面是我kube-proxy的环境:

kube-proxy运行在ipvs模式下,通过svc创建的Cluster都绑定在kube-ipvs0这块虚拟网卡上。

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 18:66:da:6d:b5:ac brd ff:ff:ff:ff:ff:ff
    inet 10.17.64.14/22 brd 10.17.67.255 scope global eth0
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 18:66:da:6d:b5:ad brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 18:66:da:6d:b5:ae brd ff:ff:ff:ff:ff:ff
    inet 10.17.74.253/24 scope global eth2
       valid_lft forever preferred_lft forever
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 18:66:da:6d:b5:af brd ff:ff:ff:ff:ff:ff
    inet 10.17.70.14/23 scope global eth3
       valid_lft forever preferred_lft forever
18: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether ee:16:fe:84:08:df brd ff:ff:ff:ff:ff:ff
19: kube-ipvs0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
    link/ether 22:41:85:c1:65:54 brd ff:ff:ff:ff:ff:ff
    inet 10.17.74.1/32 brd 10.17.74.1 scope global kube-ipvs0
       valid_lft forever preferred_lft forever
    inet 10.17.74.2/32 brd 10.17.74.2 scope global kube-ipvs0
       valid_lft forever preferred_lft forever

这里可以看到我的eth2网卡和kube-ipvs0所处一个网段。由于默认网关是处于管理网,这样就出现访问SVC网络不通的尴尬场景。这里就牵扯出一个新的概念了,策略路由

简单来说策略路由,是一种可以灵活配置路由包转发的机制,可以根据配置服务器上的路由策略来选择外出包的路径。如果服务器配置了多网卡,这个时候就需要配置策略路由来调整出口的网卡。

以我这里的kube-proxy为例:

默认情况下服务器用的路由表空间是default,由于需要另加路由表,就需要在/etc/iproute2/rt_tables文件下创建一张新表,如下:

$ cat /etc/iproute2/rt_tables

#
# reserved values
#
255    local
254    main
253    default
0    unspec
#
# local
#
100   eth2

添加路由策略

# 清空路由表100
ip route flush table 100
# 添加一个默认的路由表
ip route add default via 10.17.74.254 dev eth2 src 10.17.74.253 table 100
# 将来自10.17.74.253转发到table 100上处理
ip rule add from 10.17.74.253 table 100
# 查看路由表信息
ip rule list

这样就eth2网卡就能在外部被访问了。

同理,我们将来源是SVC地址的IP也转发到table 100上处理,这样SVC的地址就能在外部访问了。

总结

虽然这样能够暂时访问svc,但是毕竟不是长久之计,目前准备给社区提交解决方案。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,099评论 18 139
  • 关于路由 很多像我这样的网络小白,对于整个路由过程比较模糊。下面以一个简单的PING示例解释一下路由的整个过程。 ...
    wupeaking阅读 4,479评论 1 5
  • 名词解释——GA:government affairs,政府事务。 中国的大部分互联网公司,特别是移动互联网公司,...
    liupc阅读 13,740评论 1 14
  • 一个不知名的作家,他擅长写作,尤其是感情生活类的文章。拜读他的多篇文章之后,感觉他的文字里始终都有积极的主题,甚至...
    韩小曰阅读 97评论 0 3
  • 1、javascript 1.1javascript来源 94年网景公司 研发出世界上第一款浏览器。95年 s...
    嗨黄先生阅读 271评论 0 0