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