摘要:如何自建一個思路接入方案我們都知道訪問集群的服務(wù)需要接入。據(jù)我所知,接入的方案有種云廠商提供比如官方的實現(xiàn)第三方實現(xiàn)方案自建,比如使用這里重點記錄一下,如何自建一個的思路??刂浦行氖且粋€叫的程序,監(jiān)控對應(yīng)的,數(shù)據(jù)代理是有組成。
如何自建一個k8s ingress 思路 ingress 接入方案
我們都知道訪問k8s 集群的服務(wù)需要ingress 接入。
據(jù)我所知,ingress 接入的方案有4種
1.云廠商提供LoadBalance, 比如aliyun SLB. 2.官方的實現(xiàn) ingress controller 3.第三方實現(xiàn)方案 4.自建, 比如使用envoy
這里重點記錄一下,如何自建一個ingress 的思路。
ingress 接入方案的原理在講如何自建一個k8s ingress 之前,這里分別記錄一下ingress 的實現(xiàn)原理。
先說官方的實現(xiàn)。 https://github.com/kubernetes...
官方的ingress 接入實現(xiàn)使用ingress controller + nginx 實現(xiàn)的。
如上圖所示
ingress 接入分為配置控制和數(shù)據(jù)代理。 ingress controller 是一個控制中心,監(jiān)控的數(shù)據(jù)來源 1.k8s 集群的api-server, 比如node 、service、 pod 變化 2.ingress 實例的configMap ingress controller 發(fā)現(xiàn)監(jiān)控的數(shù)據(jù)有變化,就把監(jiān)控的數(shù)據(jù)轉(zhuǎn)換成為nginx.conf 代理所需要配置。 然后reload nginx. 從而實現(xiàn)數(shù)據(jù)流量接入路由。 當(dāng)然,如果ingress controller 這一套部署在k8s 集群內(nèi)的話,肯定是要暴露端口的。
我接觸到到的aliyun 的SLB 也類似。
SLB 控制中心是一個叫CMI的程序,監(jiān)控k8s 對應(yīng)的label, 數(shù)據(jù)代理是有LVS + nginx 組成。
這里說一下為什么會有自建的需要
首先,我們系統(tǒng)中使用grpc, grpc 使用h2為載體,進行多路復(fù)用。
目前對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 的。
就簡單的當(dāng)做一個tcp 來處理。
但是使用4層代理來做grpc 的代理有很大的缺點:
1).沒有辦法很好做到負載均衡。 因為h2 是7層協(xié)議,如果想在請求級別上做好負載均衡, 必須支持h2 7層協(xié)議。
2).沒有辦法收斂連接數(shù)。如果你的服務(wù)是連接數(shù)很多(比如一個grpc 的接入服務(wù)器), 那邊4層代理透傳連接數(shù)到上游服務(wù), 這樣一部4層代理本身的連接數(shù)翻倍,大量消耗連接數(shù)資源。
而 envoy 代理grpc 沒有上面2個問題。
1).envoy 支持h2 的路由轉(zhuǎn)發(fā),并且配置負載均衡。
2).envoy 代理h2 到上游服務(wù),連接數(shù)是收斂的。比如50w 連接數(shù)到經(jīng)過envoy 代理到上游服務(wù)可能是20 個連接,連接數(shù)大大收斂。
envoy ingress 代理
如下圖:
envoy 是支持xDS 動態(tài)下發(fā)routeconfig.
有xDS 監(jiān)控 k8s api-server , 下發(fā)routeconfig 的路由信息。
參考文章
http://jm.taobao.org/2018/07/...,
https://segmentfault.com/a/11...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/32920.html
摘要:但考慮到該用戶在跨集群模式下的困擾,開始策劃將托管云物理機納入現(xiàn)有集群統(tǒng)一管理的方案,即在混合云架構(gòu)下僅需部署管理一套集群。托管云物理機納入UK8S集群統(tǒng)一管理后,可實現(xiàn)托管云物理機保障平峰時業(yè)務(wù)正常運行,高峰時期利用UK8S快速擴容公有云資源的理想應(yīng)用場景,繼而提升混合云的可用性。 ——海豹他趣技術(shù)負責(zé)人 張嵩 混合云的業(yè)務(wù)模式 廈門海豹他趣信息技術(shù)股份有限公司于2012年4...
摘要:中暴露服務(wù)訪問自己實現(xiàn)了一個,它本質(zhì)上是包裝了,在真正創(chuàng)建負載均衡器上它會調(diào)用來創(chuàng)建自身的。 Kubernetes概述 最近的一年,kubernetes的發(fā)展如此閃耀,正被越來越多的公司采納用于生產(chǎn)環(huán)境的實踐。同時,我們可以在最著名的開發(fā)者問答社區(qū)StackOverflow上看到k8s的問題數(shù)量的增長曲線(2015.5-2016.5),開發(fā)者是用腳投票的,從這一點看也無疑證明了k8s的...
摘要:中暴露服務(wù)訪問自己實現(xiàn)了一個,它本質(zhì)上是包裝了,在真正創(chuàng)建負載均衡器上它會調(diào)用來創(chuàng)建自身的。 Kubernetes概述 最近的一年,kubernetes的發(fā)展如此閃耀,正被越來越多的公司采納用于生產(chǎn)環(huán)境的實踐。同時,我們可以在最著名的開發(fā)者問答社區(qū)StackOverflow上看到k8s的問題數(shù)量的增長曲線(2015.5-2016.5),開發(fā)者是用腳投票的,從這一點看也無疑證明了k8s的...
摘要:近日發(fā)現(xiàn)一個問題應(yīng)用程序在返回的時候丟失了原先訪問的端口。于是懷疑問題出在這幾個上。在中,在描述的時候提到,其返回的必須是。修改的端口為靠譜這個方法比較靠譜,只要將的端口改成就沒有問題了。使用靠譜使用提供的,將的值做文本替換。 github 近日發(fā)現(xiàn)一個問題:應(yīng)用程序在返回Http Redirect的時候丟失了原先訪問的端口。比如,我們這樣訪問http://IP-A:Port-A/ap...
摘要:近日發(fā)現(xiàn)一個問題應(yīng)用程序在返回的時候丟失了原先訪問的端口。于是懷疑問題出在這幾個上。在中,在描述的時候提到,其返回的必須是。修改的端口為靠譜這個方法比較靠譜,只要將的端口改成就沒有問題了。使用靠譜使用提供的,將的值做文本替換。 github 近日發(fā)現(xiàn)一個問題:應(yīng)用程序在返回Http Redirect的時候丟失了原先訪問的端口。比如,我們這樣訪問http://IP-A:Port-A/ap...
閱讀 808·2021-11-24 09:38
閱讀 1010·2021-11-11 11:01
閱讀 3255·2021-10-19 13:22
閱讀 1542·2021-09-22 15:23
閱讀 2844·2021-09-08 09:35
閱讀 2780·2019-08-29 11:31
閱讀 2134·2019-08-26 11:47
閱讀 1578·2019-08-26 11:44