A10 Kubernetes Connector 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 Kubernetes Connector integration for Lightning ADC and Thunder ADC. The Kubernetes Connector monitors the application service containers as well as Ingress resources for any change. As soon as any of them changes, Kubernetes Connector 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 Kubernetes Connector

Scaling of Application Services

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

Deploy the A10 Kubernetes Connector

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

  1. Download the below sample file to deploy the A10 Kubernetes Connector.

  2. Deploy the Kubernetes Connector 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 Kubernetes Connector.
    • Name - Name of the Kubernetes Connector.
    • Image - Kubernetes Connector 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 Kubernetes Connector and refer to the documentation for additional information.

  5. To update the Kubernetes Connector 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