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
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.