Linux Mac 安装Higress 平替 Spring Cloud Gateway

Linux Mac 安装Higress 平替 Spring Cloud Gateway

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获取

执行安装命令

执行脚本

sh 复制代码
./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 各组件的运行状态。

输出示例:

bash 复制代码
$ ./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 各组件的运行日志。

相关推荐
YRr YRr29 分钟前
解决Ubuntu 20.04上编译OpenCV 3.2时遇到的stdlib.h缺失错误
linux·opencv·ubuntu
认真学习的小雅兰.31 分钟前
如何在Ubuntu上利用Docker和Cpolar实现Excalidraw公网访问高效绘图——“cpolar内网穿透”
linux·ubuntu·docker
zhou周大哥1 小时前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
不想起昵称9291 小时前
Linux SHELL脚本中的变量与运算
linux
the丶only2 小时前
单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
linux·运维·服务器·docker·gitlab
ccubee2 小时前
docker 安装 ftp
运维·docker·容器
枫叶红花3 小时前
【Linux系统编程】:信号(2)——信号的产生
linux·运维·服务器
yaosheng_VALVE3 小时前
探究全金属硬密封蝶阀的奥秘-耀圣控制
运维·eclipse·自动化·pyqt·1024程序员节
_微风轻起3 小时前
linux下网络编程socket&select&epoll的底层实现原理
linux·网络