Apache APISIX Ingress Controller 首個 GA 版本 v1.0 正式發(fā)布!
關(guān)于 Apache APISIX Ingress Controller
Apache APISIX Ingress Controller 是一個使用 Apache APISIX 作為數(shù)據(jù)面承載流量的云原生 Ingress Controller 實現(xiàn),采用 CRD 的方式對 Kubernetes 進(jìn)行了擴(kuò)展。
可支持使用包括 ApisixRoute、ApisixUpstream 等自定義資源,以及 Kubernetes 原生 Ingress 資源等控制外部流量訪問部署在 Kubernetes 中的服務(wù)。
整體架構(gòu)如下:

v1.0 最新特性
增加 ApisixConsumer 自定義資源使配置認(rèn)證更方便
在之前的版本中,如果想要配置 keyAuth 或者 basicAuth 需要手動去調(diào)用 Apache APISIX 的 admin api 創(chuàng)建 consumer 配置。
在 v1.0 版本中,我們增加了 ApisixConsumer 資源,用戶可以使用更原生的方式來定義 consumer 資源及為 ApisixRoute 配置認(rèn)證。
例如通過以下配置定義一個 keyAuth 資源:
apiVersion: apisix.apache.org/v2alpha1
kind: ApisixConsumer
metadata:
name: keyauth
spec:
authParameter:
keyAuth:
value:
key: API
在 ApisixRoute 中只需要增加對應(yīng)類型的 authentication 配置即可。
apiVersion: apisix.apache.org/v2alpha1
kind: ApisixRoute
metadata:
name: httpbin-route
spec:
http:
...
authentication:
enable: true
type: keyAuth
為 ApisixTls 增加 mTLS 支持
在 v1.0 版本中我們也為 ApisixTls 自定義資源增加了 mTLS 的支持,只需要在 ApisixTls 資源的配置中增加 client 配置即可,例如:
apiVersion: apisix.apache.org/v1
kind: ApisixTls
metadata:
name: sample-tls
spec:
...
client:
caSecret:
name: client-ca-secret
namespace: default
為原生 Ingress 資源增加了更多 annotation 來豐富其功能
k8s.apisix.apache.org/blocklist-source-range可對來源 IP 進(jìn)行限制;k8s.apisix.apache.org/rewrite-target和k8s.apisix.apache.org/rewrite-target-regex可進(jìn)行 target 的 rewrite 操作;k8s.apisix.apache.org/http-to-https可進(jìn)行 HTTP 到 HTTPS 的強制重定向;
更多特性變更請參考項目 CHANGELOG 。
為什么使用 APISIX Ingress Controller
Apache APISIX Ingress Controller 使用 Apache APISIX 作為其數(shù)據(jù)面承載業(yè)務(wù)流量,所以其從 Apache APISIX 繼承了如下優(yōu)勢:
高性能 & 穩(wěn)定性:Apache APISIX 是一款云原生高性能動態(tài) API 網(wǎng)關(guān),已在眾多企業(yè)大規(guī)模流量場景下使用,其性能及穩(wěn)定性久經(jīng)考驗。 生態(tài)豐富:Apache APISIX 是當(dāng)前最活躍的開源網(wǎng)關(guān)項目,作為 Apache 頂級項目,無論是社區(qū)活躍度還是其插件生態(tài)都非常豐富,可滿足用戶的多種使用場景和需求;
此外,由于 APISIX Ingress Controller 還具備如下獨有的優(yōu)勢:
兼容性好:支持多個 Ingress 資源版本,在不同的 Kubernetes 版本中均可正常工作; 動態(tài)更新:無論是 Ingress 資源或是證書等配置的更新,均已實現(xiàn)熱加載,無需 reload,保障業(yè)務(wù)平穩(wěn)運行; 擴(kuò)容靈活:由于 APISIX Ingress Controller 采用控制面和數(shù)據(jù)面分離的架構(gòu),所以在擴(kuò)容時,可以單獨擴(kuò)容 Apache APISIX 這個數(shù)據(jù)面集群,而無須對 Apache APISIX Ingress Controller 進(jìn)行擴(kuò)容; 運維友好:在當(dāng)前架構(gòu)下,用戶可按實際情況選擇將數(shù)據(jù)面 Apache APISIX 集群部署在 Kubernetes 集群中,或是部署在物理機(jī)環(huán)境。且 Apache APISIX Ingress Controller 故障不會對業(yè)務(wù)流量造成任何影響。
關(guān)于 Apache APISIX
Apache APISIX 是一個動態(tài)、實時、高性能的 API 網(wǎng)關(guān),提供負(fù)載均衡、動態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認(rèn)證、可觀測性等豐富的流量管理功能。
你可以使用 Apache APISIX 處理傳統(tǒng)的南北向流量,以及服務(wù)間的東西向流量,也可以當(dāng)做 Kubernetes Ingress Controller 來使用。Apache APISIX 不僅覆蓋了 NGINX 的傳統(tǒng)功能,在可觀測性上也和 SkyWalking 深度合作,大大提升了服務(wù)治理能力。

Apache APISIX 技術(shù)架構(gòu)圖
Apache APISIX 于 2019 年 4 月由深圳支流科技(api7.ai)創(chuàng)建,同年 6 月開源,10 月進(jìn)入 Apache 孵化器,也是在這短短兩年的時間,APISIX 成為了 Apache 頂級項目。支流科技(api7.ai)對應(yīng)的商業(yè)化產(chǎn)品名字叫 API7。
全球已有數(shù)百家企業(yè)使用 Apache APISIX 處理關(guān)鍵業(yè)務(wù)流量,涵蓋金融、互聯(lián)網(wǎng)、制造、零售、運營商等等,比如美國航空航天局(NASA)、歐盟的數(shù)字工廠、中國航信、中國移動、騰訊、華為、微博、網(wǎng)易、貝殼找房、360、泰康、奈雪的茶等等。生活中,當(dāng)你去買機(jī)票、刷微博、買奶茶的時候,背后的關(guān)鍵流量都是由 Apache APISIX 處理的。
- END -
「技術(shù)分享」某種程度上,是讓作者和讀者,不那么孤獨的東西。歡迎關(guān)注我的微信公眾號:「Kirito的技術(shù)分享」
