NetScaler ingress controller


What is an Ingress Controller in Kubernetes

When you are running an application inside a Kubernetes cluster, you need to provide a way for external users to access the applications from outside the Kubernetes cluster. Kubernetes provides an object called Ingress which allows you to define the rules for accessing the services with in the Kubernetes cluster. It provides the most effective way to externally access multiple services running inside the cluster using a stable IP address.

An Ingress Controller is an application deployed inside the cluster that interprets rules defined in the Ingress. The Ingress Controller converts the Ingress rules into configuration instructions for a load balancing application integrated with the cluster. The load balancer can be a software application running inside your Kubernetes cluster or a hardware appliance running outside the cluster.

What is NetScaler Ingress Controller

NetScaler provides an implementation of the Kubernetes Ingress Controller to manage and route traffic into your Kubernetes cluster using NetScalers (NetScaler CPX, VPX, or MPX).

Using NetScaler Ingress Controller, you can configure NetScaler CPX, VPX, or MPX according to the Ingress rules and integrate your NetScalers with the Kubernetes environment.

Why NetScaler Ingress Controller

This topic provides information about some of the key benefits of integrating NetScalers with your Kubernetes cluster using NetScaler Ingress Controller.

Support for TCP and UDP traffic

Standard Kubernetes Ingress solutions provide load balancing only at layer 7 (HTTP or HTTPS traffic). Some times, you need to expose many legacy applications which rely on TCP or UDP applications and need a way to load balance those applications. NetScaler Ingress Controller solution using NetScaler Ingress Controller provides TCP, TCP-SSL, and UDP traffic support apart from the standard HTTP or HTTPS Ingress. Also, it works seamlessly across multiple clouds or on-premises data centers.

Advanced traffic management policies

NetScaler provides enterprise-grade traffic management policies like rewrite and responder policies for efficiently load balancing traffic at layer 7. However, Kubernetes Ingress lacks such enterprise-grade traffic management policies. With the Kubernetes Ingress solution from Citrix, you can apply rewrite and responder policies for application traffic in a Kubernetes environment using CRDs provided by NetScaler.

Flexible deployment topologies

NetScaler provides flexible and powerful topologies such as Single-Tier and Dual-Tier depending on how you want to manage your NetScalers and Kubernetes environment. For more information on the deployment topologies, see the Deployment topologies page.

Layer 7 load balancing support for East-West traffic

For traffic between microservices inside the Kubernetes cluster (East-West traffic), Kubernetes natively provides only limited layer 4 load balancing. Using NetScaler CPX along with the Ingress controller, you can achieve advanced layer 7 load balancing for East-West traffic.

Service of type LoadBalancer on bare metal clusters

There may be several situations where you want to deploy your Kubernetes cluster on bare metal or on-premises rather than deploy it on public cloud. When you are running your applications on bare metal Kubernetes clusters, it is much easier to route TCP or UDP traffic using a service of type LoadBalancer than using Ingress. Even for HTTP traffic, it is sometimes more convenient than Ingress. However, there is no load balancer implementation natively available for bare metal Kubernetes clusters. NetScaler provides a way to load balance such services using the Ingress controller and NetScaler. For more information, see Expose services of type LoadBalancer.

Deploy NetScaler Ingress Controller

You can deploy NetScaler Ingress Controller in the following deployment modes:

  1. As a standalone pod: This mode is used when managing ADCs such as NetScaler MPX, or VPX that is outside the Kubernetes cluster.

  2. As a sidecar in a pod along with the NetScaler CPX in the same pod: The controller is only responsible for the NetScaler CPX that resides in the same pod.

You can deploy the ingress controller provided by NetScaler using Kubernetes YAML or Helm charts. For more information, see Deploy NetScaler Ingress Controller using YAML or Deploy NetScaler Ingress Controller using Helm charts.