自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從 Ingress 到 Gateway API:淺析云原生網(wǎng)關(guān)演進史

云計算 云原生
今天我們來聊一下云原生網(wǎng)關(guān)的歷史演進歷程:從 Ingress 到 Gateway API。

Hello folks,我是 Luga,今天我們來聊一下云原生網(wǎng)關(guān)的歷史演進歷程:從 Ingress 到 Gateway API。

眾所周知,Kubernetes 網(wǎng)絡(luò)格局正在發(fā)生深刻的變化。傳統(tǒng)的 Kubernetes Ingress 方法正在被一種更強大、更靈活、更具擴展性的標準所補充,甚至在某些情況下被其取代:Kubernetes Gateway API。

Kubernetes 事實上已成為編排和管理容器化應(yīng)用程序的首選平臺,其核心能力之一是管理網(wǎng)絡(luò)流量。網(wǎng)絡(luò)的高效管理對于確保這些應(yīng)用程序的性能和可用性至關(guān)重要。然而,處理 Kubernetes 網(wǎng)絡(luò)的復(fù)雜性通常會導(dǎo)致 Ingress 方法面臨諸多挑戰(zhàn)。雖然 Ingress 是當前管理集群服務(wù)外部流量的標準方法,但在復(fù)雜的環(huán)境中,它往往需要依賴自定義注釋和自定義資源定義 (CRD) 來實現(xiàn)所需的操作,這無疑增加了管理難度和維護成本。

傳統(tǒng)的 Ingress 控制器提供了基本的 HTTP 路由功能,但在面對更復(fù)雜的流量管理需求時,其靈活性和擴展性顯得不足。用戶不得不通過添加各種自定義注釋或引入額外的 CRD 來實現(xiàn)高級功能,如細粒度的流量控制、安全策略、多租戶隔離等。這種方式不僅增加了配置的復(fù)雜性,還可能導(dǎo)致不同環(huán)境下的行為不一致,進而影響系統(tǒng)的穩(wěn)定性和可維護性。

Kubernetes Gateway API 帶來了令人期待的變革。作為一種更現(xiàn)代化的解決方案,Gateway API 提供了一個基于角色的、適應(yīng)性強的框架,與使用 Kubernetes 服務(wù)網(wǎng)絡(luò)的組織角色保持一致,簡化了網(wǎng)絡(luò)管理和流量控制。Gateway API 不僅保留了 Ingress 的優(yōu)點,還在多個方面進行了改進和擴展。它提供了更豐富的路由功能,支持多種協(xié)議和高級流量管理策略,能夠更好地適應(yīng)復(fù)雜的微服務(wù)環(huán)境和高并發(fā)場景。

此外,Gateway API 注重安全性和可擴展性,通過細粒度的策略控制和靈活的配置選項,確保在多租戶環(huán)境下的資源隔離和安全性。它引入了控制平面和數(shù)據(jù)平面的分離,允許不同團隊基于各自的角色和職責,獨立管理和配置流量策略。這不僅提高了系統(tǒng)的可維護性和可擴展性,還增強了團隊協(xié)作的效率。

Ingress :輕松實現(xiàn) Kubernetes 流量路由

在 Kubernetes 中,Ingress 是一個關(guān)鍵的 API 對象,通常被用于管理集群中服務(wù)的外部 IP 訪問。其主要功能是將外部的 HTTP 和 HTTPS 流量路由到集群內(nèi)的相應(yīng)服務(wù),從而提供了一種將外部請求引導(dǎo)至內(nèi)部應(yīng)用的簡便方式。通過定義一組規(guī)則,Ingress 資源控制了這些流量的路由路徑,可以實現(xiàn)多種復(fù)雜的流量管理需求。

Ingress 資源不僅支持基本的 HTTP 和 HTTPS 路由,還可以配置為提供服務(wù)的 SSL/TLS 終止,這意味著它可以處理加密流量并在入口點解除加密,從而減輕后端服務(wù)的負擔。此功能在保證數(shù)據(jù)傳輸安全的同時,提升了系統(tǒng)的整體性能。此外,Ingress 還支持流量負載平衡,通過將外部請求均勻分配到多個后端服務(wù)實例上,確保了服務(wù)的高可用性和可靠性。它還能提供外部可訪問的 URL,使得用戶可以通過域名直接訪問集群中的服務(wù),簡化了對外服務(wù)的配置和管理。

基于名稱的虛擬托管也是 Ingress 的一大特點。通過配置不同的域名和路徑,Ingress 可以將來自同一入口點的流量路由到不同的服務(wù),從而實現(xiàn)同一 IP 地址上的多服務(wù)托管。這對運行多個微服務(wù)的應(yīng)用架構(gòu)尤其有用,可以顯著簡化外部流量的管理。

Ingress 的功能實現(xiàn)通常依賴于 Ingress 控制器。Ingress 控制器是一種專門的組件,它負責監(jiān)控 Ingress 資源的變化并相應(yīng)地配置底層負載均衡器或其他前端設(shè)備。雖然負載均衡器是最常見的 Ingress 控制器實現(xiàn)方式,但它也可以配置其他前端設(shè)備(例如邊緣路由器)來協(xié)助管理流量。這種靈活性使得 Ingress 能夠適應(yīng)各種不同的網(wǎng)絡(luò)拓撲和需求場景。

通過使用 Ingress,用戶可以集中管理集群內(nèi)的服務(wù)訪問,避免了在每個服務(wù)上公開節(jié)點 IP 或者為每個服務(wù)創(chuàng)建單獨的負載均衡器。這不僅簡化了配置管理,還降低了資源消耗和運營成本。因此,Ingress 被廣泛應(yīng)用于 Kubernetes 集群中,成為了管理外部流量訪問的標準方法。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: devops-ingress
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /api
            backend:
              serviceName: api-service
              servicePort: 8080
          - path: /web
            backend:
              serviceName: web-service
              servicePort: 80

其實,從本質(zhì)上來講,起初,Ingress 控制器被引入 Kubernetes 生態(tài)系統(tǒng),以解決集群內(nèi)外部流量的管理問題。Ingress 提供了一種簡潔的方式來定義路由規(guī)則,使得外部請求能夠正確地到達內(nèi)部服務(wù)。通過配置 Ingress 資源,用戶可以實現(xiàn)基于 HTTP 和 HTTPS 的路徑路由、負載均衡以及 SSL 終止等功能。Ingress 控制器作為 Kubernetes 集群中的標準組件,被廣泛采用。

然而,隨著微服務(wù)架構(gòu)的復(fù)雜性增加,Ingress 的局限性逐漸顯現(xiàn)。其配置方式相對簡單,難以滿足復(fù)雜路由規(guī)則和高級流量管理需求。此外,Ingress 缺乏對多租戶隔離、細粒度安全策略等功能的支持,這使得在大規(guī)模應(yīng)用場景中顯得力不從心。

IngressRoute :解鎖 Kubernetes 流量管理的精細化密鑰

Ingress Route 作為 Kubernetes Ingress 的擴展實現(xiàn),旨在解決標準 Kubernetes Ingress 功能有限的問題,為云原生應(yīng)用提供更加豐富、靈活和強大的流量管理能力。它由 Kubernetes Ingress 社區(qū)獨立維護,與眾多流行的 Ingress 控制器相兼容,如 Contour、Nginx Ingress Controller、Envoy 等,為用戶提供了更廣闊的選擇空間。

標準 Kubernetes Ingress 的功能相對較為簡單,主要基于域名和 URL 路徑進行路由轉(zhuǎn)發(fā),缺乏更高級的路由策略和協(xié)議支持。而 Ingress Route 在此基礎(chǔ)上做了大幅增強,提供了諸多強大的功能特性。

apiVersion: contour.heptio.com/v1
kind: IngressRoute
metadata:
  name: devops-ingress-route
spec:
  virtualhost:
    fqdn: example.com
  routes:
    - match: /api
      services:
        - name: api-service
          port: 8080
    - match: /web
      services:
        - name: web-service
          port: 80

通常而言,Ingress Route 主要解決了傳統(tǒng) Ingress 對象在以下幾個方面的問題,具體可參考如下所示:

(1) 配置復(fù)雜性和靈活性

傳統(tǒng) Ingress 使用標準的 Kubernetes Ingress 對象,配置較為簡單,但靈活性有限,尤其是對于復(fù)雜的流量管理需求(如多層次的路徑路由、基于頭信息的路由、加權(quán)路由等)。而 Ingress Route 則提供了更細粒度的控制和配置選項,可以定義更復(fù)雜的路由規(guī)則、流量管理策略等。

(2) TLS管理

傳統(tǒng) Ingress 的 TLS 配置相對簡單,支持單一的 TLS 證書管理,無法輕松地為不同域名或路徑配置不同的 TLS 策略。而 Ingress Route 則通常支持更豐富的 TLS 配置,可以為不同的路由定義獨立的 TLS 證書和策略,從而提高了安全性和管理的靈活性。

(3) 路由規(guī)則的表達能力

傳統(tǒng) Ingress 路由規(guī)則的表達能力有限,主要基于路徑前綴匹配。而 Ingress Route 則支持更復(fù)雜的路由規(guī)則,例如基于請求頭、查詢參數(shù)、路徑等多種條件的路由規(guī)則,滿足更精細的流量管理需求。

(4) 流量分配和負載均衡

傳統(tǒng) Ingress 的負載均衡策略比較簡單,通常是基于輪詢等基本策略。而 Ingress Route 支持更復(fù)雜的流量分配策略,例如加權(quán)輪詢、基于請求屬性的負載均衡、流量鏡像等。

(5) 健康檢查和故障轉(zhuǎn)移

傳統(tǒng) Ingress 健康檢查和故障轉(zhuǎn)移功能相對簡單。Ingress Route 則通常集成了更高級的健康檢查和故障轉(zhuǎn)移功能,能夠更有效地檢測和應(yīng)對后端服務(wù)的故障。

(6) 擴展性和插件支持

傳統(tǒng) Ingress 在擴展性層面支持有限,難以集成自定義的功能或第三方插件。而 Ingress Route 則通常設(shè)計為更易于擴展,可以方便地集成各種自定義功能和第三方插件,以滿足不同的業(yè)務(wù)需求。

總的來說,Ingress Route 雖然為云原生應(yīng)用帶來了更加靈活和強大的流量管理能力,但也同時增加了管理和運維的復(fù)雜度。因此,在采用 Ingress Route 時,需要全面評估其帶來的好處和挑戰(zhàn),并做好相應(yīng)的準備工作,包括團隊技能培養(yǎng)、流程優(yōu)化等,以確保能夠充分發(fā)揮其強大功能,并將復(fù)雜性控制在可管理的范圍內(nèi)。同時,也需要根據(jù)實際需求和團隊情況,選擇合適的 Ingress 控制器,以盡可能減少不必要的復(fù)雜性。只有這樣,才能真正釋放 Ingress Route 的全部潛力,為云原生應(yīng)用提供高效、可靠的流量管理服務(wù)。

Gateway API :云原生時代 API 管理新范式

Kubernetes Gateway API 是由 SIG-NETWORK 社區(qū)管理的一種規(guī)范或標準,旨在統(tǒng)一對 Kubernetes 集群中服務(wù)網(wǎng)絡(luò)的建模和描述方式。它提供了一種靈活且基于角色的接口,讓用戶可以更好地定義和管理 Kubernetes 服務(wù)網(wǎng)絡(luò),從而優(yōu)化服務(wù)暴露、流量管理和安全策略等方面的功能。

作為 Kubernetes 生態(tài)系統(tǒng)中的一項關(guān)鍵規(guī)范,Gateway API 為不同的網(wǎng)絡(luò)解決方案提供了統(tǒng)一的抽象層和模型語義。這種統(tǒng)一性使得各種網(wǎng)絡(luò)解決方案能夠遵循相同的模型和語義,從而極大提高了跨平臺的可移植性和可重用性。用戶無需重新學習新的操作界面和流程,只需在不同環(huán)境和平臺之間無縫切換,即可享受到相同的使用體驗。

對于支持 Gateway API 的項目和公司而言,全面遵守該規(guī)范具有重要意義。這不僅可以確保它們實現(xiàn)了與規(guī)范完全一致的功能和行為,而且還可以獲得 Kubernetes 社區(qū)的大力支持。Gateway API 由活躍的 Kubernetes 社區(qū)集體維護,社區(qū)中的貢獻者們不遺余力地持續(xù)優(yōu)化和完善這一規(guī)范,使其能夠與 Kubernetes 生態(tài)系統(tǒng)的發(fā)展同步演進。因此,支持 Gateway API 的項目和公司可以借助社區(qū)的力量,及時獲得規(guī)范的更新和改進,確保其產(chǎn)品和服務(wù)能夠隨時與最新版本的 Gateway API 保持一致,為用戶提供始終如一的優(yōu)秀體驗。

Gateway API 的推出標志著 Kubernetes 服務(wù)網(wǎng)絡(luò)發(fā)展的一個新里程碑,為適應(yīng)現(xiàn)代化復(fù)雜部署環(huán)境帶來了前所未有的功能支持。這項創(chuàng)新性的技術(shù)為組織在 Kubernetes 環(huán)境中高效管理流量提供了全新的工具,促進了跨部門之間的無縫運營協(xié)作,為構(gòu)建靈活、可擴展的云原生體系架構(gòu)注入了新的動力。

然而,Gateway API 技術(shù)的真正適用性和價值體現(xiàn),取決于其是否與特定組織的架構(gòu)模式和運維理念相契合,是否能夠成功地在不同的團隊和部門之間合理分配工作負荷。Gateway API 的有效性仍有待在實踐中經(jīng)受更多的檢驗和觀察。

毋庸置疑,傳統(tǒng)的 Ingress 規(guī)范一直以其簡單直觀的性質(zhì)而備受青睞,這使得它在處理基本的流量管理場景時游刃有余。但是,當面臨復(fù)雜的多租戶環(huán)境、微服務(wù)架構(gòu)、數(shù)據(jù)平面與控制平面解耦等現(xiàn)代化需求時,Ingress 規(guī)范的局限性就暴露無遺了。

與之相比,Gateway API 憑借其增強的安全性、職責分離以及更豐富的功能集,為組織提供了一種全新的選擇方案。通過將控制平面和數(shù)據(jù)平面進行邏輯上的分離,Gateway API 實現(xiàn)了對流量管理職責的合理劃分,使得網(wǎng)絡(luò)管理員和應(yīng)用開發(fā)人員能夠各司其職,提高了運維效率。同時,它支持豐富的流量控制策略、安全加固機制以及與服務(wù)網(wǎng)格的無縫集成,為組織構(gòu)建更加健壯、可靠的云原生應(yīng)用系統(tǒng)奠定了堅實基礎(chǔ)。

當然,我們也需要清醒地認識到,Gateway API 作為一種新興技術(shù),其成熟度和生態(tài)建設(shè)仍有待時日。許多組織或許會秉持保守策略,繼續(xù)選擇 Ingress 規(guī)范,除非 Gateway API 真正展現(xiàn)出其無可替代的優(yōu)勢。但無疑,對于那些追求卓越、渴望構(gòu)建下一代云原生應(yīng)用平臺的組織而言,Gateway API 值得被重點關(guān)注和評估。

因此,總的來說,Gateway API 的出現(xiàn)為 Kubernetes 生態(tài)注入了全新的活力,為云原生架構(gòu)的發(fā)展路徑提供了更多可能性。作為一種具有變革性意義的技術(shù)創(chuàng)新,將如何與組織內(nèi)部的運維實踐、架構(gòu)模式相互融合、相互影響,如何在云原生領(lǐng)域掀起新的發(fā)展浪潮,這一切都將是非常值得期待和關(guān)注的。

Reference :

  • [1] https://traefik.io/blog/getting-started-with-kubernetes-gateway-api-and-traefik/
  • [2] https://avinetworks.com/glossary/kubernetes-ingress-services/
責任編輯:趙寧寧 來源: 架構(gòu)驛站
相關(guān)推薦

2024-10-14 10:04:51

2024-11-25 12:30:00

云原生云原生網(wǎng)關(guān)

2022-05-19 10:52:20

云原生網(wǎng)關(guān)技術(shù)

2019-07-02 14:17:18

API網(wǎng)關(guān)網(wǎng)關(guān)流量

2024-01-30 07:58:41

KubernetesGAMMA網(wǎng)關(guān)

2025-04-30 10:55:46

2022-03-02 09:31:42

Serverless微服務(wù)架構(gòu)

2021-10-14 09:51:17

架構(gòu)運維技術(shù)

2020-08-28 08:29:40

云原生微服務(wù)編程

2022-12-23 08:58:35

字節(jié)跳動YARN架構(gòu)

2023-09-26 08:48:29

2022-06-02 08:37:10

架構(gòu)DDDMVC

2020-10-21 10:04:56

云原生應(yīng)用架構(gòu)

2014-01-07 09:02:59

2015-04-03 09:19:06

2021-07-12 05:01:11

云原生軟件架構(gòu)

2024-05-07 08:07:30

云原生

2015-04-07 11:05:15

VMwareOpenStack

2023-12-03 09:09:00

NAT云網(wǎng)關(guān)

2024-01-09 09:08:44

聯(lián)合網(wǎng)關(guān)服務(wù)
點贊
收藏

51CTO技術(shù)棧公眾號