A10 Ingress Controller for Thunder ADC

Thunder ADC is deployed external to Kubernetes cluster. Initial configuration is done on Thunder or through Harmony Controller.

For users looking for ADC functionality, A10 provides an Ingress Controller integration for Lightning ADC and Thunder ADC. The Ingress Controller monitors the application service containers as well as Ingress resources for any change. As soon as any of them changes, Ingress controller calls appropriate Harmony APIs to inform about the change to Harmony Controller. This change immediately reaches all Lighting ADCs and Thunder ADCs because of continuous synchronization between Lightning ADC or Thunder ADC and Harmony Controller.

Deployment Architecture

_images/ingress_thunder.png

Handling Scale with Ingress Controller

Scaling of Application Services

As a Kubernetes service configured with Ingress resource scales up or down, a trigger is received by the Ingress Controller and ADC configuration is updated using the Harmony APIs.

Deploy the A10 Ingress Controller

A10 provides a configuration template YAML file for creating the A10 Ingress Controller. Only single instance of the Ingress Controller is required to run them in the entire cluster.

  1. Download the below sample file to deploy the A10 Ingress Controller.

  2. Deploy the Ingress controller using the command:

    kubectl create -f hc-ingress-controller.yaml
    
  3. Edit the following fields if required and fill in the appropriate values from your environment.

    • app Label - Name of the Ingress Controller.
    • Name - Name of the Ingress Controller.
    • Image - Ingress Controller image and this can be downloaded from the docker hub repository.
    • Environment Values - The environment values are vThunder URL, vThunder credentials, provider and tenant values.
  4. Set-up Role-based Access Control (RBAC) to allow API access for Ingress Controller and refer to the documentation for additional information.

  5. To update the Ingress controller in default namespace, use the following command:

    kubectl edit deployment hc-ingress-controller
    
  6. To delete the deployment in default namespace, use the following command:

    kubectl delete deployment hc-ingress-controller
    

Create an Ingress Resource

Ingress resource is the object that allows users to define load balancing and content switching rules. A10 provides a configuration template YAML file for creating the Ingress resources in the respective namespace.

  1. Download the below sample file to create an Ingress resource.

  2. Create an Ingress resource using the command:

    kubectl create -f hc-ingress-resource.yaml
    
  3. Edit the following fields if required and fill in the appropriate values from your environment.

    • Name - Name of the Ingress Resource.
    • Host - Front-end domain name
    • Path - service path
    • Service Name - Kubernetes service name
    • Service Port - Kubernetes service port
  4. To update host, TLS secret (for SSL application), path, back-end service information (service name, service port) in Ingress resource, use the following command:

    kubectl edit ingress hc-ingress-resource
    
  5. To delete the Ingress resource in default namespace, use the following command:

    kubectl delete ingress hc-ingress-resource