技術(shù)好文 | 什么是Gateway API?

來源:F5 Inc
作者:宗兆偉
時(shí)間:2023-08-07
1112
Gateway API是由SIG-NETWORK社區(qū)管理的開源項(xiàng)目。它包含了在Kubernetes中對服務(wù)網(wǎng)絡(luò)建模的資源集合。

什么是Gateway API?

Gateway API是由SIG-NETWORK社區(qū)管理的開源項(xiàng)目。它包含了在Kubernetes中對服務(wù)網(wǎng)絡(luò)建模的資源集合。這些資源包括GatewayClass,Gateway,HTTPRoute,TCPRoute,Service等。他們可以由不同的供應(yīng)商實(shí)現(xiàn),同時(shí)保持通用的行業(yè)支持能力,以可擴(kuò)展和面向角色的接口形式來實(shí)現(xiàn)Kubernetes服務(wù)網(wǎng)絡(luò)的工業(yè)化支持。

SIG-NETWORK:

https://github.com/kubernetes/community/tree/master/sig-network

640.png

資源參考

無論您是有興趣使用Gateway API,還是Gateway API的實(shí)施者,以下資源都將幫助您提供必要的背景知識:

接口概述

https://gateway-api.sigs.k8s.io/concepts/api-overview

用戶指南

https://gateway-api.sigs.k8s.io/guides

網(wǎng)關(guān)控制器實(shí)現(xiàn)

https://gateway-api.sigs.k8s.io/implementations

API參考規(guī)范

https://gateway-api.sigs.k8s.io/references/spec

社區(qū)鏈接

https://gateway-api.sigs.k8s.io/contributing/community

開發(fā)者指南

https://gateway-api.sigs.k8s.io/contributing/devguide

Gateway API基本概念

Gateway API的概念來源于以下的設(shè)計(jì)目標(biāo)。它們展示了GatewayAPI與以往規(guī)范(例如Ingress)的關(guān)系,及特點(diǎn)。

面向角色–我們在實(shí)際部署中的網(wǎng)關(guān),是由一系列API資源組成,這些資源共同描述Kubernetes服務(wù)網(wǎng)絡(luò)模型。

可移植性-這雖然不是改進(jìn),但是作為新一代Kubernetes網(wǎng)絡(luò)建模,是不可或缺的考慮方面。正如Ingress作為通用規(guī)范,擁有眾多實(shí)現(xiàn)(https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)一樣,Gateway API也被設(shè)計(jì)為可移植的,可在多個(gè)實(shí)現(xiàn)間切換。

更多表現(xiàn)能力–Gateway API資源支持許多核心功能,例如基于HTTP標(biāo)頭的匹配、流量權(quán)重和其他功能,這些功能在Ingress中只能通過自定義注釋(annotation)實(shí)現(xiàn)。

可擴(kuò)展–Gateway API允許在API的各個(gè)層鏈接自定義資源。這使得在API結(jié)構(gòu)中的適當(dāng)位置進(jìn)行精細(xì)定制成為可能。

其他一些值得注意的功能包括:

GatewayClasses–GatewayClass指定了負(fù)載平衡實(shí)現(xiàn)的類型。這些類使用戶能夠輕松明確地了解通過Kubernetes資源模型提供哪些功能。

共享Gateways和跨命名空間(namespace)支持-它們允許獨(dú)立的路由資源附加到同一gateway來共享負(fù)載均衡器和VIP。這允許團(tuán)隊(duì)(甚至跨命名空間)安全地共享基礎(chǔ)結(jié)構(gòu),而無需相互協(xié)調(diào)。

類型化路由(Typed Routes)和類型化后端服務(wù)-Gateway API支持類型化路由資源以及不同類型的后端。這使得API能夠靈活地支持各種協(xié)議(如HTTP和gRPC)和各種后端目標(biāo)(如Kubernetes服務(wù)、存儲或函數(shù))。

為什么面向角色的API很重要?

無論是數(shù)據(jù)中心還是Kubernetes集群,基礎(chǔ)設(shè)施都是為共享而構(gòu)建的。然而,共享基礎(chǔ)設(shè)施帶來了一個(gè)共同的挑戰(zhàn)-如何在保持基礎(chǔ)設(shè)施所有者控制的同時(shí)為基礎(chǔ)設(shè)施用戶提供靈活性?

Gateway API通過面向角色的Kubernetes服務(wù)網(wǎng)絡(luò)設(shè)計(jì)來實(shí)現(xiàn)這一點(diǎn),該設(shè)計(jì)在使用分布靈活性和集中控制之間取得平衡。它允許共享網(wǎng)絡(luò)基礎(chǔ)設(shè)施(例如,硬件負(fù)載平衡器、云網(wǎng)絡(luò)、集群托管代理等)可以被許多上層不同的非協(xié)調(diào)團(tuán)隊(duì)(例如應(yīng)用開發(fā)團(tuán)隊(duì))使用,使用過程受到集群運(yùn)營商設(shè)置的策略的約束。以下示例顯示了這在實(shí)踐中的工作原理。

群集操作員可以在某種GatewayClass下創(chuàng)建Gateway資源。這個(gè)Gateway部署或配置代表的是基礎(chǔ)網(wǎng)絡(luò)資源。這時(shí),集群操作員可以在Gateway上顯式聲明集中控制策略(如TLS),允許什么樣的Route可以綁定在此Gateway上。通過Route和Gateway的綁定,應(yīng)用開發(fā)者團(tuán)隊(duì)可以在自己的namespace中發(fā)布自己的應(yīng)用,并通過Gateway將應(yīng)用發(fā)布出去供外部訪問。

GatewayClass:

https://gateway-api.sigs.k8s.io/api-types/gatewayclass

Gateway:

https://gateway-api.sigs.k8s.io/api-types/gateway

TLS:

https://gateway-api.sigs.k8s.io/guides/tls#downstream-tls

Route:

https://gateway-api.sigs.k8s.io/concepts/api-overview#attaching-routes-to-gateways

namespace:

https://gateway-api.sigs.k8s.io/guides/multiple-ns

另外,應(yīng)用開發(fā)者團(tuán)隊(duì)在自己的命名空間中,可以選擇性的將某些Route附加到共享Gateway上,從而允許獨(dú)立控制各個(gè)應(yīng)用的路由邏輯。

Route:

https://gateway-api.sigs.k8s.io/guides/http-routing

這樣,集群操作員和應(yīng)用開發(fā)者團(tuán)隊(duì)就可以分別操作于自己的控制平面,集群操作員控制網(wǎng)關(guān)的配置以控制入口策略,而應(yīng)用開發(fā)者團(tuán)隊(duì)負(fù)責(zé)調(diào)配跟應(yīng)用相關(guān)的路由策略(例如根據(jù)url或者h(yuǎn)eader等信息實(shí)現(xiàn)應(yīng)用流量分流等等)。

應(yīng)用流量分流:

https://gateway-api.sigs.k8s.io/guides/traffic-splitting

640 (1).png

這種靈活性使Gateway API能夠適應(yīng)截然不同的組織模型和實(shí)現(xiàn),但同時(shí)保持可移植的特性。

Gateway適合于哪些場景?

Gateway API是一個(gè)SIG網(wǎng)絡(luò)項(xiàng)目,旨在改進(jìn)和標(biāo)準(zhǔn)化Kubernetes中的服務(wù)網(wǎng)絡(luò)。當(dāng)前和正在進(jìn)行的實(shí)現(xiàn)包括BIG-IP,Contour,Emissary-Ingress,Google Kubernetes引擎(GKE),NGINX,Istio,Kong和Traefik等等。

SIG網(wǎng)絡(luò):

https://github.com/kubernetes/community/tree/master/sig-network

讀者可以查看實(shí)現(xiàn)參考:https://gateway-api.sigs.k8s.io/implementations/,了解支持Gateway的最新項(xiàng)目和產(chǎn)品。如果您有興趣使用網(wǎng)關(guān)API貢獻(xiàn)或構(gòu)建實(shí)現(xiàn),也非常歡迎參與其中:https://gateway-api.sigs.k8s.io/contributing/community!

立即登錄,閱讀全文
原文鏈接:點(diǎn)擊前往 >
文章來源:F5 Inc
版權(quán)說明:本文內(nèi)容來自于F5 Inc,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
F5全新報(bào)告揭示AI時(shí)代API安全面臨嚴(yán)峻挑戰(zhàn)
F5全新報(bào)告揭示AI時(shí)代API安全面臨嚴(yán)峻挑戰(zhàn)
F5日前發(fā)布《2024年應(yīng)用策略現(xiàn)狀報(bào)告:API安全》(以下簡稱為“報(bào)告”),揭示了跨行業(yè)API安全面臨的嚴(yán)峻現(xiàn)狀。
AI
F5 Networks
云服務(wù)
2024-12-10
F5推出AI網(wǎng)關(guān),管理并保護(hù)快速增長的AI流量和應(yīng)用需求
F5推出AI網(wǎng)關(guān),管理并保護(hù)快速增長的AI流量和應(yīng)用需求
F5(NASDAQ:FFIV)日前宣布推出搶先體驗(yàn)版F5 AI網(wǎng)關(guān)(AI Gateway),以簡化企業(yè)在推動(dòng)AI部署過程中應(yīng)用、API和大語言模型(LLMs)間的交互。
AI
F5 Networks
云服務(wù)
2024-11-27
F5搭載NVIDIA BlueField-3 DPU賦能加速AI應(yīng)用交付
F5搭載NVIDIA BlueField-3 DPU賦能加速AI應(yīng)用交付
F5(NASDAQ:FFIV)日前宣布推出BIG-IP Next for Kubernetes,一項(xiàng)全新的創(chuàng)新AI應(yīng)用交付和應(yīng)用安全解決方案,旨在為服務(wù)提供商和大型企業(yè)提供集中控制點(diǎn),以加速、保護(hù)和簡化流入和流出大型人工智能(AI)基礎(chǔ)設(shè)施的數(shù)據(jù)流量。
F5 Networks
云服務(wù)
2024-11-03
F5研究顯示:企業(yè)加速IT發(fā)展,以充分挖掘生成式AI潛力
F5研究顯示:企業(yè)加速IT發(fā)展,以充分挖掘生成式AI潛力
F5(NASDAQ:FFIV)日前發(fā)布《2024年數(shù)字化企業(yè)成熟度指數(shù)報(bào)告》(以下簡稱“報(bào)告”),該報(bào)告對全球企業(yè)數(shù)字化轉(zhuǎn)型工作進(jìn)行全面分析,強(qiáng)調(diào)了生成式人工智能(AI)的顯著影響及其在推動(dòng)各行業(yè)數(shù)字化成熟度方面的關(guān)鍵作用。
F5 Networks
云服務(wù)
2024-11-02
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家