Gateway API是一個(gè)開源的API標(biāo)準(zhǔn),起源于Kubernetes SIG-NETWORK興趣小組。從起源的角度看,Gateway API的根基很好,自開源以來備受關(guān)注,并被寄予厚望,它旨在通過一個(gè)聲明性的、可擴(kuò)展的和面向角色的接口來發(fā)展Kubernetes服務(wù)網(wǎng)絡(luò),并希望成為供應(yīng)商的網(wǎng)關(guān)API標(biāo)準(zhǔn),獲得廣泛的行業(yè)支持。簡而言之,Gateway API希望能取代Ingress API。
- 服務(wù)網(wǎng)格或API網(wǎng)關(guān)項(xiàng)目,如Istio、Linkerd、Kong、Contour、Ambassador等都有自己的API標(biāo)準(zhǔn),Gateway API還沒有被用戶很好地接受。
?
- 由于Gateway API沒有強(qiáng)大的用戶基礎(chǔ),缺乏對(duì)功能和經(jīng)驗(yàn)的反饋,因此迭代緩慢。
Gateway API距離成熟、大規(guī)模商用還有多遠(yuǎn)??首先從目前的生態(tài)分析,Gateway API被Kubernetes圈普遍認(rèn)可,包括開源項(xiàng)目、甚至商業(yè)服務(wù)GKE的支持。歸根到底,Gateway API由Kubernetes網(wǎng)絡(luò)組發(fā)起、維護(hù),并且吸引了大量開源網(wǎng)絡(luò)項(xiàng)目的維護(hù)者參與。當(dāng)然實(shí)際背后控制者是Google,Google在開源技術(shù)的領(lǐng)導(dǎo)力毋庸置疑。但是不得不認(rèn)識(shí)到,目前所有Gateway API的支持都處于初級(jí)階段。
其次,從兼容性的角度看,一些成熟的項(xiàng)目,比如Istio,用戶長期以來習(xí)慣了Istio的API標(biāo)準(zhǔn),Istio社區(qū)也不會(huì)貿(mào)然的廢棄原有的API,轉(zhuǎn)而只支持Gateway API。因此這種多種API并存的局面將會(huì)持續(xù)很久,即使在未來Gateway API成熟了。
最后,前面講到Gateway API對(duì)超時(shí)、重試、故障注入等能力預(yù)留了擴(kuò)展能力,但是這種基本的網(wǎng)絡(luò)能力,Gateway API應(yīng)該提供標(biāo)準(zhǔn)的API,而不是讓用戶自己去定義私有的標(biāo)準(zhǔn)。這也違背了Gateway API想要統(tǒng)一服務(wù)網(wǎng)絡(luò)標(biāo)準(zhǔn)的初衷。除此之外,靈活的擴(kuò)展性如果違背了易用性,顯然用戶是不會(huì)買賬的。
綜上所述,筆者認(rèn)為至少在一兩年之內(nèi),Gateway API將會(huì)持續(xù)迭代,短時(shí)間內(nèi)很難形成成熟的標(biāo)準(zhǔn)。或許可以期待,2024年以后服務(wù)網(wǎng)格和API網(wǎng)關(guān)的標(biāo)準(zhǔn)將會(huì)統(tǒng)一。
?