Skip to content
下载《AI 应用 & AI Agent 开发新范式》电子书 了解构建 AI Agent 和 MCP Server 的一线实践Know more

Cloud-Native Deployment with Helm

Helm is a package management system for automating the management and release of Kubernetes software. With Helm, you can quickly deploy and install Higress gateway on your Kubernetes cluster.

Installing Higress

The Higress gateway consists of the control plane component higress-controller and the data plane component higress-gateway. higress-gateway is responsible for handling data traffic, while higress-controller is responsible for managing configuration distribution.

Helm Installation Command

Terminal window
helm repo add higress.io https://higress.io/helm-charts
helm install higress higress.io/higress -n higress-system --create-namespace

Common Installation Parameters

For a complete parameter description, please check the Operations Parameters Documentation

Parameter NameDescriptionDefault Value
Global Parameters
global.localIf installing to a local K8s cluster (such as Kind, Rancher Desktop, etc.), set this to truefalse
global.ingressClassIngressClass used to filter Ingress resources monitored by Higress Controller.
When multiple gateways are deployed in a cluster, this parameter can be used to distinguish the responsibilities of each gateway.
IngressClass has some special values:
1. If set to “nginx”, Higress Controller will monitor Ingress resources with either nginx or empty IngressClass.
2. If set to empty, Higress Controller will monitor all Ingress resources in the K8s cluster.
higress
global.watchNamespaceIf not empty, Higress Controller will only monitor resources in the specified namespace.
When business systems are isolated by K8s namespaces and each namespace needs an independent gateway, this parameter can be used to limit Higress to monitor Ingress in the specified namespace.
""
global.disableAlpnH2Whether to disable HTTP/2 protocol in ALPNfalse
global.enableStatusIf true, Higress Controller will update the status field of Ingress resources.
To avoid overwriting the status field of Ingress objects during migration from Nginx Ingress, this parameter can be set to false, so Higress will not write the ingress IP to the status field of Ingress by default.
true
global.enableIstioAPIIf true, Higress Controller will also monitor istio resourcesfalse
global.enableGatewayAPIIf true, Higress Controller will also monitor Gateway API resourcesfalse
global.onlyPushRouteClusterIf true, Higress Controller will only push services associated with routestrue
global.o11y.enabledIf true, will also install observability suite (Grafana, Prometheus, Loki, PromTail)false
global.pvc.rwxSupportedIndicates whether the target K8s cluster supports ReadWriteMany operation mode for PersistentVolumeClaim.true
Core Component Parameters
higress-core.gateway.replicasNumber of Higress Gateway pods2
higress-core.gateway.httpPortHTTP port that Higress Gateway will listen on80
higress-core.gateway.httpsPortHTTPS port that Higress Gateway will listen on443
higress-core.gateway.kindResource type used to deploy Higress Gateway, Deployment or DaemonSetDeployment
higress-core.controller.replicasNumber of Higress Controller pods1
Console Parameters
higress-console.replicaCountNumber of Higress Console pods1
higress-console.service.typeK8s Service type used by Higress ConsoleClusterIP
higress-console.web.login.promptPrompt message displayed on the login page""

Supporting Istio CRD (Optional)

The cluster needs to have Istio CRDs installed in advance. If you don’t want to install Istio, you can also just install Istio CRDs:

Terminal window
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm install istio-base istio/base -n istio-system --create-namespace

In this mode, you need to update Higress deployment parameters:

Terminal window
helm upgrade higress -n higress-system --set global.enableIstioAPI=true higress.io/higress --reuse-values

Supporting Gateway API CRD (Optional)

The cluster needs to have Gateway API CRDs installed in advance: https://github.com/kubernetes-sigs/gateway-api/releases

For example, for version 1.0.0:

Terminal window
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/experimental-install.yaml

In this mode, you need to update Higress deployment parameters:

Terminal window
helm upgrade higress -n higress-system --set global.enableGatewayAPI=true higress.io/higress --reuse-values

You can use this configuration to verify Gateway API functionality:

https://github.com/alibaba/higress/blob/main/samples/gateway-api/demo.yaml