Get started
Kubernetes Intelligence is included with all Cloud Intelligence plans. To enable the feature, you need to grant DoiT specific permissions and onboard Kubernetes clusters.
Enable Kubernetes core
To allow DoiT to discover Kubernetes clusters in your environment, you must enable Kubernetes core on your connected cloud resources:
-
AWS: Enable Kubernetes core when linking a new AWS account or editing a linked one. See also Feature permissions - Amazon Web Services: Kubernetes core.
-
Google Cloud: Enable Kubernetes core when connecting a Google Cloud organization or project, or when editing the connection. See also Feature permissions - Google Cloud: Kubernetes core.
-
Microsoft Azure: Enable Kubernetes core when connecting an Azure tenant. See also Feature permissions - Microsoft Azure.
Clusters discovery
Once permissions are granted, DoiT performs a daily scan of the connected cloud resources to discover Kubernetes clusters in your environment.
-
The daily scans run on schedule: midnight UTC for AWS, 1:00 AM UTC for Azure, and 2:00 AM UTC for Google Cloud.
-
For Azure, DoiT performs an additional job at 6:00 AM UTC to map resource groups to the clusters stored by the 1:00 AM discovery.
-
The daily scans do not check self-managed Kubernetes clusters.
DoiT also synchronizes with PerfectScale for clusters that have onboarded the PerfectScale platform.
Onboard clusters
The Kubernetes Intelligence agent is the PerfectScale Exporter, which runs in your cluster and sends utilization metrics to PerfectScale. DoiT surfaces those metrics in Kubernetes Intelligence and other related features in the console.
To onboard a Kubernetes cluster:
-
In the DoiT console, select Data ingestion and integrations > Integrations from the top navigation mega menu.
-
On the Kubernetes integration card, select Details. Here you'll find all the clusters uncovered via the daily scan by the platform.

-
Choose your next step in accordance with the type of cluster you want to onboard.
-
EKS, GKE, and AKS: If you've onboarded the clusters with PerfectScale, proceed to Option 1: Map clusters. Otherwise, go to Option 2: Install agent via Helm chart.
-
Self-managed: Select Connect self-managed clusters to manually add them, then install the agent.
-
Option 1: Map clusters
This option lets you avoid reinstalling the agent on clusters that already onboarded PerfectScale.
Select Map clusters to specify mappings between PerfectScale clusters and their corresponding DoiT entities.

Option 2: Install agent via Helm chart
-
Install Helm on your local system if you haven't done so.
-
Make sure the
kubectlcommand-line tool is configured to communicate with your cluster.There are multiple ways to point
kubectlto the correct cluster. Here is one approach:- Amazon Elastic Kubernetes Service
- Google Kubernetes Engine
- Azure Kubernetes Service
-
Associate your IAM user with the AmazonEKSClusterAdminPolicy access policy for the target cluster.
-
Create a
kubeconfigfile to connectkubectlto the EKS cluster, using the following command in the AWS CLI:aws eks update-kubeconfig --name <eks_cluster_name> --region <region>
-
Set your project property by running the
gcloud config set project <projectID>command. -
Update the
kubeconfigfile to pointkubectlat the GKE cluster, using the following command:gcloud container clusters get-credentials <gkeClusterName> --zone <zone> --project <projectID>
Ensure you have installed both the Azure CLI and
kubectl.Follow the Microsoft documentation to Connect to the cluster.
-
In the console, navigate to the Kubernetes assets list, locate the cluster of interest, and then select Install agent in the Action column.
If the platform identifies clusters that have installed the agent on PerfectScale but not mapped yet, you'll have the option to map the cluster and skip the following steps.

-
Copy and run the Helm command shown in the console to add the PerfectScale Helm chart repo.
The Helm chart deploys several components. Ensure your cluster nodes have enough allocatable CPU and memory for the agent pods to schedule. By default, the main exporter requests 200m CPU and 300Mi memory, and the chart also deploys supporting components such as kube-state-metrics that request additional resources.
If you use network policies, firewalls, or a proxy, allow outbound HTTPS access to the destinations required by the agent and Helm chart. See Outbound request ports used by the PerfectScale agent and PerfectScale agent for the full list of hostnames, ports, and proxy configuration.

-
If the PerfectScale tenant dropdown is available, select the tenant to onboard the cluster to.
NoteThe dropdown appears if it is the first time the cluster is assigned to a tenant and if your organization has more than one approved PerfectScale tenant. If your organization has only one approved tenant, the cluster is assigned to it automatically.
-
Select Generate secret to generate the Helm deploy command with embedded credentials.
-
Note down the values of
secret.clientIdandsecret.clientSecretin the Helm command displayed in the console. Avoid generating the command more than once unless you need new credentials. -
Copy and run the Helm command to deploy the chart.
This command registers the cluster with a PerfectScale tenant. DoiT maps that tenant to your organization, so cluster data appears in the console.
Once the command is generated, the tenant selection is locked and cannot be changed.
-
-
Select Done when the Helm deployment is completed.
Troubleshooting
The Generate secret action returns an error message in the following scenarios:
-
The cluster is already assigned to a different PerfectScale tenant. This happens when the cluster is onboarded under another tenant; it cannot be reassigned.
-
The selected tenant is not available. This happens when the tenant is not approved for your organization. Choose a different tenant from the PerfectScale tenant dropdown and try again.
Verify agent status
If the installation or mapping is successful, the Agent status of the cluster will show Waiting for data. This status may last three minutes before it changes to Transmitting data.
If the Agent status doesn't change to Transmitting data, verify that pods in the perfectscale namespace are running:
kubectl get pods -n perfectscale
Insufficient allocatable CPU or memory on cluster nodes is a common cause of scheduling failures. If pods remain in Pending status, check node capacity with kubectl describe nodes or add capacity to the cluster before retrying the installation.
To onboard multiple clusters, repeat the steps above for each one.
It can take up to three minutes for the status in the assets table to update, and up to 24 hours before the data is available in the Kubernetes Intelligence.
(Optional) Enable cost tracking
Clusters hosted on AWS EC2
To track costs for self-managed clusters hosted on AWS EC2 instances, you need to manually tag your EC2 instances with a user-defined cost allocation tag, such as eks:cluster-name. Make sure these tags are activated as cost allocation tags in your AWS billing. See Activating user-defined cost allocation tags and AWS cost allocation tags in the platform.
DoiT scans the billing data on a daily basis. If your clusters are newly created (within 72 hours) or have no spend, DoiT will not detect them.
Clusters hosted on GKE
To take full advantage of GKE Intelligence, enable GKE cost allocation on all the clusters you want to measure. See GKE cost allocation for more information.
Offboard clusters
To offboard a cluster, run the following kubectl command. Deleting the namespace removes the agent from the cluster and stops all data transmission.
kubectl delete namespace perfectscale
You can also find the command in the instructions to Delete agent.
▶️ Interactive demo for EKS
Try out our interactive demo for a hands-on walkthrough of the AWS/EKS onboarding flow.
If the demo doesn't display properly, expand your browser window or open the demo in a new tab.
This demo covers AWS/EKS steps only; GKE users should follow the written instructions above.