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