Skip to content

Installation

This chart bootstraps a LiteSpeed Ingress deployment on a Kubernetes cluster using the helm package manager.

Prerequisites

  • Kubernetes 1.19+: Kubernetes must be installed and running in your environment and kubectl must be configured to access it. You do not have to have all of your nodes configured and operational at installation time. As nodes, applications or pods are created, deleted or modified, the LiteSpeed Ingress Controller will detect and properly manage the dynamic environment.
  • Helm 3.1.0

Selecting a Namespace

The default namespace is not generally where new pods and services are loaded into. The kube-system namespace is the default for most system pods and a load balancer can be considered one of those. However, your environment may have restrictions on using kube-system so you may choose to use a non-system namespace like ls-k8s-webadc to have the namespace match the other names in the system.

Namespace is required on most Kubernetes commands so this document will use the name NAMESPACE to indicate the namespace you have selected.

Adding a License

The LiteSpeed Ingress Controller uses the LiteSpeed WebADC engine which is a licensed program product. To use it you must obtain either a trial.key file for a trial or a license.key and serial.no files for a full license. The Docker image requires that you define a generic secret to successfully run the software.

For a trial, place the trial.key file in the default directory and run:

$ kubectl create secret generic -n NAMESPACE ls-k8s-webadc --from-file=trial=./trial.key

For a full license, create the serial.no file as per standalone license activation and create the serial secret:

$ echo "SERIAL_NO" > ./serial.no
$ kubectl create secret generic -n NAMESPACE ls-k8s-webadc --from-file=serial=./serial.no

The LiteSpeed Ingress Controller will read and verify the serial.no, create a license.key in the directory internally and a license secret for later consumption. This only needs to be done once per serial number.

Making HTTPS Work

Tip

This is an optional step. It is not required to configure HTTPS for the backend.

To make HTTPS work for the default backend, you must apply a private key file and a certificate file as another secret definition. If the private key file is named key.pem and the certificate file named cert.pem you would specify:

$ kubectl create secret tls -n kube-system ls-k8s-webadc-tls --key key.pem --cert cert.pem

If you have a separate ca_bundle as well (often called an intermediate), please append the contents of that after the certificate file's contents.

Installing the Chart

To install the chart with the latest release from the ls-k8s-webadc directory:

$ helm repo add ls-k8s-webadc https://litespeedtech.github.io/helm-chart/
$ helm install ls-k8s-webadc ls-k8s-webadc/ls-k8s-webadc -n NAMESPACE

Note that the install may take several minutes as the container images must be downloaded and deployed to your cluster. You can tell if it's done by checking kubectl:

$ kubectl get pods
Look for the name beginning with ls-k8s-webadc. If there is an error or some other problem you can get details by entering (using the full pod name). For example if the pod name is ls-k8s-webadc-6ffc554687-4hwsp you would enter:

$ kubectl describe pod ls-k8s-webadc-6ffc554687-4hwsp

If you continue to have problems see the Troubleshooting section for additional help.

Upgrading the Chart

If there is a new version of the LiteSpeed Ingress Controller, similar to the the installation, you can use the helm upgrade command:

$ helm upgrade ls-k8s-webadc ls-k8s-webadc/ls-k8s-webadc -n NAMESPACE

Uninstalling the Chart

To uninstall/delete the deployment:

$ helm delete ls-k8s-webadc -n NAMESPACE

The command removes all the Kubernetes components associated with the chart and deletes the release.