http-add-on/docs/install.md

4.3 KiB

Installing the KEDA HTTP Add On

The HTTP Add On is highly modular and, as expected, builds on top of KEDA core. Below are some additional components:

  • Operator - watches for ScaledHTTPObject CRD resources and creates necessary backing Kubernetes resources (e.g. Deployments, Services, ScaledObjects, and so forth)
  • Scaler - communicates scaling-related metrics to KEDA. By default, the operator will install this for you as necessary.
  • Interceptor - a cluster-internal proxy that proxies incoming HTTP requests, communicating HTTP queue size metrics to the scaler, and holding requests in a temporary request queue when there are not yet any available app Pods ready to serve. By default, the operator will install this for you as necessary.

There is pending work in KEDA that will eventually make this component optional. See issue #6 in this repository for even more background

Installing KEDA

Before you install any of these components, you need to install KEDA. Below are simplified instructions for doing so with Helm, but if you need anything more customized, please see the official KEDA deployment documentation.

If you need to install Helm, refer to the installation guide

helm repo add kedacore https://kedacore.github.io/charts
helm repo update
helm install keda kedacore/keda --namespace ${NAMESPACE} --set watchNamespace=${NAMESPACE}

This document will rely on environment variables such as ${NAMESPACE} to indicate a value you should customize and provide to the relevant command. In the above helm install command, ${NAMESPACE} should be the namespace you'd like to install KEDA into. KEDA must be installed in every namespace that you'd like to host KEDA-HTTP powered apps.

Installing HTTP Components

This repository comes with a Helm chart built in. To install the HTTP add on with sensible defaults, first check out this repository and cd into the root directory (if you haven't already):

git clone https://github.com/kedacore/http-add-on.git
cd http-add-on

Next, install the HTTP add on. The below command will install the add on if it doesn't already exist:

helm install kedahttp ./charts/keda-http-operator -n ${NAMESPACE}

Installing the HTTP add on won't affect any running workloads in your cluster. You'll need to install an HTTPScaledObject for each individual Deployment you want to scale. For more on how to do that, please see the walkthrough.

There are a few values that you can pass to the above helm install command by including --set NAME=VALUE on the command line.

  • images.operator - the name of the operator's Docker image.
  • images.scaler - the name of the scaler's Docker image.
  • images.interceptor - the name of the interceptor's Docker image.

A Note for Developers and Local Cluster Users

Local clusters like Microk8s offer in-cluster image registries. These are popular tools to speed up and ease local development. If you use such a tool for local development, we recommend that you use and push your images to its local registry. When you do, you'll want to set your images.* variables to the address of the local registry. In the case of MicroK8s, that address is localhost:32000 and the helm install command would look like the following:

helm install kedahttp ./charts/keda-http-operator \
    -n ${NAMESPACE} \
    --set images.operator=localhost:32000/keda-http-operator \
    --set images.scaler=localhost:32000/keda-http-scaler \
    --set images.interceptor=localhost:32000/keda-http-interceptor