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
Cluster configuration

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.
Click the
Generate Secretbutton.
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 exporter on specific nodes
PerfectScale allows running the exporter on particular nodes. To run the exporter 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
helm upgrade --install -n perfectscale --create-namespace perfectscale \
--set secret.create=true \
--set secret.clientId=**** \
--set secret.clientSecret=**** \
--set settings.clusterName=name \
--set nodeSelector.type=monitoring \
--set tolerations[0].effect=NoSchedule,tolerations[0].key=monitoring,tolerations[0].operator=Exists \
--set kube-state-metrics.nodeSelector.type=monitoring \
--set kube-state-metrics.tolerations[0].effect=NoSchedule,kube-state-metrics.tolerations[0].key=monitoring,kube-state-metrics.tolerations[0].operator=Exists \
perfectscale/exporterMix 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 exporter 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:
helm upgrade --install -n perfectscale --create-namespace perfectscale \
--set secret.create=true \
--set secret.clientId=**** \
--set secret.clientSecret=**** \
--set settings.clusterName=name \
--set nodeSelector.beta\\.kubernetes\\.io/os=linux \
--set kube-state-metrics.nodeSelector.beta\\.kubernetes\\.io/os=linux \
perfect scale/exporterGPU 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:
helm upgrade --install -n perfectscale --create-namespace perfectscale \
--set secret.create=true \
--set secret.clientId=**** \
--set secret.clientSecret=**** \
--set settings.clusterName=name \
--set settings.dcgm.exporterEnabled=true \
--set settings.dcgm.exporterNamespace="perfectscale" \
--set settings.dcgm.exporterPort="9400" \
--set settings.dcgm.exporterLabelSelector="app=nvidia-dcgm-exporter"
perfectscale/exporterThe DCGM exporter is required. Without it, PerfectScale will be unable to collect and display GPU utilization data.
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:
--set settings.corootNodeAgent.enabled=falseDeploy 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:
coroot:
nodeSelector:
kubernetes.io/os: linuxHelm command example:
helm upgrade --install perfectscale ..... \
--set coroot.nodeSelector."kubernetes\.io/os"=linux \
perfectscale/exporterTo restrict workloads to a specific set of nodes (for example, those labeled component=java), you can combine multiple node selectors.
YAML values file example:
coroot:
nodeSelector:
kubernetes.io/os: linux
component: javaHelm command example:
helm upgrade --install perfectscale ..... \
--set coroot.nodeSelector."kubernetes\.io/os"=linux \
--set coroot.nodeSelector.component=java \
perfectscale/exporterWindows 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:
helm upgrade --install -n perfectscale --create-namespace perfectscale \
--set secret.create=true \
--set secret.clientId=**** \
--set secret.clientSecret=**** \
--set settings.clusterName=your-dev-cluster \
--set settings.deployWindowsExporter=true \
--set settings.windowsExporterEnabled=true \
--set settings.windowsExporterNamespace="perfectscale" \
--set settings.windowsExporterPort="9182" \
--set settings.windowsExporterLabelSelector="app.kubernetes.io/name=prometheus-windows-exporter"
perfectscale/exporterSize PerfectScale Agent
For large clusters, if you are not using automation, use PerfectScale’s recommendations for psc-exporter to properly size it.
Uninstalling PerfectScale Agent
To uninstall the PerfectScale Agent, execute the following command
helm -n perfectscale uninstall psc-exporterLast updated
Was this helpful?