How to onboard a cluster

Step-by-step guide on how to onboard your first cluster and start optimizing within a few minutes

Onboarding instructions

  1. Login into the PerfectScale app.

  2. Once logged in, navigate to the Overview tab.

  3. You can see a button to connect a new Kubernetes cluster. To connect a new cluster, click the Add Cluster button. A pop-up window with the following steps will appear.

    Onboard first cluster
    Onboard first cluster

To provision clusters dynamically, follow the instructions for Onboarding clusters programmatically.

Cluster configuration

Cluster configuration
Cluster configuration

PerfectScale does not support Windows nodes. If your cluster contains both Windows and Linux nodes, adding the nodeSelector to run PerfectScale exporter on the Linux nodes is necessary. Follow the extra instructions provided to run PerfectScale on these nodes.

  1. In a pop-up window, click Copy to Clipboard and clone the helm chart provided on p.1.

  2. 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

The Optimization Policy feature allows you to specify how your resources should be allocated in order to support the individual needs of your workloads. Define the policies that best suit your environment and business goals, depending on whether you want to maximize cost savings or provide extra headroom to maintain the resilience of mission-critical services. The Optimization Policy can be set for the entire cluster and for a specific workload. The workload's Optimization Policy takes precedence and will override the value defined at the cluster level.

If an Optimization Policy is set through the exporter when installing the PerfectScale Agent, it cannot be modified in the UI afterward. You can still change the policy by upgrading the exporter with the new value, or you can return it to the default by upgrading the exporter without specifying any value (this will also enable the option to change the custom time window through the UI).

Example:

helm upgrade --install -n perfectscale --create-namespace perfectscale \
  --set settings.clusterOptimizationPolicy=MaxSavings \ # specify the desired Optimization Policy
  --reset-then-reuse-values \
perfectscale perfectscale/exporter

Discover more about customizing the Optimization policy here.

  1. Click the Generate Secret button.

  1. Execute the command from Deploy PerfectScale.

If you are utilizing both Windows and Linux nodes within the cluster, it is necessary to run PerfectScale exporter on the Linux nodes. You can do it following the instructions -> Mix of Windows and Linux nodes.

PerfectScale supports Windows containers. To enable support for Windows containers, follow the instructions outlined here.

  1. Click on the Finish and Close button.

It is not supported to install multiple exporters in a single cluster, as it may result in unexpected results.

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.

Agent status
Agent status

💡 Discover additional information regarding the Overview.

Your cluster will become visible only after it starts transmitting data.

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:

  1. nodeSelector (in case there is no taint on the node).

  2. nodeSelector & toleration (in case of taint on the node).

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/exporter

Mix of Windows and Linux nodes

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/exporter

GPU support

GPU support is available starting with the exporter version 1.0.55.

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.

PerfectScale now only supports NVIDIA Data Center GPU Manager (DCGM).

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/exporter

Windows containers support

Make sure you are using PerfectScale exporter version 1.0.53 or later to enable 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:

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/exporter
  • Make sure the Helm parameter windowsExporterEnabled is set to true

  • If the windows-exporter should be deployed by the PerfectScale Helm set deployWindowsExporter=true. In that case, no additional configurations are needed, as the default values will be sufficient.

  • If deployWindowsExporter set tofalse, the additional parameters listed below need to be configured. Helm parameters should be configured according to the user’s environment:

    • windowsExporterNamespace

    • windowsExporterPort

    • windowsExporterLabelSelector

Uninstalling PerfectScale Agent

To uninstall the PerfectScale Agent, execute the following command

helm -n perfectscale  uninstall psc-exporter

Last updated