摘要:如何自建一個思路接入方案我們都知道訪問集群的服務需要接入。據我所知,接入的方案有種云廠商提供比如官方的實現第三方實現方案自建,比如使用這里重點記錄一下,如何自建一個的思路。控制中心是一個叫的程序,監控對應的,數據代理是有組成。
如何自建一個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...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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...
閱讀 796·2021-11-24 09:38
閱讀 998·2021-11-11 11:01
閱讀 3236·2021-10-19 13:22
閱讀 1524·2021-09-22 15:23
閱讀 2828·2021-09-08 09:35
閱讀 2766·2019-08-29 11:31
閱讀 2119·2019-08-26 11:47
閱讀 1563·2019-08-26 11:44