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

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

什么是Gateway API?

Gateway API是由SIG-NETWORK社區(qū)管理的開源項目。它包含了在Kubernetes中對服務(wù)網(wǎng)絡(luò)建模的資源集合。這些資源包括GatewayClass,Gateway,HTTPRoute,TCPRoute,Service等。他們可以由不同的供應(yīng)商實現(xiàn),同時保持通用的行業(yè)支持能力,以可擴展和面向角色的接口形式來實現(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的實施者,以下資源都將幫助您提供必要的背景知識:

接口概述

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

用戶指南

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

網(wǎng)關(guān)控制器實現(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è)計目標。它們展示了GatewayAPI與以往規(guī)范(例如Ingress)的關(guān)系,及特點。

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

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

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

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

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

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

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

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

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

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

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

群集操作員可以在某種GatewayClass下創(chuàng)建Gateway資源。這個Gateway部署或配置代表的是基礎(chǔ)網(wǎng)絡(luò)資源。這時,集群操作員可以在Gateway上顯式聲明集中控制策略(如TLS),允許什么樣的Route可以綁定在此Gateway上。通過Route和Gateway的綁定,應(yīng)用開發(fā)者團隊可以在自己的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ā)者團隊在自己的命名空間中,可以選擇性的將某些Route附加到共享Gateway上,從而允許獨立控制各個應(yīng)用的路由邏輯。

Route:

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

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

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

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

640 (1).png

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

Gateway適合于哪些場景?

Gateway API是一個SIG網(wǎng)絡(luò)項目,旨在改進和標準化Kubernetes中的服務(wù)網(wǎng)絡(luò)。當前和正在進行的實現(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

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

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:F5 Inc
版權(quán)說明:本文內(nèi)容來自于F5 Inc,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
F5全新報告揭示AI時代API安全面臨嚴峻挑戰(zhàn)
F5全新報告揭示AI時代API安全面臨嚴峻挑戰(zhàn)
F5日前發(fā)布《2024年應(yīng)用策略現(xiàn)狀報告:API安全》(以下簡稱為“報告”),揭示了跨行業(yè)API安全面臨的嚴峻現(xiàn)狀。
AI
F5 Networks
云服務(wù)
2024-12-10
F5推出AI網(wǎng)關(guān),管理并保護快速增長的AI流量和應(yīng)用需求
F5推出AI網(wǎng)關(guān),管理并保護快速增長的AI流量和應(yīng)用需求
F5(NASDAQ:FFIV)日前宣布推出搶先體驗版F5 AI網(wǎng)關(guān)(AI Gateway),以簡化企業(yè)在推動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,一項全新的創(chuàng)新AI應(yīng)用交付和應(yīng)用安全解決方案,旨在為服務(wù)提供商和大型企業(yè)提供集中控制點,以加速、保護和簡化流入和流出大型人工智能(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ù)報告》(以下簡稱“報告”),該報告對全球企業(yè)數(shù)字化轉(zhuǎn)型工作進行全面分析,強調(diào)了生成式人工智能(AI)的顯著影響及其在推動各行業(yè)數(shù)字化成熟度方面的關(guān)鍵作用。
F5 Networks
云服務(wù)
2024-11-02
優(yōu)質(zhì)服務(wù)商推薦
更多