This topic describes how to deploy Zesty Compute Optimization (“Compute Optimization”).
You deploy Compute Optimization by using Helm to install the Kompass agent (“agent”). After installing the agent, the cluster is “connected” for Compute Optimization.
The agent provides visibility into your Kubernetes cluster and workload costs, scaling performance, usage, and pattern history. With agent visibility, Compute Optimization can make recommendations for your environment.
The agent collects cluster data in read-only mode. Its ClusterRole permissions and helper permissions define the Kubernetes resources and actions it can access.
For optional configuration, including credentials, storage, VictoriaMetrics, custom pricing, and node placement, see Advanced Kompass agent configuration.
Installing the agent enables the following Compute Optimization capabilities on the cluster:
Multi-dimensional autoscaling (MDA): Does not change a workload until you apply the MDA solution to it.
To apply MDA, see either Apply MDA optimization with YAML or Apply MDA optimization with the UI.
Adaptive Pod Placement (APP): Runs in read-only mode, collecting and displaying data about potential savings.
To configure APP to consolidate nodes, see Apply Adaptive Pod Placement.
You can install the Kompass agent on clusters running in the following environments:
EKS: Amazon Elastic Kubernetes Service
AKS: Azure Kubernetes Service
GKE: Google Kubernetes Engine
OKE: Oracle Container Engine for Kubernetes
Other: On-premises and more
Bash commands
The commands in this topic are written for Bash. If you use a different command-line shell, adapt the commands for that shell.
Prerequisites
The administrator client used to install the Kompass agent must have:
kubectlHelm v3.14, or later
Access to the cluster with permission to create a namespace and a
ClusterRole
Installation steps
To view the installation steps for your Kubernetes environment, expand the section.
Install on Amazon EKS
Start the installation wizard:
From the Compute Optimization > Dashboard (or Clusters)page, click Connect clusters.
Select your Kubernetes provider.
Prepare values.yaml:
If cert-manager is installed in the cluster, select that option.
cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it.
Enter the PVC storage class.
This is normally the default storage class.
Click Next.
Install the Helm chart:
Download values.yaml by copying and running the code.
After values.yaml is downloaded, copy and run the Helm install code.
After all Pods reach the Running or Completed state, click Helm install is done.
Once the Kompass agent is installed, Compute Optimization starts collecting cluster data.
For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed.
Install on Azure Kubernetes Service (AKS)
Start the installation wizard:
From the Compute Optimization > Dashboard (or Clusters)page, click Connect clusters.
Select your Kubernetes provider.
Prepare values.yaml:
If cert-manager is installed in the cluster, select that option.
cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it.
Enter the PVC storage class.
This is normally the default storage class.
Click Next.
Install the Helm chart:
Download values.yaml by copying and running the code.
After values.yaml is downloaded, copy and run the Helm install code.
After all Pods reach the Running or Completed state, click Helm install is done.
Once the Kompass agent is installed, Compute Optimization starts collecting cluster data.
For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed.
Install on Google Kubernetes Engine (GKE)
Start the installation wizard:
From the Compute Optimization > Dashboard (or Clusters)page, click Connect clusters.
Select your Kubernetes provider.
Enter the cluster details, then click Next.
Prepare values.yaml:
If cert-manager is installed in the cluster, select that option.
cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it.
Enter the PVC storage class.
This is normally the default storage class.
Click Next.
Install the Helm chart:
Download values.yaml by copying and running the code.
After values.yaml is present, copy and run the Helm install code.
After all Pods reach the Running or Completed state, click Helm install is done.
Once the Kompass agent is installed, Compute Optimization starts collecting cluster data.
For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed.
Install on OCI Kubernetes Engine (OKE)
Start the installation wizard:
From the Compute Optimization > Dashboard (or Clusters)page, click Connect clusters.
Select your Kubernetes provider.
Prepare values.yaml:
If cert-manager is installed in the cluster, select that option.
cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it.
Enter the PVC storage class.
This is normally the default storage class.
Click Next.
Install the Helm chart:
Download values.yaml by copying and running the code.
After values.yaml is downloaded, copy and run the Helm install code.
After all Pods reach the Running or Completed state, click Helm install is done.
Once the Kompass agent is installed, Compute Optimization starts collecting cluster data.
For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed.
Install in another cloud or an on-premises environment
Start the installation wizard:
From the Compute Optimization > Dashboard (or Clusters)page, click Connect clusters.
Select Other.
Enter cluster details, then click Next.
Prepare values.yaml:
If cert-manager is installed in the cluster, select that option.
cert-manager issues and renews the TLS certificates the agent needs. If it’s not already installed, we’ll install it.
Enter the PVC storage class.
This is normally the default storage class.
Click Next.
Install the Helm chart:
Download values.yaml by copying and running the code.
After values.yaml is present, copy and run the Helm install code.
After all Pods reach the Running or Completed state, click Helm install is done.
Once the Kompass agent is installed, Compute Optimization starts collecting cluster data.
For Multi-dimensional autoscaling, it can take up to 24 hours before recommendations are displayed.
Kompass license
When you install the Kompass agent, Compute Optimization creates a Kubernetes Secret in the Zesty namespace to store the Kompass license information. Compute Optimization manages this Secret automatically.
This Secret is separate from the credentials Secret described in Advanced Kompass agent configuration.
Troubleshoot the Kompass license
If the Kubernetes Secret that stores the Kompass license information is deleted, Compute Optimization automatically recreates it with no impact on use.
If the Secret is modified, you can no longer use Kompass. Contact your CSM to recover access.
Advanced Kompass agent configuration
The installation wizard generates the values.yaml file required to install the Kompass agent. In most cases, you can use the generated configuration without making additional changes.
Before installing the Helm chart, you can edit values.yaml to customize the agent configuration.
Configure credentials
Click here to see the options for secret usage
The Kompass agent uses a credentials Secret (in addition to the license Secret) for the encrypted credentials required during installation. You can let the Helm chart create this Secret, or manage it independently using your own secret store (for example, Azure Key Vault, AWS Secrets Manager, or HashiCorp Vault).
Let Helm create the Secret
Configure values.yaml to enable secret creation and provide the encrypted credentials from Zesty.
kompass-insights:
secret:
create: true
# Provide the credential value directly here
# value: '<encrypted-credentials-provided-by-zesty>'Use an existing Secret
Before installing the Helm chart, deploy the Secret to the zesty-system namespace. The Secret must contain the key ENCRYPTED_CREDENTIALS.
For example (Bash):
kubectl create namespace zesty-system
kubectl -n zesty-system create secret generic kompass-credentials \
--from-literal=ENCRYPTED_CREDENTIALS='<encrypted-credentials-provided-by-zesty>'Then, remove the secret from the downloaded values.yaml and configure the Helm chart to use the existing Secret:
kompass-insights:
secret:
create: false
name: kompass-credentialsConfigure storage
You can configure the PVC storage class and storage sizes in values.yaml.
PVC storage class
Enter the name of the PVC StorageClass used by the agent.
If you do not know the name, run:
kubectl get storageclass
Kompass agent PVC size
For best performance, Zesty recommends setting the Kompass agent PVC size based on the number of workloads in the cluster:
Workloads | Recommended value |
|---|---|
Up to 1,000 |
|
1,000–5,000 |
|
5,000–10,000 |
|
Above 10,000 |
|
Configure the value in values.yaml:
kompass-insights:
persistence:
spec:
resources:
requests:
storage: "1Gi"VictoriaMetrics server volume size
Set the VictoriaMetrics server volume size based on the number of workloads in the cluster:
Workloads | Recommended value |
|---|---|
Up to 1,000 |
|
1,000–10,000 |
|
Above 10,000 |
|
Configure the value in values.yaml:
victoriaMetrics:
server:
persistentVolume:
size: "30Gi"Configure VictoriaMetrics
Zesty uses VictoriaMetrics to store and query cluster metrics. VictoriaMetrics can run in Single-Pod mode or Cluster mode.
Single-Pod mode
Single-Pod mode is the default. It runs a standalone VictoriaMetrics instance.
This mode is suitable for small or non-production environments and provides no redundancy if the Pod becomes unavailable.
Set:
victoriaMetrics:
enabled: true
victoriaMetricsCluster:
enabled: false
victoriaMetricsAuth:
enabled: true
useSingle: trueCluster mode
Cluster mode runs a multi-component VictoriaMetrics cluster with vmselect, vminsert, and vmstorage and multiple replicas.
This mode provides higher availability, fault tolerance, and scalability.
Cluster mode is recommended for:
production clusters
large clusters, for example, 100+ nodes or 1,000+ Pods
high-churn environments, where approximately 10% or more of workloads are Jobs, CI/CD pipelines, or other short-lived Pods
KEDA-heavy environments, where KEDA manages at least 10% of workloads
Set:
victoriaMetrics:
enabled: false
victoriaMetricsCluster:
enabled: true
victoriaMetricsAuth:
enabled: true
useSingle: falseEnsure the selected mode matches your environment’s availability and scalability requirements before installing the Helm chart.
If you edit VictoriaMetrics parameters, ensure that the values of these parameters are equal:
victoriaMetricsNameOverridevictoriaMetricsRemoteUrlvictoriaMetricsRemoteWriteUrl
Configure custom pricing
Use custom pricing to make the data in Compute Optimization more accurately reflect your environment.
Custom pricing applies to clusters outside AWS and Azure. AWS and Azure use public list pricing.
values.yaml contains the following default prices, in USD:
customPricing:
cpu: 0.031611
ram: 0.004237
spotCpu: 0.006655
spotRam: 0.000892The parameters represent:
cpu: On-Demand price per vCPU-hourram: On-Demand price per GiB-hourspotCpu: Spot price per vCPU-hourspotRam: Spot price per GiB-hour
To use custom pricing, replace these values before installing the Helm chart.
Control where the agent runs
You can control the nodes on which the Kompass agent runs.
To control the nodes that run the Kompass agent, configure nodeSelector and tolerations in values.yaml, here.
View all Helm values
For a complete list of available Helm values, see the Kompass agent values.yaml file.
Uninstall the Kompass agent
To uninstall the agent, run the following Helm command:
helm uninstall <release-name> -n <namespace>
(Optional) If the namespace is dedicated to Zesty components and you want to remove it entirely, run this command also:
kubectl delete namespace <namespace>
Caution
This command deletes everything under the namespace.