如何下载 hgctl

通过 curl 命令下载最新版本的 hgctl 到本地

安装 Profile 说明

higress 目前支持三个内置预定义 profile 包括: local-k8s , k8s, local-docker。

  • local-k8s profile 安装 higress 到本地 k8s 集群比如 kind 集群,主要用于开发和测试 higress 功能。 默认安装 higress 核心组件外,还安装包括可观测组件(Grafana + Promethues), IstioAPI, GatewayAPI组件。
  • k8s profile 安装 higress 到 k8s 集群, 默认只安装 higress 核心组件。
  • local-docker profile 安装 higress 到本地 docker 环境。

1. 查看默认 profile 列表和导出 profile

  • 查看 profile 列表
  1. hgctl profile list
  2. higress configuration profiles:
  3. k8s
  4. local-docker
  5. local-k8s
  • 导出 profile local-k8s profile 到本地 local-k8s.yaml 文件
  1. hgctl profile dump local-k8s -o ./local-k8s.yaml

2. 内置三个 profile 配置项说明

profile 内容包含 global, console, gateway, controller, storage, values , charts 七大配置项。

  1. local-k8s profile

local-k8s profile 具体内容和说明如下:

  1. profile: local-k8s # profile 名称
  2. global:
  3. install: local-k8s # 安装模式 k8s/local-k8s/local-docker
  4. ingressClass: higress # 用于过滤被 Higress Controller 监听的 Ingress 资源的 IngressClass。
  5. enableIstioAPI: true # 若为true,Higress Controller 将同时监听 istio 资源
  6. enableGatewayAPI: true # 若为true 激活 gateway api
  7. namespace: higress-system # higress 安装到的命名空间
  8. console:
  9. replicas: 1 # Higress Console 的 pod 数量
  10. o11yEnabled: true # 若为 true,将同时安装可观测性套件(Grafana + Promethues)
  11. gateway:
  12. replicas: 1 # Higress Gateway 的 pod 数量
  13. controller:
  14. replicas: 1 # Higress Controller 的 pod 数量
  15. # 其他自定义的 helm values
  16. values:
  17. charts:
  18. higress:
  19. url: https://higress.io/helm-charts # higress helm chart repo 地址
  20. name: higress # higress helm chart 名称
  21. version: latest # higress helm chart 版本
  22. standalone:
  23. url: https://higress.io/standalone/get-higress.sh # higress standalone 安装器地址
  24. name: standalone # higress standalone 安装器名称
  25. version: latest # higress standalone 安装器版本
  1. k8s profile

k8s profile 和 local-k8s profile 差异主要在可观测组件(Grafana + Promethues), IstioAPI, GatewayAPI 默认是没有激活,如果需要这些功能,需要在安装时设置这些属性

k8s profile 具体内容和说明如下:

  1. profile: k8s # profile 名称
  2. global:
  3. install: k8s # 安装模式 k8s/local-k8s/local-docker
  4. ingressClass: higress # 用于过滤被 Higress Controller 监听的 Ingress 资源的 IngressClass。
  5. enableIstioAPI: false # 若为true,Higress Controller 将同时监听 istio 资源
  6. enableGatewayAPI: false # 若为true 激活 gateway api
  7. namespace: higress-system # higress 安装到的命名空间
  8. console:
  9. replicas: 1 # Higress Console 的 pod 数量
  10. o11yEnabled: false # 若为 true,将同时安装可观测性套件(Grafana + Promethues)
  11. gateway:
  12. replicas: 2 # Higress Gateway 的 pod 数量
  13. controller:
  14. replicas: 1 # Higress Controller 的 pod 数量
  15. # 其他自定义的 helm values
  16. values:
  17. charts:
  18. higress:
  19. url: https://higress.io/helm-charts # higress helm chart repo 地址
  20. name: higress # higress helm chart 名称
  21. version: latest # higress helm chart 版本
  22. standalone:
  23. url: https://higress.io/standalone/get-higress.sh # higress standalone 安装器地址
  24. name: standalone # higress standalone 安装器名称
  25. version: latest # higress standalone 安装器版本
  1. local-docker profile

local-docker profile 具体内容和说明如下:

  1. profile: local-docker # profile 名称
  2. global:
  3. install: local-docker # 安装模式 k8s/local-k8s/local-docker
  4. console:
  5. port: 8080 # console 监听端口
  6. gateway:
  7. httpPort: 80 # gateway 监听 http 端口
  8. httpsPort: 443 # gateway 监听 https 端口
  9. metricsPort: 15020 # gateway 指标输出监听端口
  10. controller:
  11. # 后端存储系统设置,现在支持文件系统和 nacos
  12. storage:
  13. url: file://${INSTALLPACKAGEPATH}/conf # 配置服务的 URL。若使用独立部署的 Nacos 服务(版本不低于 2.0.0),URL 格式为:nacos://192.168.0.1:8848 - 若在本地磁盘上保存配置,URL 格式为:file://opt/higress/conf
  14. ns: higress-system # 用于保存 Higress 配置的 Nacos 命名空间 ID
  15. username: # 用于访问 Nacos 的用户名。仅用于 Nacos 启动了认证的情况下
  16. password: # 用于访问 Nacos 的用户密码。仅用于 Nacos 启动了认证的情况下
  17. dataEncKey: # 用于加密敏感配置数据的密钥。长度必须为 32 个字符。若未设置,Higress 将自动生成一个随机的密钥。若需集群部署,此项必须设置
  18. charts:
  19. higress:
  20. url: https://higress.io/helm-charts # higress helm chart repo 地址
  21. name: higress # higress helm chart 名称
  22. version: latest # higress helm chart 版本
  23. standalone:
  24. url: https://higress.io/standalone/get-higress.sh # higress standalone 安装器地址
  25. name: standalone # higress standalone 安装器名称
  26. version: latest # higress standalone 安装器版本

配置服务的 URL 默认 file://${INSTALLPACKAGEPATH}/conf 是保存在本地文件系统下, 其中 ${INSTALLPACKAGEPATH} 是当前安装下 higress-standalone目录下创建 conf 目录

安装命令: hgctl install

hgctl install 安装命令具体参数如下:

  1. hgctl install help
  2. The install command generates an higress install manifest and applies it to a cluster.
  3. Usage:
  4. hgctl install [flags]
  5. Examples:
  6. # Apply a default higress installation
  7. hgctl install
  8. # Install higress on local kubernetes cluster
  9. hgctl install set profile=local-k8s
  10. # Install higress on local docker environment with specific gateway port
  11. hgctl install set profile=local-docker set gateway.httpPort=80 set gateway.httpsPort=443
  12. # To override profile setting
  13. hgctl install set profile=local-k8s set global.enableIstioAPI=true set gateway.replicas=2
  14. # To override helm setting
  15. hgctl install set profile=local-k8s set values.global.proxy.resources.requsts.cpu=500m
  16. Flags:
  17. context string The name of the kubeconfig context to use.
  18. -f, filename strings Path to file containing helm custom values
  19. -h, help help for install
  20. kubeconfig string Path to the kubeconfig file to use for CLI requests.
  21. -d, manifests string Specify a path to a directory of profiles
  22. (e.g. ~/Downloads/higress/manifests).
  23. -s, set stringArray Override an higress profile value, e.g. override profile values (—set gateway.replicas=2), or override helm values (—set values.global.proxy.resources.requsts.cpu=500m).

安装参数说明:

  • hgctl install 核心参数就是两个 -s (—set) 和 -f (—filename) 。

  • —set 参数是设置 profile 配置项的值, -f 传入 helm 自定义 values 值的 yaml 文件地址。

  • 通过 -s profile=profile 内置 profile 名称或者 profile yaml 文件地址来指定安装 profile 来源。

  • 安装成功后,会在当前用户 $HOME 目录下写入当前安装的profile配置 ~/.hgctl/profiles/install.yaml , 升级时根据这个 profile 来升级。(后续版本会有变化)

安装样例说明

  1. 默认安装
  1. hgctl install
  2. Please select higress install configration profile:
  3. 1.Install higress to local kubernetes cluster like kind etc.
  4. 2.Install higress to kubernetes cluster
  5. 3.Install higress to local docker environment
  6. Please input 1, 2 or 3 to select, input your selection:

默认安装没有指定 profile, 会提示选择安装 profile。

  1. 指定 k8s profile 安装 , 同时激活 IstioAPI, GatewayAPI 和 helm values 自定义 console 和 gateway resources 配置。

自定义 helm values.yaml 如下:

  1. global:
  2. istioNamespace: istio-system
  3. higress-console:
  4. resources:
  5. requests:
  6. cpu: 500m
  7. memory: 512Mi
  8. higress-core:
  9. gateway:
  10. resources:
  11. requests:
  12. cpu: 2000m
  13. memory: 2048Mi
  14. limits:
  15. cpu: 2000m
  16. memory: 2048Mi

helm 自定义配置项参考文件如下:

安装命令如下:

  1. hgctl install set profile=k8s set global.enableIstioAPI=true set global.enableGatewayAPI=true set gateway.replicas=1 -f ./values.yaml
  1. 本地 docker 环境下安装,同时指定 gateway http 和 https 端口
  1. hgctl install set profile=local-docker set gateway.httpPort=80 set gateway.httpsPort=443

默认安装后端存储采用文件系统保存配置, 如果后端存储采用 nacos 保存, 安装时传入 —set storage.url=nacos://192.168.0.1:8848, 这里设置具体 nacos 服务地址。

安装完成后,在当前目录下创建 higress-standalone 目录,具体结构如下:

  1. ├── hgctl
  2. ├── higress-standalone
  3. ├── conf
  4. ├── configmaps
  5. ├── endpoints
  6. ├── http2rpcs
  7. ├── ingressclasses
  8. ├── ingresses
  9. ├── mcpbridges
  10. ├── mutatingwebhookconfigurations
  11. ├── namespaces
  12. ├── nodes
  13. ├── pods
  14. ├── secrets
  15. ├── services
  16. ├── validatingwebhookconfigurations
  17. └── wasmplugins
  18. ├── get-higress.sh
  19. └── higress
  20. ├── CODEOWNERS
  21. ├── LICENSE
  22. ├── README.md
  23. ├── VERSION
  24. ├── bin
  25. └── compose

目录和文件具体内容如下:

  • higress-standalone/conf: 配置后端存储文件目录
  • higress-standalone/higress: higress 安装文件目录
  • higress-standalone/higress/compose: higress docker compose 配置目录
  • higress-standalone/higress/bin: 管理 higress 脚本目录
  • higress-standalone/higress/compose/.env: higress 安装后生成配置文件

安装成功后,会在当前用户 $HOME 目录下写入当前安装的 profile 配置: ~/.hgctl/profiles/install.yaml, 升级时根据这个 profile 来升级。(后续版本会有变化)

升级命令: hgctl upgrade

升级命令参数如下:

  1. hgctl upgrade help
  2. The upgrade command is an alias for the install command that performs additional upgrade-related checks.
  3. Usage:
  4. hgctl upgrade [flags]
  5. Flags:
  6. context string The name of the kubeconfig context to use.
  7. -f, filename strings Path to file containing helm custom values
  8. -h, help help for upgrade
  9. kubeconfig string Path to the kubeconfig file to use for CLI requests.
  10. -d, manifests string Specify a path to a directory of profiles
  11. (e.g. ~/Downloads/higress/manifests).
  12. -s, set stringArray Override an higress profile value, e.g. to choose a profile
  13. (—set profile=local-k8s), or override profile values (—set gateway.replicas=2), or override helm values (—set values.global.proxy.resources.requsts.cpu=500m).

升级命令参数和安装参数时一致的,核心参数就是两个 -s (—set) 和 -f (—filename) 。

主要差别是不能设置profile, 升级 profile 是来源于安装时保存: ~/.hgctl/profiles/install.yaml 。

Dashboard 命令: hgctl dashbaord

可以通过 hgctl dashboard 命令打开 Higress Console 管理界面, Higress Controller Debug界面, Envoy 管理界面,Grafana 和 Prometheus 管理界面

hgctl dashboard 命令参数如下:

  1. hgctl dashboard help
  2. Usage:
  3. hgctl dashboard [flags]
  4. hgctl dashboard [command]
  5. Aliases:
  6. dashboard, dash, d
  7. Available Commands:
  8. console Open Console web UI
  9. controller Open Controller debug web UI
  10. envoy Open Envoy admin web UI
  11. grafana Open Grafana web UI
  12. prometheus Open Prometheus web UI
  13. Flags:
  14. browser When browser is supplied as false, hgctl dashboard will not open the browser. Default is true which means hgctl dashboard will always open a browser to view the dashboard. (default true)
  15. context string The name of the kubeconfig context to use.
  16. -h, help help for dashboard
  17. kubeconfig string Path to the kubeconfig file to use for CLI requests.
  18. -n, namespace string Namespace where the addon is running, if not specified, higress-system would be used (default higress-system”)
  19. -p, port int Local port to listen to
  20. Use hgctl dashboard [command] help for more information about a command.

卸载命令: hgctl uninstall

hgctl uninstall 命令参数如下:

  1. hgctl uninstall help
  2. The uninstall command uninstalls higress from a cluster or local environment
  3. Usage:
  4. hgctl uninstall [flags]
  5. Examples:
  6. # Uninstall higress
  7. hgctl uninstal
  8. # Uninstall higress, istioAPI and GatewayAPI from a cluster
  9. hgctl uninstall purge-resources
  10. Flags:
  11. context string The name of the kubeconfig context to use.
  12. -h, help help for uninstall
  13. kubeconfig string Path to the kubeconfig file to use for CLI requests.
  14. purge-resources Delete all of IstioAPI,GatewayAPI resources

hgctl uninstall 卸载时不会自动卸载 IstioAPI, GatewayAPI组件, 如果要卸载 IstioAPI, GatewayAPI组件,卸载时加上 —purge-resources。

插件命令: hgctl plugin 命令

TBD