NetScaler® Kubernetes Gateway Controller

Deploy NetScaler Kubernetes Gateway Controller with AI capabilities

You can enable NetScaler® AI Gateway capabilities using either of the following deployment options, depending on where your traffic originates:

  • NetScaler Kubernetes Gateway Controller with NetScaler VPX/MPX/BLX — NetScaler Kubernetes Gateway Controller runs in the cluster and configures an external NetScaler VPX/MPX/BLX.
  • NetScaler CPX with Gateway Controller — NetScaler CPX and NetScaler Kubernetes Gateway Controller run together inside the cluster.

Prerequisites

  • A Kubernetes cluster with kubectl configured.
  • Helm 3.x or later.
  • Gateway API CRDs installed from the official standard channel.

Deploy NetScaler Kubernetes Gateway Controller with NetScaler VPX/MPX/BLX

Use this option when NetScaler Kubernetes Gateway Controller manages an external NetScaler VPX/MPX/BLX.

Download the Helm chart

Download the NetScaler Kubernetes Gateway Controller Helm chart package (.tgz) from the following location:

wget https://github.com/netscaler/netscaler-helm-charts/blob/gh-pages/netscaler-kubernetes-gateway-controller-2.4.0.tgz
<!--NeedCopy-->

Install NetScaler Kubernetes Gateway Controller

To install the chart with the release name, my-release, use the following command with the chart version downloaded in the previous step:

helm install my-release netscaler-kubernetes-gateway-controller-2.4.0.tgz --set license.accept=yes,gatewayController.gatewayControllerName=<controllerName>,netscaler.nsIP=<NSIP>,netscaler.adcCredentialSecret=<Secret-for-NetScaler-credentials>
<!--NeedCopy-->

Note:

By default, the chart installs the recommended RBAC roles and role bindings.

The command deploys NetScaler Kubernetes Gateway Controller on Kubernetes cluster with the default configuration. The configuration section lists the mandatory and optional parameters that you can configure during installation.

Create the GatewayClass

After the NetScaler Kubernetes Gateway Controller is installed, create a GatewayClass that binds to the controller. The controllerName must match the gatewayController.gatewayControllerName value used during installation.

kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: aigwclass
spec:
  controllerName: citrix.com/nsgw-controller
EOF
<!--NeedCopy-->

Note:

The gatewayClassName field in every AI Gateway resource (Gateway, aigatewayprofile, aigatewayroute, ratelimit, and rewritepolicy) must match the metadata.name of the GatewayClass created here (aigwclass).

Deploy NetScaler CPX with Gateway Controller

Use this option to run NetScaler CPX and the Gateway Controller together inside the cluster.

Download the Helm chart for NetScaler CPX with Gateway Controller

Download the NetScaler CPX with Gateway Controller Helm chart package (.tgz) from the following location:

wget https://github.com/netscaler/netscaler-helm-charts/blob/gh-pages/netscaler-cpx-with-gateway-controller-2.4.0.tgz
<!--NeedCopy-->

Install NetScaler CPX with Gateway Controller

To install the chart with the release name ```my-release


```bash
helm install my-release netscaler-cpx-with-gateway-controller-2.4.0.tgz  --set license.accept=yes,gatewayController.gatewayControllerName=<controllerName>
<!--NeedCopy-->

Note:

By default the chart installs the recommended RBAC roles and role bindings.

The command deploys NetScaler CPX with NetScaler Kubernetes Gateway Controller as a sidecar on the Kubernetes cluster with the default configuration. The configuration section lists the mandatory and optional parameters that you can configure during installation.

Create the GatewayClass

After NetScaler CPX with Gateway Controller is installed, create a GatewayClass that binds to the controller. The controllerName must match the gatewayController.gatewayControllerName value used during installation.

kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: aigwclass
spec:
  controllerName: citrix.com/nscpxgw-controller
EOF
<!--NeedCopy-->

Note:

The gatewayClassName field in every AI Gateway resource (Gateway, aigatewayprofile, aigatewayroute, ratelimit, and rewritepolicy) must match the metadata.name of the GatewayClass created here (aigwclass).

Verify the deployment

Confirm that the controller is running and the GatewayClass is accepted before you apply AI Gateway resources.

kubectl get pods
kubectl get gatewayclass aigwclass
<!--NeedCopy-->

The controller pod must show STATUS Running (for CPX, the pod shows READY 2/2), and the GatewayClass must show ACCEPTED True.

Reference