K8s Ingress Provider 為什么選擇 MSE 云原生網(wǎng)關(guān)?
K8s Ingress 簡(jiǎn)介
Cloud Native
K8s 集群內(nèi)的網(wǎng)絡(luò)與外部是隔離的,即在 K8s 集群外部無(wú)法直接訪問(wèn)集群內(nèi)部的服務(wù),如何讓將 K8s 集群內(nèi)部的服務(wù)提供給外部用戶呢?K8s 社區(qū)有三種方案:NodePort、LoadBalancer、Ingress,下圖是對(duì)這三種方案的對(duì)比:
K8s Ingress 現(xiàn)狀
Cloud Native
套用一句流行語(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ì)
Cloud Native
Ingress Provider 的百花齊放,站在用戶角度各有利弊,好處是用戶的可選項(xiàng)很多,而壞處也恰恰是選擇太多,我們?nèi)绾稳ミx擇一個(gè)適合自身業(yè)務(wù)的 Ingress Provider 呢?不妨先看看權(quán)威 CNCF 的統(tǒng)計(jì)數(shù)據(jù):
所謂透過(guò)現(xiàn)象看本質(zhì),為什么 Envoy 的增長(zhǎng)這么快呢?總結(jié)起來(lái)有以下幾點(diǎn):
-
Envoy 誕生在分布式微服務(wù)的大背景下,其配置熱更新、HTTP3、Wasm 等特性非常貼合目前的使用場(chǎng)景,同時(shí)社區(qū)治理也非常健康,很多互聯(lián)網(wǎng)大廠也深度參與其中。
-
Envoy 即可用作 Ingress Provider,也是 ServiceMesh 中 sidecar 的事實(shí)領(lǐng)導(dǎo)者,使用同一種技術(shù)同時(shí)解決南北向與東西向流量調(diào)度也是用戶選擇 Envoy 的一大原因。
- Envoy 是達(dá)到生產(chǎn)級(jí)要求的,是經(jīng) Lyft 大規(guī)模驗(yàn)證過(guò)的。
04
K8s Ingress Provider 的新選擇 - 云原生網(wǎng)關(guān)
Cloud Native
在虛擬化時(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)合二為一成為可能。
05
云原生網(wǎng)關(guān)的優(yōu)勢(shì)
Cloud Native
1 性能更強(qiáng)勁
在開(kāi)始介紹前先拋個(gè)問(wèn)題:Nginx Ingress 的性能與 Nginx 是等價(jià)的嗎?帶著這個(gè)疑問(wèn)我們直接看壓測(cè)數(shù)據(jù)對(duì)比:
我們也查看了 Nginx Ingress 的實(shí)現(xiàn)以及社區(qū)反饋,由于其大量使用 Lua 腳本從而對(duì)性能帶來(lái)了非常大的影響,K8s Nginx Ingress 社區(qū)也有具體的 issue:https://github.com/kubernetes/ingress-nginx/issues/56582 功能更豐富
經(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)06
云原生網(wǎng)關(guān)即將上線的重磅功能
Cloud Native
1 TLS 硬件加速
作為面向南北向的公網(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 作為目前非?;馃岬募夹g(shù)之一,其最受追捧的原因在于其可以支持多語(yǔ)言編寫(xiě) 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)提供后付費(fèi)和包年包月兩類付費(fèi)模式,支持杭州、上海、北京、深圳 、張家口、香港、新加坡、美國(guó)(弗吉尼亞)、美國(guó)(硅谷)、德國(guó)(法蘭克福)10 個(gè) region,并會(huì)逐步開(kāi)放其他 region,云原生網(wǎng)關(guān)購(gòu)買(mǎi)鏈接請(qǐng)聯(lián)系站內(nèi)客服。