Skip to content

Deploy Higress by Helm

Helm is a package manager for Kubernetes used in software management and deployment. You can use Helm to perform a quick install of Higress Gateway in your Kubernetes cluster.

Install Higress

Higress Gateway consists of a control plane component higress-controller and a data plane component higress-gateway. It uses Istio to management API configurations of the data plane, and higress-controller to manage API configurations of the control plane.

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

Installation Parameters

ParameterDescriptionDefault
Global Parameters
global.localSet to true if installing to a local K8s cluster (e.g.: Kind, Rancher Desktop, etc.)false
global.ingressClassIngressClass which is used to filter Ingress resources Higress Controller watches.
If there are multiple gateway instances deployed in the cluster, this parameter can be used to distinguish the scope of each gateway instance.
There are some special cases for special IngressClass values:
1. If set to “nginx”, Higress Controller will watch Ingress resources with the nginx IngressClass or without any Ingress class.
2. If set to empty, Higress Controller will watch all Ingress resources in the K8s cluster.
higress
global.watchNamespaceIf not empty, Higress Controller will only watch resources in the specified namespace. When isolating different business systems using K8s namespace, if each namespace requires a standalone gateway instance, this parameter can be used to confine the Ingress watching of Higress within the given namespace.""
global.disableAlpnH2Whether to disable HTTP/2 in ALPNtrue
global.enableStatusIf true, Higress Controller will update the status field of Ingress resources.
When migrating from Nginx Ingress, in order to avoid status field of Ingress objects being overwritten, this parameter needs to be set to false, so Higress won’t write the entry IP to the status field of the corresponding Ingress object.
true
global.enableIstioAPIIf true, Higress Controller will monitor istio resources as wellfalse
global.istioNamespaceThe namespace istio is installed toistio-system
global.o11y.enabledIf true, o11y suite (Grafana + Promethues) will be installed.false
global.pvc.rwxSupportedSet to false when installing to a standard K8s cluster and the target cluster doesn’t support the ReadWriteMany access mode of PersistentVolumeClaim.true
Core Paramters
higress-core.gateway.replicasNumber of Higress Gateway pods2
higress-core.controller.replicasNumber of Higress Controller pods1
higress-core.gateway.httpPortHTTP port to be listened by Higress Gateway80
higress-core.gateway.httpsPortHTTPS port to be listened by Higress Gateway443
Console Paramters
higress-console.replicaCountNumber of Higress Console pods1
higress-console.service.typeK8s service type used by Higress ConsoleClusterIP
higress-console.web.login.promptPrompt message to be displayed on the login page""

Support Istio CRD

The CRD of Istio needs to be installed in advance in the cluster. If you do not want to install Istio, you can also install only the CRD of Istio:

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

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

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