Getting Started
~5 Minutes
Quick Start
This guide installs the Kubeadapt agent with Helm and connects your cluster to the dashboard. It takes about five minutes; the first cost figures appear within 30 minutes.
- 5 steps
- ~5 min
- Helm 3
Before you start
You need
Required Kubernetes 1.24 to 1.35
EKS, GKE, AKS, OpenShift, kubeadm, kops, or Rancher. GKE Autopilot and EKS Fargate run the cost agent; the network agent needs standard nodes.
Required Helm 3
For the chart install (
helm version).Required kubectl
With rights to create a namespace and cluster-wide RBAC.
Required metrics-server
Running in the cluster (
kubectl get deployment metrics-server -n kube-system). GKE and AKS include it; EKS and kind clusters need it installed. Without it, the agent records cost but not usage, so there are no rightsizing recommendations.Required Outbound HTTPS
To
ingest.kubeadapt.iofrom the cluster.Optional AWS account
Connect it later so Reserved Instance and Savings Plan discounts show in your prices.
- 1
Step 1: Add the Helm repository
Add the chart repository so Helm can find the Kubeadapt chart.
bashhelm repo add kubeadapt https://kubeadapt.github.io/kubeadapt-helm helm repo updateConfirm it appears:
bashhelm repo list | grep kubeadapt - 2
Step 2: Get an agent token
Each cluster gets its own token from the dashboard. The agent sends it as a bearer token over HTTPS.
- Open app.kubeadapt.io.
- Navigate to Clusters → Add Cluster.
- Pick your provider: Amazon EKS, Google GKE, Azure AKS, or On-Premises.
- Name the cluster and choose Production or Non-Production.
- Copy the install command, or just the token.
The install step also has a switch for auto-upgrade, which adds a
--setflag to the command. NVIDIA GPUs are picked up automatically when DCGM Exporter runs. To reflect AWS Reserved Instance and Savings Plan discounts, connect your AWS account afterwards (see AWS integration). - 3
Step 3: Install the agent
Keep the token in a Secret, so it never appears in the Helm command, your shell history or
helm get values:bashkubectl create namespace kubeadapt kubectl create secret generic kubeadapt-agent-token \ --namespace kubeadapt --from-literal=token="<your-token>" helm install kubeadapt kubeadapt/kubeadapt \ --namespace kubeadapt \ --set agent.config.existingSecret=kubeadapt-agent-tokenFor a quick try, paste the dashboard’s command, or use this one:
bashhelm install kubeadapt kubeadapt/kubeadapt \ --namespace kubeadapt --create-namespace \ --set agent.config.token="<your-token>"The chart creates the agent Deployment and Service, a ServiceAccount, a ClusterRole with list and watch on cluster resources, a Role in the
kubeadaptnamespace (Jobs, ConfigMaps, and read access to Secrets), and a Secret that holds the token. It adds no CRDs and no admission webhooks. Withagent.config.existingSecretset, the chart reads the token from your Secret (keytoken) and creates none. From chart 1.0.8 the agent pod meets the Kubernetes restricted Pod Security Standard: it runs as a non-root user, with a read-only root filesystem and no privilege escalation.On OpenShift, add these flags so the restricted-v2 SCC can assign the user and group:
bash--set agent.podSecurityContext.runAsUser=null \ --set agent.podSecurityContext.runAsGroup=null \ --set agent.podSecurityContext.fsGroup=null - 4
Step 4: Verify the install
Check that the agent pod is running:
bashkubectl get pods -n kubeadaptExpected output
plaintextNAME READY STATUS RESTARTS AGE kubeadapt-agent-7fbd9d8c4-xq2nm 1/1 Running 0 45sThen check the logs. The agent logs one line when it starts and one each time a snapshot reaches Kubeadapt, about once a minute:
bashkubectl logs -n kubeadapt deploy/kubeadapt-agent \ | grep -E "capabilities detected|agent is ready|snapshot sent"Expected output
plaintext… INFO cluster capabilities detected metrics_server=true vpa=false karpenter=false dcgm_exporter=false provider=aws … INFO agent is ready state=… … INFO snapshot sent successfully snapshot_id=… quota_plan=… within_quota=trueIf no “snapshot sent successfully” line appears after two minutes, see Troubleshooting below.
- 5
Step 5: Open your cluster in the dashboard
- Return to app.kubeadapt.io.
- Your new cluster appears in the Clusters list once the first snapshot arrives, usually within a minute.
- The first cost figures appear within 30 minutes.
- Rightsizing recommendations use a 7-day usage window, so the first ones appear about a week after install.
Your cluster is now sending data to Kubeadapt.
What’s next
Connect your cloud account
Connect AWS so Reserved Instance and Savings Plan discounts show in your prices.
Understand cost attribution
How dollars flow from cloud bill to container.
Apply rightsizing
Follow the rightsizing guide. Recommendations use a 7-day usage window; start with non-production workloads.
Use the CLI
Query costs and recommendations from your terminal with the
kubeadaptCLI.Hit the REST API
Build dashboards or pipe data into your warehouse with the REST API.
Tune the agent
Resource limits, the optional eBPF agent, auto-upgrade.
Troubleshooting
Pod stuck in
PendingUsually not enough free capacity on any node. The agent requests 100m CPU and 256Mi memory. Free up capacity or add a node.
Pod stuck in
ImagePullBackOffOutbound HTTPS to the image registry (
public.ecr.aws) is blocked. Mirror the image to an internal registry and overrideagent.image.repository.Snapshots not reaching Kubeadapt
Check outbound HTTPS to
ingest.kubeadapt.ioand that the token is correct. The agent retries failed sends; each failure is logged assnapshot send failedwith the error.No rightsizing recommendations after 7 days
Verify
metrics-serveris healthy:kubectl top nodesshould return data. Without metrics, the agent records cost but not usage.
Still stuck? Email support@kubeadapt.io with the agent logs.
Uninstalling
helm uninstall kubeadapt --namespace kubeadapt
kubectl delete namespace kubeadapthelm uninstall leaves the kubeadapt namespace and any Secret you created yourself; deleting the namespace removes both. Then delete the cluster on the Clusters page in Kubeadapt, which revokes its token.
Uninstalling stops data collection. Data already sent remains in your Kubeadapt organization. An admin can delete the organization in Settings → General, which removes everyone’s access at once. To have its stored data erased, write to support@kubeadapt.io.