K8s Ingress Provider 为什么选择 MSE 云原生网关?
作者:如葑
K8s Ingress 簡(jiǎn)介
K8s 集群內(nèi)的網(wǎng)絡(luò)與外部是隔離的,即在 K8s 集群外部無(wú)法直接訪問(wèn)集群內(nèi)部的服務(wù),如何讓將 K8s 集群內(nèi)部的服務(wù)提供給外部用戶呢?K8s 社區(qū)有三種方案:NodePort、LoadBalancer、Ingress,下圖是對(duì)這三種方案的對(duì)比:
通過(guò)對(duì)比可以看到 Ingress 是更適合業(yè)務(wù)使用的一種方式,可以基于其做更復(fù)雜的二次路由分發(fā),這也是目前用戶主流的選擇。
K8s Ingress 現(xiàn)狀
套用一句流行語(yǔ):理想是豐滿的、現(xiàn)實(shí)是骨感的,這句話放在 K8s Ingress 也同樣適用,K8s 希望通過(guò) Ingress 來(lái)標(biāo)準(zhǔn)化集群入口流量的規(guī)則定義,但實(shí)際業(yè)務(wù)落地時(shí)需要的功能點(diǎn)要遠(yuǎn)比 Ingress 提供的多,為了滿足業(yè)務(wù)訴求,各 Ingress Provider 也各出招數(shù),總的來(lái)說(shuō)解法分成兩類:使用 annotations 擴(kuò)展與使用新的 CRD。下面使用圖示來(lái)說(shuō)明:
K8s Ingress Provider 的發(fā)展趨勢(shì)
Ingress Provider 的百花齊放,站在用戶角度各有利弊,好處是用戶的可選項(xiàng)很多,而壞處也恰恰是選擇太多,我們?nèi)绾稳ミx擇一個(gè)適合自身業(yè)務(wù)的 Ingress Provider 呢?不妨先看看權(quán)威 CNCF 的統(tǒng)計(jì)數(shù)據(jù):
直觀的可以看出對(duì)于占據(jù) Ingress Provider 首位的 Nginx 是在預(yù)期之內(nèi)的,細(xì)看之下雖 Nginx Ingress 仍占據(jù)榜首,但其增長(zhǎng)有點(diǎn)乏力,甚至有下降的態(tài)勢(shì);反觀 Envoy 已經(jīng)從 2019 年的第三位攀升至 2020 的第二位,其使用率也從 2019 年的不足 20% 攀升至 2020 年的 37%,幾乎成倍增長(zhǎng)。
所謂透過(guò)現(xiàn)象看本質(zhì),為什么 Envoy 的增長(zhǎng)這么快呢?總結(jié)起來(lái)有以下幾點(diǎn):
1、Envoy 誕生在分布式微服務(wù)的大背景下,其配置熱更新、HTTP3、Wasm 等特性非常貼合目前的使用場(chǎng)景,同時(shí)社區(qū)治理也非常健康,很多互聯(lián)網(wǎng)大廠也深度參與其中。
2、Envoy 即可用作 Ingress Provider,也是 ServiceMesh 中 sidecar 的事實(shí)領(lǐng)導(dǎo)者,使用同一種技術(shù)同時(shí)解決南北向與東西向流量調(diào)度也是用戶選擇 Envoy 的一大原因。
3、Envoy 是達(dá)到生產(chǎn)級(jí)要求的,是經(jīng) Lyft 大規(guī)模驗(yàn)證過(guò)的。
K8s Ingress Provider 的新選擇 - 云原生網(wǎng)關(guān)
在虛擬化時(shí)期的微服務(wù)架構(gòu)下,業(yè)務(wù)通常采用流量網(wǎng)關(guān) + 微服務(wù)網(wǎng)關(guān)的兩層架構(gòu),流量網(wǎng)關(guān)負(fù)責(zé)南北向流量調(diào)度和安全防護(hù),微服務(wù)網(wǎng)關(guān)負(fù)責(zé)東西向流量調(diào)度和服務(wù)治理,而在容器和 K8s 主導(dǎo)的云原生時(shí)代,Ingress 成為 K8s 生態(tài)的網(wǎng)關(guān)標(biāo)準(zhǔn),賦予了網(wǎng)關(guān)新的使命,使得流量網(wǎng)關(guān) + 微服務(wù)網(wǎng)關(guān)合二為一成為可能。
MSE 發(fā)布的云原生網(wǎng)關(guān)在能力不打折的情況下,將兩層網(wǎng)關(guān)變?yōu)橐粚?#xff0c;不僅可以節(jié)省 50% 的資源成本,還可以降低運(yùn)維及使用成本。
云原生網(wǎng)關(guān)的優(yōu)勢(shì)
性能更強(qiáng)勁
在開(kāi)始介紹前先拋個(gè)問(wèn)題:Nginx Ingress 的性能與 Nginx 是等價(jià)的嗎?帶著這個(gè)疑問(wèn)我們直接看壓測(cè)數(shù)據(jù)對(duì)比:
有沒(méi)有感覺(jué)很意外呢?說(shuō)實(shí)話壓測(cè)后包括我們自己也是有些意外,壓測(cè)結(jié)論如下:
我們也查看了 Nginx Ingress 的實(shí)現(xiàn)以及社區(qū)反饋,由于其大量使用 Lua 腳本從而對(duì)性能帶來(lái)了非常大的影響,K8s Nginx Ingress 社區(qū)也有具體的 issue: https://github.com/kubernetes/ingress-nginx/issues/5658
社區(qū)壓測(cè) Lua 對(duì) Nginx Ingress 的性能影響截圖如下:
功能更豐富
云原生網(wǎng)關(guān)作為流量網(wǎng)關(guān)與微服務(wù)網(wǎng)關(guān)的二合一,其功能上同時(shí)提供豐富的安全認(rèn)證與服務(wù)治理能力,同時(shí)在性能上也做了內(nèi)核調(diào)優(yōu)以及接下來(lái)要發(fā)布的硬件加速功能,結(jié)合阿里內(nèi)部?jī)赡甑拇蟠俳?jīng)驗(yàn)在高可用建設(shè)上也進(jìn)一步做了擴(kuò)展,整體功能大圖如下:
穩(wěn)定更可靠
經(jīng)過(guò)歷年大促的驗(yàn)證,阿里內(nèi)部積累了一套高可用保障方案,從研發(fā)時(shí)、運(yùn)行時(shí)、變更時(shí)來(lái)控制風(fēng)險(xiǎn)提升穩(wěn)定性,在每個(gè)階段各自有手段去驗(yàn)證其高可用目標(biāo),圖示說(shuō)明如下:
云原生網(wǎng)關(guān)即將上線的重磅功能
TLS 硬件加速
目前 HTTPS 已經(jīng)成為公網(wǎng)請(qǐng)求的主要使用方式,全部使用 HTTPS 后由于其要做 TLS 握手,相比HTTP勢(shì)必性能上會(huì)有很大損耗,目前隨著 CPU 性能的大幅提升,利用 CPU 的 SIMD 機(jī)制可以很好的加速 TLS 的性能,因此我們基于 Intel Ice Lake 處理器推出 TLS 硬件加速功能,通過(guò)壓測(cè)驗(yàn)證啟用 TLS 加速后 QPS 可以大幅提升,具體如下圖:
內(nèi)置 Waf
作為面向南北向的公網(wǎng)網(wǎng)關(guān),使用 Waf 防護(hù)異常流量是很常規(guī)的需求,而且隨著互聯(lián)網(wǎng)環(huán)境變得越來(lái)越復(fù)雜,用戶對(duì)防護(hù)的訴求是持續(xù)增強(qiáng)的,常規(guī)做法是將流量先接入 Waf 安全網(wǎng)關(guān),過(guò)濾后再將流量轉(zhuǎn)發(fā)給流量網(wǎng)關(guān),最后到達(dá)微服務(wù)網(wǎng)關(guān);云原生網(wǎng)關(guān)希望內(nèi)置 Waf 模塊直接對(duì)接阿里云的 Waf 云產(chǎn)品,使得用戶的請(qǐng)求鏈接只經(jīng)過(guò)云原生網(wǎng)關(guān)就可以同時(shí)完成 Waf 防護(hù)、流量分發(fā)、微服務(wù)治理,即提升鏈路 RT,也降低網(wǎng)關(guān)的運(yùn)維復(fù)雜度,圖示如下:
Wasm 插件市場(chǎng)
Wasm 作為目前非常火熱的技術(shù)之一,其最受追捧的原因在于其可以支持多語(yǔ)言編寫 Wasm 程序,且 Wasm 提供了一個(gè)很好的沙箱環(huán)境來(lái)控制程序的執(zhí)行環(huán)境,Istiod 與 Envoy 社區(qū)也已經(jīng)對(duì) Wasm 插件做了基礎(chǔ)的支持,云原生網(wǎng)關(guān)希望在社區(qū)的基礎(chǔ)上推出自己的插件市場(chǎng),提升網(wǎng)關(guān)的可擴(kuò)展性,方便用戶自定義網(wǎng)關(guān)插件。我們也對(duì)現(xiàn)有的 wasm runtime 做了性能對(duì)比與測(cè)試,這些測(cè)試數(shù)據(jù)也會(huì)作為我們的開(kāi)發(fā)依據(jù),圖示如下:
寫在最后
MSE - 云原生網(wǎng)關(guān),旨在為用戶提供更可靠的、成本更低、效率更高的,符合 K8s Ingress 標(biāo)準(zhǔn)的企業(yè)級(jí)網(wǎng)關(guān)產(chǎn)品,更多發(fā)布詳情移步直播間觀看: https://yqh.aliyun.com/live/detail/27794
MSE - 云原生網(wǎng)關(guān)提供后付費(fèi)和包年包月兩類付費(fèi)模式,支持杭州、上海、北京、深圳 、張家口、香港、新加坡、美國(guó)(弗吉尼亞)、美國(guó)(硅谷)、德國(guó)(法蘭克福)10 個(gè) region,并會(huì)逐步開(kāi)放其他 region,云原生網(wǎng)關(guān)購(gòu)買鏈接請(qǐng)點(diǎn)擊此處。
也可釘釘搜索群號(hào) 34754806 加入用戶群交流、答疑。 發(fā)布云原生技術(shù)最新資訊、匯集云原生技術(shù)最全內(nèi)容,定期舉辦云原生活動(dòng)、直播,阿里產(chǎn)品及用戶最佳實(shí)踐發(fā)布。與你并肩探索云原生技術(shù)點(diǎn)滴,分享你需要的云原生內(nèi)容。
關(guān)注【阿里巴巴云原生】公眾號(hào),獲取更多云原生實(shí)時(shí)資訊!
總結(jié)
以上是生活随笔為你收集整理的K8s Ingress Provider 为什么选择 MSE 云原生网关?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 平安保险基于 SPI 机制的 Rocke
- 下一篇: 分享你的见解与经验|RocketMQ S