Skip to main content

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:

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:

  1. In the DoiT console, select Data ingestion and integrations > Integrations from the top navigation mega menu.

  2. On the Kubernetes integration card, select Details. Here you'll find all the clusters uncovered via the daily scan by the platform.

    Kubernetes assets list

  3. Choose your next step in accordance with the type of cluster you want to onboard.

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.

Kubernetes onboard - map clusters

Option 2: Install agent via Helm chart​

  1. Install Helm on your local system if you haven't done so.

  2. Make sure the kubectl command-line tool is configured to communicate with your cluster.

    There are multiple ways to point kubectl to the correct cluster. Here is one approach:

    1. Associate your IAM user with the AmazonEKSClusterAdminPolicy access policy for the target cluster.

    2. Create a kubeconfig file to connect kubectl to the EKS cluster, using the following command in the AWS CLI:

      aws eks update-kubeconfig --name <eks_cluster_name> --region <region>

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

    Kubernetes onboard - install agent: map cluster

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

    Kubernetes onboard - install agent

  5. If the PerfectScale tenant dropdown is available, select the tenant to onboard the cluster to.

    Note

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

  6. Select Generate secret to generate the Helm deploy command with embedded credentials.

    1. Note down the values of secret.clientId and secret.clientSecret in the Helm command displayed in the console. Avoid generating the command more than once unless you need new credentials.

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

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

Note

This demo covers AWS/EKS steps only; GKE users should follow the written instructions above.