溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Kubernetes中Ingress API如何使用

發(fā)布時(shí)間:2021-08-12 16:35:31 來(lái)源:億速云 閱讀:125 作者:Leah 欄目:云計(jì)算

本篇文章給大家分享的是有關(guān)Kubernetes中Ingress API如何使用,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來(lái)看看吧。

Ingress資源的設(shè)計(jì)和目的

Kubernetes集群的最簡(jiǎn)單描述是在容器中運(yùn)行應(yīng)用程序的一組受管節(jié)點(diǎn)。在大多數(shù)情況下,Kubernetes集群中的節(jié)點(diǎn)不會(huì)直接暴露于公共互聯(lián)網(wǎng)。這是有道理的,因?yàn)閷⑺蟹?wù)公開在一個(gè)節(jié)點(diǎn)上會(huì)帶來(lái)不可思議的風(fēng)險(xiǎn)。為了向公眾提供對(duì)選定服務(wù)的訪問,Kubernetes提供了Ingress資源。

Ingress資源公開了從群集外部到其中的選定服務(wù)的HTTP和HTTPS路由。Ingress資源還提供控制流量的規(guī)則。這使得Ingress資源成為處理大量獨(dú)立服務(wù)提供的各種API的理想解決方案。為此,它為所有客戶端提供一個(gè)入口點(diǎn),然后處理對(duì)后端服務(wù)的請(qǐng)求。這通常稱為扇出配置。

Kubernetes中Ingress API如何使用

還可以為基于名稱的虛擬主機(jī)設(shè)置Ingress資源,該資源將基于主機(jī)頭路由請(qǐng)求:

Kubernetes中Ingress API如何使用

為了使Ingress資源正常工作,需要在Kubernetes集群上安裝Ingress控制器。控制器在Kubernetes集群和現(xiàn)有的各種面向公眾的接口之間建立了橋梁。例如,大多數(shù)托管Kubernetes的云提供商都提供了一個(gè)獨(dú)特的Ingress控制器,以與他們規(guī)定的面向公眾的方法對(duì)接。各個(gè)控制器的操作彼此不同,并且可以提供不同數(shù)量的附加功能。

使用Ingress通過CI / CD管道管理API生命周期的好處

Ingress資源是通過聲明性配置文件定義的,該文件通常在YAML中進(jìn)行描述。這與所有Kubernetes資源一致,并允許直接集成到現(xiàn)代部署模式中,例如CI / CD的組合實(shí)踐。這就是快速,頻繁且安全地部署Ingress更改的能力。這樣,可以將Ingress資源與應(yīng)用程序本身合并到相同類型的軟件開發(fā)生命周期模式中。

開發(fā)人員如何使用Kong for Kubernetes完成Ingress

面向Kubernetes的Kong是一個(gè)流行的開源且與云無(wú)關(guān)的Ingress控制器。Kong for Kubernetes入口控制器是作為Kubernetes中的自定義資源定義(CRD)構(gòu)建的。這為那些已經(jīng)習(xí)慣在該平臺(tái)內(nèi)定義資源的人提供了Kubernetes原生體驗(yàn)。

像您的應(yīng)用程序和服務(wù)一樣,可以通過Manifest,Helm或Kustomize安裝Kong for Kubernetes。

Kong for Kubernetes Ingress Controller通過提供廣泛的插件集來(lái)擴(kuò)展Ingress資源的功能,這些插件涵蓋了包括身份驗(yàn)證,分析,監(jiān)視以及請(qǐng)求和響應(yīng)轉(zhuǎn)換在內(nèi)的各種功能,僅舉幾例。通過在Ingress控制器上提供這些常見(有時(shí)不是很常見)的要求,Kong for Kubernetes可使開發(fā)人員將更多精力放在服務(wù)的核心要求上。當(dāng)組織從少數(shù)的單一應(yīng)用程序遷移到數(shù)百個(gè)(甚至數(shù)千個(gè))微服務(wù)時(shí),其價(jià)值變得尤為明顯。

有關(guān)常見插件的列表,請(qǐng)?jiān)L問 https://docs.konghq.com/hub/。

Kong插件被定義為Kubernetes資源,其中的config部分提供了各個(gè)插件的設(shè)置。以下是一個(gè)限速插件示例,該插件將流量限制為每分鐘五個(gè)請(qǐng)求:

Kubernetes中Ingress API如何使用

通過在資源的元數(shù)據(jù)部分中的簡(jiǎn)單注釋即可將Kong插件添加到Kubernetes資源中。這允許將插件應(yīng)用于不同的層。例如,您可以將一個(gè)插件應(yīng)用于整個(gè)Ingress資源,或者以一種更細(xì)粒度的方式將其應(yīng)用于單個(gè)服務(wù)資源。

這是將上述插件應(yīng)用于Ingress資源的示例:

Kubernetes中Ingress API如何使用

Kong for Kubernetes還可以集成到Kong Enterprise產(chǎn)品的完整套件中,包括Kong Studio,Kong Dev Portal,Kong Manager, Kong Brain和Kong Immunity。這樣就可以使用更高級(jí)的Kong插件以及完整的API生命周期解決方案。這套產(chǎn)品涵蓋API規(guī)范的創(chuàng)作和發(fā)布,以及Kong資源的管理,甚至流量分析。

您可以采用“規(guī)范優(yōu)先”的方法來(lái)使用Kong Studio開發(fā)API。在該庫(kù)中,您將找到用于在標(biāo)準(zhǔn)OpenAPI規(guī)范中編寫文檔的工具以及用于立即反饋的測(cè)試工具。Kong Studio還提供了使用GraphQL的工具。Kong Studio直接同步到Git,這可以將您的規(guī)格文件集成到CI / CD工作流程中,從而可以自動(dòng)更新Kong Dev Portal。

Kong Dev Portal托管您的API文檔(可以是私人的也可以是公共的)。它具有極高的可定制性,可讓您使其適應(yīng)組織的風(fēng)格和品牌。擁有完善文檔的API對(duì)于提高生產(chǎn)力很重要,并且在Kong Studio和Dev Portal之間進(jìn)行良好管理的流程可以幫助確保文檔盡可能保持最新。

Kong Manager提供了圖形界面來(lái)觀察和管理整個(gè)Kong產(chǎn)品套件。從這里,您可以觀察路由,服務(wù)和插件之間的關(guān)系。您可以實(shí)時(shí)了解流量并跟蹤消費(fèi)者。

Kong Brain會(huì)分析通過Ingress的流量,并創(chuàng)建服務(wù)間依賴關(guān)系的可視服務(wù)圖。它還具有根據(jù)生成的地圖自動(dòng)生成OpenAPI規(guī)范文檔的功能。這是一項(xiàng)有價(jià)值的功能,因?yàn)榧词钩鲇谧罴岩鈭D,也可能無(wú)法正確記錄所部署的服務(wù)。

Kong Immunity會(huì)分析通過Ingress的所有流量,并學(xué)習(xí)識(shí)別異常的模式。這些通常是微妙的請(qǐng)求,它們并不引人注目,但可能會(huì)引起人們的興趣,例如不斷嘗試通過的未知參數(shù)。這也是一個(gè)非常有價(jià)值的功能,因?yàn)閷⑦@些針刺入成千上萬(wàn)個(gè)日志條目的大海撈針并不容易。

Kubernetes中Ingress API如何使用

充分利用Ingress

Kubernetes入口資源提供了從外部Kubernetes到內(nèi)部后端服務(wù)的單個(gè)入口點(diǎn)。通過利用聲明性定義文件,可以像對(duì)待所有其他形式的代碼一樣對(duì)待Ingress資源,并將其集成到常見的軟件開發(fā)生命周期中。

為了橋接Kubernetes之外的通信,需要一個(gè)Ingress控制器。Kong for Kubernetes是一個(gè)Ingress控制器,它使用自定義資源定義通過提供大量插件來(lái)極大地?cái)U(kuò)展Ingress資源的功能,從而使開發(fā)人員可以專注于核心業(yè)務(wù)價(jià)值。Kong擁有一套企業(yè)工具,可以在整個(gè)API生命周期內(nèi)極大地提高生產(chǎn)力和安全性。

以上就是Kubernetes中Ingress API如何使用,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI