How to onboard a cluster
Step-by-step guide on how to onboard your first cluster and start optimizing within a few minutes
PerfectScale is compatible and can be deployed in any Kubernetes environment, including EKS/EKS Anywhere, GKE, AKS, KOPS, private cloud, and other Kubernetes distributions.
Onboarding instructions
Login into the PerfectScale app.
Once logged in, navigate to the
Overviewtab.You can see a button to connect a new Kubernetes cluster. To connect a new cluster, click the
Add Clusterbutton. A pop-up window with the following steps will appear.
Onboard first cluster
PerfectScale Agent deployment
Onboarding PerfectScale to a cluster, starts with deploying the PerfectScale Agent. There are 2 deployment methods for doing so:
Method 1: PerfectScale Operator 1. Use helm to deploy the PerfectScale Operator. The full list of all possible PerfectScale Operator helm (input) values can found here. 2. Use kubectl to deploy an Agents CR (Custom Resource of kind: Agents) 3. The PerfectScale Operator will then deploy the PerfectScale Agent based on the Agents CR.
Method 2: Helm Deployment 1. Use helm to deploy the PerfectScale Agent The full list of all possible PerfectScale Agent helm (input) values can found here.

In a pop-up window, click
Copy to Clipboardand clone the Helm chart provided on p.1.Enter a name for your cluster and select the desired Optimization Policy:
MaxSavings - maximum cost savings, the best for non-production environments
Balanced (default) - optimally balances cost and resiliency
ExtraHeadroom - the best fit for latency-sensitive environments
MaxHeadroom - keeps the environment above the highest spikes
Discover more about customizing the Optimization policy here.
Connecting cluster with PerfectScale Operator
Once you have named your cluster and selected the Optimization Policy, click Get Install Command, so PerfectScale will provide you with the needed installation components.

Add Helm repo:
Deploy PerfectScale Operator:
Apply CRD:
Connecting cluster with Helm
Once the optimization policy is selected, preceede wit hthe following steps:
Click the Generate Secret button.
For security reasons, PerfectScale does not store your secret key.
Execute the command from Deploy PerfectScale.
Click on the
Finish and Closebutton.
The newly added cluster will appear under the Clusters list in the Overview tab. Once the Agent Status becomes green, the cluster data will appear, which indicates successful cluster creation.

💡 Discover additional information regarding the Overview.
Run PerfectScale agent on specific nodes
PerfectScale allows running the agent on particular nodes. To run the agent on the specific nodes, use one of the following options:
nodeSelector(in case there is no taint on the node).nodeSelector & toleration(in case of taint on the node).
In case you are using zsh shell, make sure to add noglob before the helm command
Mix of Windows and Linux nodes
If the cluster contains both Windows and Linux nodes, it is necessary to add the following extra nodeSelector to run PerfectScale agent on the Linux nodes:
--set nodeSelector.beta\\.kubernetes\\.io/os=linux --set kube-state-metrics.nodeSelector.beta\\.kubernetes\\.io/os=linux
For Step 4 in the Cluster configuration instructions above, utilize the subsequent command to designate the Windows nodes:
GPU support
PerfectScale’s advanced GPU support feature helps teams optimize resource-intensive applications like AI, machine learning, cloud computing, etc., ensuring better performance, reducing costs, and improving overall efficiency across the entire Kubernetes stack.
In order to enable GPU support, in Step 4 in the Cluster configuration instructions above, utilize the following command:
The DCGM exporter is required. Without it, PerfectScale will be unable to collect and display GPU utilization data.
Required DCGM metrics for GPU memory support
PerfectScale requires the DCGM exporter to expose two GPU framebuffer metrics:
DCGM_FI_DEV_FB_TOTAL- total framebuffer capacityDCGM_FI_DEV_FB_RESERVED- driver-reserved framebuffer
PerfectScale uses these metrics to calculate GPU memory utilization. If they are not exposed, GPU memory columns in InfraFit, PodFit, and node-group views will appear empty.
The default dcgm-exporter counters file does not enable DCGM_FI_DEV_FB_TOTAL.
DCGM_FI_DEV_FB_RESERVED was introduced in DCGM 3.0, so it may also be missing from older dcgm-exporter builds.
To confirm which metrics are currently exposed in your cluster, run:
If the command returns no output, add the missing metrics to the DCGM exporter configuration. Use one of the following approaches to update the DCGM exporter configuration:
Patch the DCGM ConfigMap directly
Use this option if the GPU Operator is installed and managed manually, and the DCGM exporter ConfigMap is not controlled by GitOps or another reconciliation process.
Find the ConfigMap that contains the DCGM exporter metrics list
Edit the relevant ConfigMap
Locate the dcgm-metrics.csv key
This key contains the list of DCGM fields exposed by the exporter. Add the following metrics to that list and save the ConfigMap.
Restart the DCGM exporter
Configure metrics through Helm values
Use this option if the GPU Operator is managed by ArgoCD, Flux, or another GitOps workflow.
In GitOps-managed clusters, manual edits to the ConfigMap are usually overwritten during the next reconciliation. Instead, define a custom metrics ConfigMap and reference it from the GPU Operator Helm values.
Update the GPU Operator Helm values
This will point the DCGM exporter to your custom ConfigMap.
Create a ConfigMap with the same name in the gpu-operator namespace
The ConfigMap must include a dcgm-metrics.csv key that contains NVIDIA’s default counters list plus the required framebuffer metrics
Check if the dcgm-metrics.csv file includes the following entries
Restart the DCGM exporter
Propagation
After the DCGM exporter restarts, run the verify command again to make sure both metrics are exposed.
Once they are available, it may take up to 15 minutes for GPU memory data to appear in the PerfectScale UI.
Java containers support
PerfectScale automatically identifies Java containers running in your Kubernetes environment and collects JVM metrics from them. By continuously analyzing them, PerfectScale provides granular visibility into resource usage, identifying potential bottlenecks. Based on this analysis, PerfectScale generates tailored recommendations to help ensure that your services remain efficient and maintain consistent performance.
PerfectScale starts collecting JVM metrics automatically. However, if for some reason you do not want PerfectScale to collect this data, you can disable it by turning off the deployment of psc-coroot-node-agent during agent installation:
Deploy coroot pods to specific nodes
If your cluster includes both Linux and Windows nodes, make sure to set a nodeSelector for Linux when deploying workloads that are not Windows-compatible.
YAML values file example:
Helm command example:
To restrict workloads to a specific set of nodes (for example, those labeled component=java), you can combine multiple node selectors.
YAML values file example:
Helm command example:
Windows containers support
PerfectScale supports Windows-based containers, allowing you to optimize and manage them seamlessly. To enable this feature, as a Step 4 in a cluster configuration, execute the following command:
Size PerfectScale Agent
For large clusters, if you are not using automation, use PerfectScale’s recommendations for psc-exporter to properly size it.
Setting cAdvisor scraping mode
If you prefer not to expose node/proxy permissions, execute the following command when installing the exporter:
Depending on your security and access requirements, specify one of the scraping modes:
auto (default): Direct scraping with automatic failover to proxy if all nodes fail.direct: Force direct node scraping; excludes nodes/proxy RBAC permissions.nodeProxy: Force proxy scraping via the Kubernetes API.
Uninstalling PerfectScale exporter
If the exporter was installed via Helm
To uninstall the PerfectScale exporter, run the following command
Disconnect the cluster in Cluster Settings

Delete other PerfectScale agents (Optional)
If the exporter was installed via PerfectScale Operator
Delete the Agents CR
Run the following command to uninstall the exporter and any other agents defined in the CR.
Uninstall Operator helm release (Optional)
Delete other PerfectScale agents (Optional)
How to whitelist PerfectScale on GKE with binary authorization enabled
If your GKE cluster enforces Binary Authorization, you need to add PerfectScale images to the Binary Authorization policy whitelist before installation.
Add the following entries under admissionWhitelistPatterns:
Example:
These entries allow:
PerfectScale images from
public.ecr.aws/perfectscale-iokube-state-metricsimages fromregistry.k8s.io
Without this, PerfectScale components may be blocked from running in clusters where Binary Authorization is enforced.
Last updated
Was this helpful?