Linux Mac 安裝Higress 平替 Spring Cloud Gateway
- Higress是什么?
- 傳統網關分類
- Higress定位
- 下載安裝包
- 執行安裝命令
- 執行腳本
- 安裝成功
- 打開管理界面
- 使用方法
- configure.sh
- reset.sh
- startup.sh
- shutdown.sh
- status.sh
- logs.sh
Higress官網
Higress是什么?
Higress是基于阿里內部的Envoy Gateway實踐沉淀、以開源Istio + Envoy為核心構建的云原生API網關,實現了流量網關 + 微服務網關 + 安全網關三合一的高集成能力,深度集成Dubbo、Nacos、Sentinel等微服務技術棧,能夠幫助用戶極大的降低網關的部署及運維成本且能力不打折;在標準上全面支持Ingress與Gateway API,積極擁抱云原生下的標準API規范;同時,Higress Controller也支持Nginx Ingress平滑遷移,幫助用戶零成本快速遷移到Higress。
傳統網關分類
行業中通常把網關分為兩個大類:流量網關與業務網關,流量網關主要提供全局性的、與后端業務無關的策略配置,例如阿里內部的的統一接入網關Tengine就是典型的流量網關;業務網關顧名思義主要提供獨立業務域級別的、與后端業務緊耦合策略配置,隨著應用架構模式從單體演進到現在的分布式微服務,業務網關也有了新的叫法 - 微服務網關(圖示說明如下)。在目前容器技術與K8s主導的云原生時代,下一代網關模式依然是這樣嗎?
Higress定位
在虛擬化時期的微服務架構下,業務通常采用流量網關 + 微服務網關的兩層架構,流量網關負責南北向流量調度和安全防護,微服務網關負責東西向流量調度和服務治理,而在容器和 K8s 主導的云原生時代,Ingress 成為 K8s 生態的網關標準,賦予了網關新的使命,使得流量網關 + 微服務網關合二為一成為可能。
作為面向南北向的公網網關,使用Waf防護異常流量是很常規的需求,而且隨著互聯網環境變得越來越復雜,用戶對防護的訴求是持續增強的,常規做法是將流量先接入Waf安全網關,過濾后再將流量轉發給流量網關,最后到達微服務網關;Higress希望通過內置Waf模塊,使得用戶的請求鏈接只經過Higress就可以同時完成Waf防護、流量分發、微服務治理,既可以降低鏈路RT,也可以降低網關的運維復雜度。因此Higress實現了流量網關 + 微服務網關 + 安全網關三合一的高集成能力。
如上圖所示,① 在傳統的虛擬化部署中,微服務通常選擇使用 Spring Cloud Gateway 作為業務網關,而nginx則作為前置流量網關。
② 在容器和K8s主導的云原生時代,Ingress 成為 K8s 生態的網關標準,賦予了網關新的使命,使得流量網關和微服務網關的合并成為可能。
③ Higress 是基于阿里內部構建的下一代云原生網關,實現了流量調度 + 服務治理 + 安全防護三合一的高集成能力,并深度集成了Dubbo、Nacos、Sentinel等微服務技術棧。
下載安裝包
獲取本案例代碼
公粽號:一顆星宇宙
發送higress
獲取
執行安裝命令
執行腳本
./bin/configure.sh -a
輸入相關的配置信息
…………等待安裝
安裝成功
打開管理界面
瀏覽器輸入:ip:port
第一次打開需要初始化賬號信息
提交后會跳轉登錄頁面,登錄成功進入管理界面
使用方法
在 bin 目錄中存放有 Higress 獨立運行版所需的各種操作腳本。本節將介紹各個腳本的具體功能和使用方法。
configure.sh
初始化 Higress 的配置,包括依賴的 Nacos 配置服務、各個組件的啟動配置、Console 的初始管理員密碼等等。
參數列表:
-
-a, --auto-start
配置完成后自動啟動。
-
-c, --config-url=URL
配置服務的 URL。
- 若使用獨立部署的 Nacos 服務,URL 格式為:nacos://192.168.0.1:8848
- 若在本地磁盤上保存配置,URL 格式為:file:///opt/higress/conf
-
–use-builtin-nacos
使用內置的 Nacos 服務。不建議用于生產環境。如果設置本參數,則無需設置
-c
參數 -
–nacos-ns=NACOS-NAMESPACE
用于保存 Higress 配置的 Nacos 命名空間 ID。默認值為
higress-system
。 -
–nacos-username=NACOS-USERNAME
用于訪問 Nacos 的用戶名。僅用于 Nacos 啟動了認證的情況下。
-
–nacos-password=NACOS-PASSWORD
用于訪問 Nacos 的用戶密碼。僅用于 Nacos 啟動了認證的情況下。
-
-k, --data-enc-key=KEY
用于加密敏感配置數據的密鑰。長度必須為 32 個字符。若未設置,Higress 將自動生成一個隨機的密鑰。若需集群部署,此項必須設置。
-
–nacos-port=NACOS-PORT
內置 NACOS 服務在服務器本地監聽的端口。默認值為 8848。
-
–gateway-http-port=GATEAWY-HTTP-PORT
Higress Gateway 在服務器本地監聽的 HTTP 端口。默認值為 80。
-
–gateway-https-port=GATEWAY-HTTPS-PORT
Higress Gateway 在服務器本地監聽的 HTTPS 端口。默認值為 443。
-
–gateway-metrics-port=GATEWAY-METRIC-PORT
Higress Gateway 在服務器本地監聽的用于暴露運行指標端口。默認值為 15020。
-
–console-port=CONSOLE-PORT
Higress Console 在服務器本地監聽的端口。默認值為 8080。
-
-r, --rerun
在 Higress 已配置完成后重新執行配置流程。
-
-h, --help
顯示幫助信息。
reset.sh
重置 Higress 配置至原始狀態。已啟動的 Higress 服務也將被中止。
startup.sh
啟動 Higress 服務。
shutdown.sh
關閉運行中的 Higress 服務。
status.sh
查看 Higress 各組件的運行狀態。
輸出示例:
$ ./bin/status.sh
NAME COMMAND SERVICE STATUS PORTS
higress-apiserver-1 "/apiserver --secure…" apiserver running (healthy)
higress-console-1 "/app/start.sh" console running 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
higress-controller-1 "/usr/local/bin/higr…" controller running (healthy)
higress-gateway-1 "/usr/local/bin/pilo…" gateway running (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
higress-nacos-1 "bin/docker-startup.…" nacos running (healthy) 0.0.0.0:8848->8848/tcp, :::8848->8848/tcp, 0.0.0.0:9848->9848/tcp, :::9848->9848/tcp
higress-pilot-1 "/usr/local/bin/higr…" pilot running (healthy)
higress-precheck-1 "/bin/bash ./prechec…" precheck exited (0)
logs.sh
查看 Higress 各組件的運行日志。