# Installation
# Requirements
- kubectl
- vertical-pod-autoscaler (opens new window) configured in the cluster
- some workloads with pods (Goldilocks will monitor any workload controller that includes a PodSpec template (
spec.template.spec.containers[]
to be specific). This includesDeployments
,DaemonSets
, andStatefulSets
among others.) - metrics-server (a requirement of vpa)
- golang 1.17+
# Installing Vertical Pod Autoscaler
There are multiple ways to install VPA for use with Goldilocks:
- Install using the
hack/vpa-up.sh
script from the vertical-pod-autoscaler repository (opens new window) - Install using the Fairwinds VPA Helm Chart (opens new window)
# Important Note about VPA
The full VPA install includes the updater and the admission webhook for VPA. Goldilocks only requires the recommender. An admission webhook can introduce unexpected results in a cluster if not planned for properly. If installing VPA using the goldilocks chart and the vpa sub-chart, only the VPA recommender will be installed. See the vpa chart (opens new window) and the Goldilocks values.yaml (opens new window) for more information.
# Prometheus (optional)
VPA (opens new window) does not require the use of prometheus, but it is supported. The use of prometheus may provide more accurate results.
# GKE Notes
VPA (opens new window) is enabled by default in Autopilot clusters, but you must manually enable it in Standard clusters (opens new window). You can enable it like so:
gcloud container clusters update [CLUSTER-NAME] --enable-vertical-pod-autoscaling {--region [REGION-NAME] | --zone [ZONE-NAME]}
NOTE: This does not support using prometheus as a data backend.
# Installation
First, make sure you satisfy the requirements above.
# Method 1 - Helm (preferred)
helm repo add fairwinds-stable https://charts.fairwinds.com/stable
kubectl create namespace goldilocks
Helm v2:
helm install --name goldilocks --namespace goldilocks fairwinds-stable/goldilocks
Helm v3:
helm install goldilocks --namespace goldilocks fairwinds-stable/goldilocks
# Method 2 - Manifests
The hack/manifests (opens new window) directory contains collections of Kubernetes YAML definitions for installing the controller and dashboard components in cluster.
git clone https://github.com/FairwindsOps/goldilocks.git
cd goldilocks
kubectl create namespace goldilocks
kubectl -n goldilocks apply -f hack/manifests/controller
kubectl -n goldilocks apply -f hack/manifests/dashboard
# Enable Namespace
Pick an application namespace and label it like so in order to see some data:
kubectl label ns goldilocks goldilocks.fairwinds.com/enabled=true
After that you should start to see VPA objects in that namespace.
# Viewing the Dashboard
The default installation creates a ClusterIP service for the dashboard. You can access via port forward:
kubectl -n goldilocks port-forward svc/goldilocks-dashboard 8080:80
Then open your browser to http://localhost:8080 (opens new window)
← Goldilocks FAQ →