ASM網關可以為網格內應用提供統一的流量入口和出口,實現端到端安全加密和流量控制。本文介紹ASM入口網關和出口網關的相關功能。
入口網關
入口網關為Kubernetes集群提供了七層網關功能,根據HTTP請求的內容將來自同一個TCP端口的請求分發到不同的Kubernetes服務。ASM提供了網關的全生命周期管理,支持多種協議,具有強大的流量管理、安全以及可觀測能力。
功能 | 描述 | 相關文檔 |
生命周期管理 | 當您的應用程序需要為用戶提供統一的公網或內網入口時,可以在Kubernetes集群中部署ASM入口網關(Ingress Gateway)。入口網關作為統一的訪問入口,可以簡化流量的管理和路由,并利用七層負載均衡能力根據HTTP請求的路徑、主機頭或其他屬性將流量智能分發至相應的后端服務。您可以通過ASM控制臺管理入口網關。 | |
使用ASM Serverless網關提升高可用性和彈性 | ASM Serverless網關是ASM推出的全新服務網格網關形態,更適合應對突發流量,降低計算成本,提升穩定性。相比運行于數據面ACK Kubernetes集群之上的ASM網關形態,ASM Serverless網關具有高穩定性、高彈性和低成本的優勢,以Serverless的形式單獨部署,并完全由ASM管理,具備獨立于ACK Kubernetes集群的高可用性。 | |
使用網絡型負載均衡NLB | 網絡型負載均衡NLB(Network Load Balancer)是阿里云面向萬物互聯時代推出的新一代四層負載均衡,支持超高性能和自動彈性能力,具有更高的可用性,能夠進一步提升網關流量的穩定性。ASM網關支持使用NLB。配置ASM網關的ServiceType為LoadBalancer時,默認會關聯一個CLB作為網關Service的負載均衡器。 | |
多協議支持 | ASM網關提供了圖形化創建目標規則和虛擬服務的功能,無需您編寫YAML文件,簡化流量管理操作。 | |
當您需要優化網絡拓撲、擴容應用服務器或調整業務流量時,可以通過ASM的流量管理中心實現TCP應用流量的平滑遷移,確保關鍵業務的連續性和服務的高可用性。 | ||
當您需要對外提供加密的HTTPS訪問時,可以通過ASM網關啟用HTTPS安全服務。ASM網關支持證書的動態加載,您可以實時動態地配置私鑰、服務器證書和根證書,無需重啟網關或依賴Secret卷掛載,降低操作復雜性并消除因重啟造成的服務中斷風險。ASM網關能夠監控并管理多個證書和私鑰對,為不同的主機提供靈活且安全的通信能力,加強數據傳輸的安全性。 | ||
您可以通過ASM入口網關安全地訪問網格內的gRPC服務,實現對gRPC服務的精確訪問控制,提升服務治理能力,保障服務間通信的安全性。 | ||
ASMGrpcJsonTranscoder用于進行JSON/HTTP-gRPC協議轉碼。客戶端可以使用HTTP/JSON訪問服務網格內的gRPC服務。 | ||
WebSocket是一種網絡傳輸協議,可在單個TCP連接上進行全雙工通信,位于OSI模型的應用層。WebSocket允許服務端主動向客戶端推送數據。遵守WebSocket協議的服務即為WebSocket服務。 | ||
常用流量管理 | 在大促等場景下,瞬間洪峰流量會使系統超出最大負載,調用大量堆積,導致整個調用鏈路卡死。ASM提供了本地限流功能,支持對網關和服務進行流量限制,達到保護系統的目的。 | |
在面臨高流量沖擊、服務過載、資源耗盡或惡意攻擊的情況下,通過對入口網關的特定路由配置全局限流,可以實現對流量的精準控制,從而保護后端服務的穩定性,降低成本并提升用戶體驗。 | ||
ASM支持通過編寫VirtualService和DestinationRule等資源,實現微服務的無侵入的流量治理能力,包括流量路由、限流、熔斷、鏡像流量等功能。 | ||
Gateway API是由SIG-NETWORK社區管理的開源項目,通過提供可表達的、可擴展的、面向角色的接口來改善服務網絡。您可以使用Gateway API對集群內應用訪問的路由規則進行條件限制。 | ||
ASM支持在管理的集群中使用Ingress資源,并指定特定的ASM網關作為Ingress Controller。 | ||
流量鏡像功能可以將生產的流量鏡像拷貝到測試集群或者新的測試版本中,在不影響實際生產環境的情況下,測試具有實際生產流量的服務,幫助您減低版本變更的風險。 | ||
會話保持(Session Affinity)又稱為粘性會話(Sticky Sessions),是一種負載均衡技術,能夠確保來自同一用戶(或會話)的所有請求均被發送到同一后端服務器。該技術適用于需要保持用戶狀態的應用,例如在線購物車、登錄會話和個性化設置等。 | ||
安全支持及證書動態加載 | 當您需要對外提供加密的HTTPS訪問時,可以通過ASM網關啟用HTTPS安全服務。ASM網關支持證書的動態加載,您可以實時動態地配置私鑰、服務器證書和根證書,無需重啟網關或依賴Secret卷掛載,降低操作復雜性并消除因重啟造成的服務中斷風險。ASM網關能夠監控并管理多個證書和私鑰對,為不同的主機提供靈活且安全的通信能力,加強數據傳輸的安全性。 | |
在ASM網關和Sideca代理之間,所有數據均通過mTLS隧道傳輸。如果應用注入了Sidecar,建議在網關處配置TLS終止,此時仍能保證全程加密。如果應用沒有注入Sidecar或者有其他特殊情況,ASM網關同樣支持TLS透傳。 | ||
ASM網關支持HTTPS安全支持和證書動態加載功能,以此提高ASM網關的安全性。您可以在ASM網關的CLB側綁定證書,創建HTTPS類型的監聽。HTTPS請求將在CLB側解密,然后以HTTP請求的形式發送給后端的網關Pod。 | ||
ASM證書管理可以在網格內進行統一的證書同步,能夠更好地支持ASM的多集群場景,還提供了證書信息展示和過期告警等功能,方便您進行證書維護。 | ||
當面臨因使用老舊TLS協議引發的安全隱患時,您可以在ASM網關配置TLS協議版本至最新安全標準,通過禁用不安全的舊版本(如TLS 1.0和1.1)并啟用更強大的TLS 1.2及更高版本,從而有效抵御中間人攻擊、防止數據泄露等安全風險,確保服務與客戶端之間HTTPS連接的穩固性和安全性。 | ||
借助ASM網關,您可以配置帶有mTLS安全機制的gRPC服務,確保僅授權的客戶端能夠訪問,并在整個數據傳輸過程中實施端到端加密和雙向身份驗證,有效防止信息被竊聽、篡改及非法訪問。 | ||
ASM支持以圖形化的方式為域名添加證書,便于您使用HTTPS等協議訪問域名,提升服務網關的安全性。 | ||
ASM網關支持對接WAF,并且可以通過自定義訪問日志格式來查看WAF對回源請求添加的Header,更方便線上運維。 | ||
cert-manager是一個證書生命周期管理系統,支持證書的申請、部署等功能。您可以使用cert-manager頒發ASM網關的證書,從而可以使用HTTPS協議通過ASM網關訪問服務,保證數據傳輸的安全。 | ||
授權管理 | 當您需要精確控制用戶對服務的訪問權限時,可以在ASM網關中配置黑白名單。ASM網關支持從源地址、HTTP域名、端口、遠程源IP四個維度對流量進行精確控制,以保障網格內應用的安全。本文以源地址為例,介紹如何在ASM網關中配置IP黑名單和白名單。 | |
當您需要按照自身需求定制訪問控制策略時,例如基于HTTP域名、HTTP路徑、HTTP方法等對請求進行鑒權,可以在ASM網關上使用自定義授權服務,確保只有經過認證的用戶才能訪問關鍵服務。 | ||
OIDC(OpenID Connect)是基于OAuth 2.0協議實現的一種身份認證與授權協議,主要用于實現單點登錄(SSO)。通過在ASM網關中配置OIDC單點登錄,您可以借助阿里云IDaaS或其他符合OIDC標準的身份提供者,無需修改應用本身,即可實現一次登錄、多次訪問。這不僅增強了應用的安全性,還簡化了應用系統的開發和管理。 | ||
JWT(JSON Web Token)是一種常用的身份認證和鑒權機制。JWT中會攜帶一些用戶信息和一個存儲加密后信息的字段。將加密后的信息字段進行解密,與原始用戶信息字段進行比較,可以驗證該用戶的信息是否有效,從而完成身份認證。您可以在ASM網關中配置JWT認證。 | ||
當您需要實現動態的訪問控制時,可以在ASM網關中接入OPA(Open Policy Agent)執行引擎,根據用戶身份或請求內容定制授權策略,實時控制服務間的通信行為,有效防止未經授權的訪問并降低數據泄露風險,加強網格應用的安全性。以入口網關訪問httpbin應用為例,本文介紹如何在ASM網關上使用OPA執行引擎對到達網關的請求進行認證和鑒權。 | ||
ASM支持“無侵入”的接入自定義授權服務,以實現網格內應用的單點登錄,降低應用的改造、運維等成本。 | ||
使用自建的Keycloak作為IdP來提供身份服務,可以實現網格內應用的單點登錄。 | ||
在服務網格中配置JWT(JSON Web Token)請求授權,可以實現來源認證,又稱為最終用戶認證。在接收用戶請求時,該配置用于認證請求頭信息中的Access Token是否可信,并授權給來源合法的請求。 | ||
當一個客戶端去訪問另一個不同域名或者同域名不同端口的服務時,就會發出跨域請求。如果此時該服務不允許其進行跨域資源訪問,那么就會因為跨域問題而導致訪問失敗。ASM支持在Virtualservice中配置corsPolicy,實現跨域訪問。 | ||
在ASM網關之前不存在7層代理或者已存在7層代理的場景下,限制特定IP訪問網格內應用。 | ||
定制化功能 | ASM支持多個入口網關使用同一個網關配置規則,簡化您的配置操作。 | |
您可以為ASM網關綁定多個CLB,實現多個CLB可以訪問一個ASM網關。 | ||
為了對ASM的入口網關進行訪問保護,需要獲取客戶端真實IP,以便使用授權策略設置訪問入口網關的IP黑名單和白名單。 | ||
ASM支持創建IPv6地址的ASM網關,提高網關安全性。 | ||
當數據面Kubernetes集群中的Pod無法訪問入口網關的CLB地址時,您可以在Kubernetes集群內通過ClusterIP或者服務名等方法訪問CLB地址。 | ||
如果您的客戶端使用HTTPS,且客戶端對于HTTP/2的支持存在問題,但是不便修改,可以在ASM網關側禁用HTTP/2協議。 |
出口網關
ASM提供出口網關服務,為網格內應用提供統一的流量出口。您可以通過控制臺或KubeAPI的方式管理出口網關。
功能 | 描述 | 相關文檔 |
生命周期管理 | 當您的應用程序需要統一的公網或內網出口時,可以在Kubernetes集群中部署ASM出口網關(Egress Gateway)。出口網關作為統一的訪問出口,可以簡化集群對外部服務流量的管理和路由。 | |
定制化功能 | 當網格內的應用需要與外部服務進行通信時,您可以使用出口網關作為統一的出口,集中管理所有的出站流量。通過配置出口網關,您可以實現對流量的安全控制和路由,提升網格內應用程序的安全性和可觀測性。 | |
ASM自1.16.4版本起,支持使用ASMEgressTrafficPolicy CRD。 |
網關規則
網關規則定義了在網格出入口操作的負載均衡器,用于接收傳入或傳出的HTTP/TCP連接。
功能 | 描述 | 相關文檔 |
生命周期管理 | 您可以在ASM控制臺對網關規則進行創建、修改和刪除操作。 |
網關高級特性
ASM支持配置高可用的ASM網關,提供優雅下線、可觀測性等功能,降低流量的損耗,減少您的運維成本。
功能 | 描述 | 相關文檔 |
高可用性配置 | 配置高性能和高可用的ASM網關,可以保障業務的連續性。 | |
將網關Pod部署到指定節點,可以提高ASM網關的高可用性并增強與業務Pod的隔離性。 | ||
ASM Serverless網關是基于虛擬節點和ECI提供的一種Serverless網關形態,用于支撐各種彈性和免節點運維的場景。 | ||
ASM網關作為業務的流量入口,為了避免服務不可用,您可以通過配置Pod反親和性策略等方法提高網關高可用性。 | ||
ASM網關在縮容或滾動重啟時,會刪除網關Pod而導致少量流量損失。啟用優雅下線功能后,即使刪除網關Pod,現有連接在一定時間內仍能正常傳輸,避免流量損失。 | ||
ASM網關支持同時部署在多個集群,以提高服務可用性。您可以將服務部署在多個集群,然后為多集群配置統一的入口網關,即可代理多個集群對應的入口流量。 | ||
網關作為業務的流量總入口和總出口,對可用性有著極高的要求。為了更好地保證升級后業務的連續性,ASM網關支持灰度升級。您可以通過配置先啟動一個新版本的網關Pod來驗證流量,驗證通過后再完全升級網關。驗證過程中如果出現任何問題,您可以隨時刪除這個新版本的Pod,問題解決后再繼續升級。 | ||
可觀測性能力 | ASM網關的訪問日志配置主要分為生成和采集。生成指網關打印日志到標準輸出,您可以自定義在訪問日志中打印哪些字段;采集指將網關打印的日志采集到阿里云日志服務,阿里云日志服務可以提供日志的存儲、分析以及展示等功能。生成和采集是分開配置的,您可以自行決定是否生成或采集日志。 | |
ASM網關的監控指標配置主要分為生成和采集。生成指網關本身生成相應的監控指標,您可以自定義網關生成哪些監控指標;采集指將生成的監控指標采集到阿里云ARMS Prometheus,阿里云ARMS可以提供監控指標的存儲、分析以及展示等功能。生成和采集是分開配置的,您可以自行決定是否生成或采集監控指標。 | ||
請求Payload處理 | 在應用程序中添加HTTP響應頭,可以提高Web應用程序的安全性。 | |
啟用ASM網關的壓縮能力,將對HTTP請求的Response進行壓縮,可以提高響應速度,降低流量消耗。 |
與現有系統整合
ASM支持將您自建的Istio IngressGateway或Nginx Ingress遷移至ASM網關,進行統一的管理,降低您的維護成本,提高運維效率。
功能 | 描述 | 相關文檔 |
遷移自建網關 | ASM支持自建Istio IngressGateway遷移至ASM網關。 | |
ASM支持Nginx Ingress遷移至ASM網關。 | ||
ASM支持將Nginx的常用配置遷移至ASM網關。 |