摘要:如何自建一个思路接入方案我们都知道访问集群的服务需要接入。据我所知,接入的方案有种云厂商提供比如官方的实现第三方实现方案自建,比如使用这里重点记录一下,如何自建一个的思路。控制中心是一个叫的程序,监控对应的,数据代理是有组成。
如何自建一个k8s ingress 思路 ingress 接入方案
我们都知道访问k8s 集群的服务需要ingress 接入。
据我所知,ingress 接入的方案有4种
1.云厂商提供LoadBalance, 比如aliyun SLB. 2.官方的实现 ingress controller 3.第三方实现方案 4.自建, 比如使用envoy
这里重点记录一下,如何自建一个ingress 的思路。
ingress 接入方案的原理在讲如何自建一个k8s ingress 之前,这里分别记录一下ingress 的实现原理。
先说官方的实现。 https://github.com/kubernetes...
官方的ingress 接入实现使用ingress controller + nginx 实现的。
如上图所示
ingress 接入分为配置控制和数据代理。 ingress controller 是一个控制中心,监控的数据来源 1.k8s 集群的api-server, 比如node 、service、 pod 变化 2.ingress 实例的configMap ingress controller 发现监控的数据有变化,就把监控的数据转换成为nginx.conf 代理所需要配置。 然后reload nginx. 从而实现数据流量接入路由。 当然,如果ingress controller 这一套部署在k8s 集群内的话,肯定是要暴露端口的。
我接触到到的aliyun 的SLB 也类似。
SLB 控制中心是一个叫CMI的程序,监控k8s 对应的label, 数据代理是有LVS + nginx 组成。
这里说一下为什么会有自建的需要
首先,我们系统中使用grpc, grpc 使用h2为载体,进行多路复用。
目前对grpc 代理做的比较好的是envoy.
有两种方式对grpc 进行代理
1). 4层代理,简单粗暴。
2). 7层代理。 做到可以更细维度的路由负载。
在说nginx proxy , nginx 是可以支持4层代理,也可以支持HTTP2 的7层代理,但是nginx 对grpc 支持不好。
因为 nginx 是不能做http2 的透明代理的。
nginx仅支持HTTP/ 2用于下游连接。
nginx 做7层代理,下游是h2 代理,到上游是http1.x . 并不是一个透明代理。
2.nginx 做grpc 的4层代理。实际上,支持4层代理的软件,都支持grpc 代理。因为h2 也是基于tcp 的。
就简单的当做一个tcp 来处理。
但是使用4层代理来做grpc 的代理有很大的缺点:
1).没有办法很好做到负载均衡。 因为h2 是7层协议,如果想在请求级别上做好负载均衡, 必须支持h2 7层协议。
2).没有办法收敛连接数。如果你的服务是连接数很多(比如一个grpc 的接入服务器), 那边4层代理透传连接数到上游服务, 这样一部4层代理本身的连接数翻倍,大量消耗连接数资源。
而 envoy 代理grpc 没有上面2个问题。
1).envoy 支持h2 的路由转发,并且配置负载均衡。
2).envoy 代理h2 到上游服务,连接数是收敛的。比如50w 连接数到经过envoy 代理到上游服务可能是20 个连接,连接数大大收敛。
envoy ingress 代理
如下图:
envoy 是支持xDS 动态下发routeconfig.
有xDS 监控 k8s api-server , 下发routeconfig 的路由信息。
参考文章
http://jm.taobao.org/2018/07/...,
https://segmentfault.com/a/11...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/32920.html
摘要:但考虑到该用户在跨集群模式下的困扰,开始策划将托管云物理机纳入现有集群统一管理的方案,即在混合云架构下仅需部署管理一套集群。托管云物理机纳入UK8S集群统一管理后,可实现托管云物理机保障平峰时业务正常运行,高峰时期利用UK8S快速扩容公有云资源的理想应用场景,继而提升混合云的可用性。 ——海豹他趣技术负责人 张嵩 混合云的业务模式 厦门海豹他趣信息技术股份有限公司于2012年4...
摘要:中暴露服务访问自己实现了一个,它本质上是包装了,在真正创建负载均衡器上它会调用来创建自身的。 Kubernetes概述 最近的一年,kubernetes的发展如此闪耀,正被越来越多的公司采纳用于生产环境的实践。同时,我们可以在最著名的开发者问答社区StackOverflow上看到k8s的问题数量的增长曲线(2015.5-2016.5),开发者是用脚投票的,从这一点看也无疑证明了k8s的...
摘要:中暴露服务访问自己实现了一个,它本质上是包装了,在真正创建负载均衡器上它会调用来创建自身的。 Kubernetes概述 最近的一年,kubernetes的发展如此闪耀,正被越来越多的公司采纳用于生产环境的实践。同时,我们可以在最著名的开发者问答社区StackOverflow上看到k8s的问题数量的增长曲线(2015.5-2016.5),开发者是用脚投票的,从这一点看也无疑证明了k8s的...
摘要:近日发现一个问题应用程序在返回的时候丢失了原先访问的端口。于是怀疑问题出在这几个上。在中,在描述的时候提到,其返回的必须是。修改的端口为靠谱这个方法比较靠谱,只要将的端口改成就没有问题了。使用靠谱使用提供的,将的值做文本替换。 github 近日发现一个问题:应用程序在返回Http Redirect的时候丢失了原先访问的端口。比如,我们这样访问http://IP-A:Port-A/ap...
摘要:近日发现一个问题应用程序在返回的时候丢失了原先访问的端口。于是怀疑问题出在这几个上。在中,在描述的时候提到,其返回的必须是。修改的端口为靠谱这个方法比较靠谱,只要将的端口改成就没有问题了。使用靠谱使用提供的,将的值做文本替换。 github 近日发现一个问题:应用程序在返回Http Redirect的时候丢失了原先访问的端口。比如,我们这样访问http://IP-A:Port-A/ap...
阅读 778·2021-11-24 09:38
阅读 944·2021-11-11 11:01
阅读 3170·2021-10-19 13:22
阅读 1493·2021-09-22 15:23
阅读 2808·2021-09-08 09:35
阅读 2747·2019-08-29 11:31
阅读 2104·2019-08-26 11:47
阅读 1545·2019-08-26 11:44