Higress
Higress (独立运行版)

Higress 是基于阿里内部两年多的 Envoy Gateway 实践沉淀,以开源 IstioEnvoy 为核心构建的下一代云原生网关。

提到了云原生,大家就会想到 Kubernetes(K8s)。那么 Higress 能否脱离 K8s 独立部署呢?本项目就针对这一需求提出了一种相应的解决方案。

注意

Standalone 模式没有大规模生产使用过,目前主要用于本地部署测试的场景,如果生产部署更建议云原生模式部署:https://higress.io/zh-cn/docs/ops/deploy-by-helm

前置需求

为了拉平不同操作系统的运行时差异,当前版本的部署方案是基于 Docker Compose 设计的。所以在使用这一方案进行部署之前,请先在本机安装好 Docker Compose,随后确认以下命令可以正常运行并输出 Docker Compose CLI 的帮助信息:

docker compose

快速开始

下载本项目的代码后,在命令行中执行以下命令:

./bin/configure.sh -a

依照命令行提示输入所需要的配置参数。脚本会自动写入配置并启动 Higress。

在浏览器中打开 http://localhost:8080/ ,并使用 admin 作为用户名和密码进行登录,即可正常通过 Higress Console 操作 Higress 的路由配置。所有配置的域名均需要先通过 hosts 文件将其强制解析至 127.0.0.1 再进行访问。

有关 Higress 自身的详细使用方法,请查看 Higress 官网

使用方法

在 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 各组件的运行日志。

设计文档