ALB Ingress概述
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務(wù)造成影響,請務(wù)必仔細閱讀。
為了更好地支持云原生場景,應(yīng)用型負載均衡ALB(Application Load Balancer)與云原生服務(wù)實現(xiàn)深度集成,推出了ALB Ingress-阿里云官方云原生Ingress網(wǎng)關(guān)。阿里云容器服務(wù)ACK/ACK Serverless等Kubernetes產(chǎn)品,可以借助ALB Ingress,把集群外部流量路由到集群內(nèi)部的Service,從而實現(xiàn)七層負載均衡功能。本文為您介紹ALB Ingress的基本概念、使用、產(chǎn)品優(yōu)勢及應(yīng)用場景。
ALB Ingress基本概念
阿里云容器服務(wù)ACK/ACK Serverless等Kubernetes產(chǎn)品,可以借助ALB Ingress,把集群外部流量路由到集群內(nèi)部的Service,從而實現(xiàn)七層負載均衡功能。K8s集群中部署了ALB Ingress Controller組件,負責監(jiān)聽API Server中AlbConfig/Ingress/Service等資源的變化,動態(tài)地轉(zhuǎn)換為ALB所需的配置。關(guān)于ALB Ingress Controller組件的介紹,請參見ALB Ingress Controller。
ALB Ingress的使用
ALB Ingress基于阿里云應(yīng)用型負載均衡ALB(Application Load Balancer)之上提供更為強大的Ingress流量管理方式,兼容Nginx Ingress,具備處理復雜業(yè)務(wù)路由和證書自動發(fā)現(xiàn)的能力,支持HTTP、HTTPS和QUIC協(xié)議,滿足在云原生應(yīng)用場景下對超強彈性和大規(guī)模七層流量處理能力的需求。
ALB Ingress使用流程
ALB Ingress由容器服務(wù)Kubernetes 版管理,您不能自行在ALB控制臺上進行配置,否則可能造成Ingress服務(wù)的異常。關(guān)于ALB額度的更多信息,請參見使用限制。
ALB Ingress與云原生服務(wù)做了深度集成,在具備豐富功能的同時也保證了易用性。使用ALB Ingress的操作流程如下:
功能 | 描述 |
安裝ALB Ingress Controller組件 | 您可以通過在創(chuàng)建集群時安裝ALB Ingress Controller,也可以通過在組件管理頁面安裝ALB Ingress Controller。具體操作,請參見:
說明
|
(可選)為專有集群授予ALB Ingress Controller訪問權(quán)限 | 安裝完ALB Ingress Controller后,若需要在ACK專有版集群中通過ALB Ingress訪問服務(wù),在部署服務(wù)前您還需要授予ALB Ingress Controller的相關(guān)權(quán)限。具體操作,請參見為ACK專有集群授予ALB Ingress Controller訪問權(quán)限。 |
創(chuàng)建Service、Deployment等后端服務(wù) | 您可以在K8s中部署Service、Deployment等后端服務(wù),作為ALB Ingress轉(zhuǎn)發(fā)流量的目標。具體操作,請參見:
|
(可選)創(chuàng)建AlbConfig與IngressClass資源 | 重要 如果您在安裝ALB Ingress Controller組件時,為ALB云原生網(wǎng)關(guān)實例來源選擇了新建或使用已有選項,controller會自動創(chuàng)建一個名為“alb”的AlbConfig和名為“alb”的IngressClass資源,您可忽略此步驟。 完成ALB Ingress Controller授權(quán)后,您可以通過創(chuàng)建AlbConfig,然后創(chuàng)建IngressClass并將AlbConfig與IngressClass進行關(guān)聯(lián)。AlbConfig資源與ALB實例對應(yīng),定義了ALB實例的配置。而IngressClass資源定義了Ingress資源與AlbConfig的關(guān)聯(lián)。具體操作,請參見:
|
創(chuàng)建Ingress資源 | 配置完以上步驟后,您可以創(chuàng)建Ingress資源,在Ingress中配置將用戶請求流量轉(zhuǎn)發(fā)到后端Service的轉(zhuǎn)發(fā)規(guī)則,并將Ingress資源與IngressClass和AlbConifg關(guān)聯(lián)。配置完以上步驟,客戶端就可以通過ALB Ingress訪問K8s中的資源。具體操作,請參見:
|
ALB Ingress不僅可以通過注解項配置轉(zhuǎn)發(fā)規(guī)則,還可以通過注解項實現(xiàn)會話保持、灰度發(fā)布等高級功能。關(guān)于ALB Ingress其他功能,請參見:
容器集群ACK:ALB Ingress服務(wù)高級用法
容器集群ACK Serverless:ALB Ingress服務(wù)高級用法
ALB Ingress工作原理
ALB Ingress在兼容K8s原生功能的基礎(chǔ)上,還通過AlbConfig CRD和Ingress注解項,提供了豐富的高級特性。
AlbConfig CRD:AlbConfig CRD用于配置ALB實例和監(jiān)聽。一個AlbConfig對應(yīng)一個ALB實例。
Ingress注解項:ALB Ingress可以通過注解項配置轉(zhuǎn)發(fā)規(guī)則,配置完成后,HTTP/HTTPS請求可以通過注解項配置的轉(zhuǎn)發(fā)規(guī)則轉(zhuǎn)發(fā)到對應(yīng)的Service上。
Service是后端真實服務(wù)的抽象,一個Service可以代表多個相同的后端服務(wù)。
ALB Ingress的優(yōu)勢
ALB Ingress為全托管模式,提供更強大的Ingress流量管理能力。Nginx Ingress一般用于用戶對網(wǎng)關(guān)定制有強烈需求的場景,需要您自行維護。Nginx Ingress和ALB Ingress在產(chǎn)品定位、架構(gòu)、性能、安全等方面均存在差異。關(guān)于Nginx Ingress和ALB Ingress的差異對比,請參見Nginx Ingress和ALB Ingress對比。
基于ALB Ingress和Nginx Ingress的差異,用戶在實際使用過程中,這幾種業(yè)務(wù)場景下ALB Ingress相比Nginx Ingress具有明顯的優(yōu)勢。
使用長連接的場景
長連接適用于交互頻繁的業(yè)務(wù)場景,如物聯(lián)網(wǎng)IoT、互聯(lián)網(wǎng)金融和在線游戲等。當用戶進行配置變更時,Nginx Ingress由于需要Reload Nginx進程,會導致長連接閃斷,ALB Ingress配置變更支持熱更新,保持長連接穩(wěn)定,有效避免此問題。
高并發(fā)連接場景
物聯(lián)網(wǎng)業(yè)務(wù)由于終端設(shè)備數(shù)量大,往往具有高并發(fā)連接的特點。ALB Ingress依托洛神云網(wǎng)絡(luò)平臺,能高效管理會話(session),單個ALB實例即支持千萬級連接數(shù)。Nginx Ingress支持的會話數(shù)有限,同時需要用戶自行運維。Nginx Ingress擴容時需要消耗集群內(nèi)的資源,并且還需要用戶手動操作,擴容成本較高。
高QPS場景
互聯(lián)網(wǎng)業(yè)務(wù)往往具有高QPS的特點,比如預期內(nèi)的大促活動和突發(fā)的熱點事件。ALB Ingress支持自動彈性,高QPS時會自動彈出更多VIP,通過一個ALB實例即可支持百萬QPS,因此ALB Ingress擁有比Nginx Ingress更低的延遲。同時Nginx Ingress依賴集群內(nèi)的資源,在高QPS場景中更可能會遭遇性能瓶頸。
業(yè)務(wù)存在流量峰谷的場景
對于有波峰波谷的業(yè)務(wù),比如電商和游戲,ALB Ingress擁有費用優(yōu)勢。ALB Ingress按量計費,流量波谷期間消耗較少的LCU,產(chǎn)生的費用更低,且因為自動彈性,用戶無需關(guān)注和應(yīng)對自身業(yè)務(wù)流量模型。而使用Nginx Ingress時則需要預留一部分集群資源,在波谷時會產(chǎn)生閑置成本,并且還需要手動設(shè)置與預留資源。
同城多活、異地多活容災(zāi)場景
對于業(yè)務(wù)連續(xù)性和可靠性有極高要求的行業(yè)和應(yīng)用場景,比如社交網(wǎng)絡(luò)平臺和視頻流媒體服務(wù)。您可以通過在分布式云容器平臺ACK One創(chuàng)建ALB多集群網(wǎng)關(guān),使用ALB Ingress來管理多集群流量,實現(xiàn)同城多活和異地多活的容災(zāi)方案。
ALB Ingress應(yīng)用場景
ALB Ingress具備超強性能、自動彈性、免運維和開放可編程等特性。
通過多級負載和多級調(diào)度,單實例可支持100萬QPS
通過軟硬件一體化和硬件加速卡,具備超強轉(zhuǎn)發(fā)性能
通過自動彈性讓運維更簡單,服務(wù)等級協(xié)議SLA多實例可用性高達99.995%
通過自定義轉(zhuǎn)發(fā)平臺,提供豐富的高級路由特性
ALB Ingress可覆蓋多種業(yè)務(wù)場景,以下是幾個常見的應(yīng)用場景: