1. Apache APISIX Ingress 定義
在 K8s 生態(tài)中,Ingress 作為表示 K8s 流量入口的一種資源,想要讓其生效,就需要有一個(gè) Ingress Controller 去監(jiān)聽 K8s 中的 Ingress 資源,并對這些資源進(jìn)行相應(yīng)規(guī)則的解析和實(shí)際承載流量。在當(dāng)下趨勢中,像 Kubernetes Ingress Nginx 就是使用最廣泛的 Ingress Controller 實(shí)現(xiàn)。 而 APISIX Ingress 則是另一種 Ingress Controller 的實(shí)現(xiàn)。跟 Kubernetes Ingress Nginx 的區(qū)別主要在于 APISIX Ingress 是以 Apache APISIX 作為實(shí)際承載業(yè)務(wù)流量的數(shù)據(jù)面。如下圖所示,當(dāng)用戶請求到具體的某一個(gè)服務(wù)/API/網(wǎng)頁時(shí),通過外部代理將整個(gè)業(yè)務(wù)流量/用戶請求傳輸?shù)?K8s 集群,然后經(jīng)過 APISIX Ingress 進(jìn)行后續(xù)處理。 從上圖可以看到,APISIX Ingress 分成了兩部分。一部分是 APISIX Ingress Controller,作為控制面它將完成配置管理與分發(fā)。另一部分 APISIX Proxy Pod 負(fù)責(zé)承載業(yè)務(wù)流量,它是通過 CRD(Custom Resource Definitions)的方式實(shí)現(xiàn)的。Apache APISIX Ingress 除了支持自定義資源外,還支持原生的 K8s Ingress 資源。 ?
2. Apache APISIX 簡述
前邊我們提到了 APISIX Ingress 是采用 Apache APISIX 作為實(shí)際承載業(yè)務(wù)流量的數(shù)據(jù)面,那么 Apache APISIX 項(xiàng)目又是做什么的呢? Apache APISIX 是 Apache 基金會旗下的頂級開源項(xiàng)目,也是當(dāng)前最活躍的開源網(wǎng)關(guān)項(xiàng)目。作為一個(gè)動(dòng)態(tài)、實(shí)時(shí)、高性能的開源 API 網(wǎng)關(guān),Apache APISIX 提供了負(fù)載均衡、動(dòng)態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認(rèn)證、可觀測性等豐富的流量管理功能。 Apache APISIX 可以幫助企業(yè)快速、安全地處理 API 和微服務(wù)流量,比如限流認(rèn)證、日志安全功能,以及支持豐富的自定義插件。目前也與很多開源項(xiàng)目如 Apache SkyWalking、Prometheus 等之類的組件進(jìn)行了相關(guān)集成。 ?
3. APISIX Ingress vs K8s Ingress Nginx
1)配置層面
在 APISIX Ingress 中,我們增加了一些豐富且靈活的配置,比如通過單個(gè)配置文件去實(shí)現(xiàn)灰度部署。但在 K8s Ingress Nginx 中去實(shí)現(xiàn)如上效果的話,最少也需要有兩個(gè) Ingress 資源文件才可以完成。
2)豐富度
在豐富度上,由于 Apache APISIX 本身的自帶功能豐富且允許多種插件擴(kuò)展使用,所以使用 APISIX Ingress 就可以省去自己額外配置功能的繁瑣步驟,可以將更多的時(shí)間投入到實(shí)際開發(fā)中。
3)架構(gòu)分離
APISIX Ingress 采用了數(shù)據(jù)面與控制面的分離架構(gòu),所以用戶可以選擇將數(shù)據(jù)面部署在 K8s 集群內(nèi)部/外部。但 K8s Ingress Nginx 是將控制面和數(shù)據(jù)面放在了同一個(gè) Pod 中,如果 Pod 或控制面出現(xiàn)一點(diǎn)閃失,整個(gè) Pod 就會掛掉,進(jìn)而影響到業(yè)務(wù)流量。 這種架構(gòu)分離,給用戶提供了比較方便的部署選擇,同時(shí)在業(yè)務(wù)架構(gòu)調(diào)整場景下,也方便進(jìn)行相關(guān)數(shù)據(jù)的遷移與使用。
4. APISIX Ingress 特性詳解
由于 Apache APISIX 是一個(gè)全動(dòng)態(tài)的高性能網(wǎng)關(guān),所以在 APISIX Ingress 自身就支持了全動(dòng)態(tài),包括路由、SSL 證書、上游以及插件等等。 同時(shí) APISIX Ingress 還具有以下特性:
支持 CRD,更容易理解聲明式配置;同時(shí)狀態(tài)檢查可保證快速掌握聲明配置的同步狀態(tài);
支持高級路由匹配規(guī)則以及自定義資源,可與 Apache APISIX 官方 50 多個(gè)插件 & 客戶自定義插件進(jìn)行擴(kuò)展使用;
支持 K8s 原生 Ingress 配置;
支持流量切分;
支持 gRPC plaintext 與 TCP 4 層代理;
服務(wù)自動(dòng)注冊發(fā)現(xiàn),無懼?jǐn)U縮容;
更靈活的負(fù)載均衡策略,自帶健康檢查功能;
責(zé)任編輯:彭菁
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6808瀏覽量
88743 -
API
+關(guān)注
關(guān)注
2文章
1472瀏覽量
61749 -
流量
+關(guān)注
關(guān)注
0文章
243瀏覽量
23872 -
生態(tài)鏈
+關(guān)注
關(guān)注
0文章
66瀏覽量
9886
原文標(biāo)題:Apache APISIX了解下
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論