Kubernetes 网络改进的三项实践分享

2018-05-30 11:13:46 +08:00
 AlaudaCloud

自研 CNI IPAM 插件 解决 K8s 功能问题

首先,在功能方面,Kubernetes 网络模型由于 IP 不固定,无法对 IP 资源进行精细管控,无法使用基于 IP 的监控和基于 IP 的安全策略,此外,一些 IP 发现的服务部署十分困难,给运维人员增加了很大的工作难度。例如由于 IP 不固定,令很多采用 IP 固定来做的传统监控和审计机制全部失效。此外,很多软件是对 MAC 地址进行授权,IP 地址不固定无法购买授权,IP 固定的需求在一定场景下客观存在。

为了解决这一问题,灵雀云把 IP 当做重要资源,进行单独管理。灵雀云自研的 CNI IPAM 插件,实现了 IP 导入和 IP 权限管理功能,可以进行网段的添加和删除,可在 Kubernetes 进行网段的精细化配置。例如,给某个业务或者某几个用户分配一个网关,先对 IP 进行网关设置,路由设置以及 DNS 设置;有了网段之后,进行 IP 添加或删除,哪些 IP 可用都可以由管理员指定,经过权限和配额之后顺利创建服务。

IPVS 解决 K8S 大流量下性能线性下降问题

其次,在性能方面,由于 Kubernetes 最早是基于 Iptables 来做的,Iptables 没有增量更新功能,更新一条规则需要整体 flush,更新时间长,这段时间之内流量会有不同程度的影响;Iptables 规则串行,没有预料到 Kubernetes 这种在一个机器上会有很多规则的情况,流量需要经过所有规则的匹配,匹配之后再进行转发,否则对时间、CPN 和内存都是极大的消耗,尤其在大规模情况下对性能的影响十分明显。

刘梦馨介绍指出,Kubernetes 升级到 1.8 或 1.9 版本以后,安装时可以选择 IPVS 模式,它是对 Iptables 的替换,在 IPVS 模式下添加规则是增量式的,不会强制进行全量更新,也不会进行串行的匹配,会通过一定的规则进行哈希 map 映射,很快地映射到对应的规则,不会出现大规模情况下性能线性下降的状况。目前,IPVS 在 Kubernetes 社区仍处于试用阶段,刘梦馨表示,灵雀云已经开始试用 IPVS 功能,从使用情况来看,性能十分稳定,预计很快会将方案推广给用户。

自研 OpenResty Ingress 解决 K8S 稳定性问题

最后,在稳定性方面,Kubernetes 网络缺少健康检查功能,NodePort 屏蔽了 Pod 的直接访问,上层健康检查失效,网络分区、网络问题导致的转发异常时有发生。

灵雀云采用自研的 OpenResty Ingress,方便新增功能,可以进行多端口监听。官方的 Nginx Ingress 只能监听 80 和 43 端口,但很多客户要对更多的端口进行监听,如根据端口区分的服务,灵雀云对此进行了一些改动,其自研的 Ingress 支持多端口功能。另外,原始 Ingress 的转化功能较少且配置复杂,需要不断更改 Nginx config。对于 reload,灵雀云用 OpenResty 实现 lua 的代码库,在 lua 的代码里进行流量调度,并设定了特定的 DSL 流量调度语言,可以通过简单的程序代码实现特定的流量规则,在 Ingress 流量规则方面进行了丰富扩展。

在演讲的最后,刘梦馨列举了一个用简单程序代码实现特定流量规则的实例:

规则:域名是 www.baidu.com 或者 baidu.com ,路径是 /search, 源 IP 为 114.114.114.114 ,header 中 uid 在 100 到 999 或者 10000 到 11000 之间的请求

(AND (IN HOST www.baidu.com baidu.com) (EQ URL /search) (EQ SRC_IP 114.114.114.114) (OR (RANGE HEADER uid 100 999) (RANGE HEADER uid 10000 11000)))

可以看出,只需简单的配置域名、路径、特定范围内的 IP 等信息,Dsl 就可以实现比较复杂的规则。

灵雀云是一家专注容器服务和企业级 PaaS 的服务商,始终保持着对技术的敏锐和前瞻性理解,在容器领域,灵雀云是国内最早将 Kubernetes 产品化的专业服务商,推出了基于 Kubernetes 的产品 Alauda EE,打造客户容器环境核心系统以及在 DevOps 和微服务方面的最佳实践。未来,灵雀云将依托强大的产品和服务能力,为传统企业数字化转型保驾护航。

1438 次点击
所在节点    推广
2 条回复
liuxu
2018-05-30 12:30:53 +08:00
@Livid 推广
Livid
2018-05-30 12:54:38 +08:00
@AlaudaCloud 这个主题已经被移动。

软文请只发布到 /go/promotions 节点。

如果持续忽略来自管理员的提示,你们的账号会被降权甚至禁用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/458876

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX