Skip to main content
Ankra has to reach into your cluster to deploy Stacks, read resources and stream logs, but you should not have to open the cluster to the internet for that. The Ankra Agent solves this: it runs inside the cluster, opens an outbound connection to Ankra, and carries every request over it. How Ankra Works shows where the agent sits in the overall model. The agent ships as a single Go binary on the 2.x version track (2.0.x), installed with a Helm chart into the ankra namespace. Whether the platform upgrades a cluster’s agent for you depends on the auto-upgrade settings described in Upgrading the Agent.
The agent requires cluster-admin permissions to manage all Kubernetes resources and deploy add-ons.

What the Agent Does

  • Resource browsing - lists and watches Deployments, Pods, Services and other resource types for the portal, CLI and AI.
  • Pod logs - streams container logs to Ankra.
  • Deployments - installs and upgrades your Stacks’ add-ons and manifests with the native Helm engine (the default) or through ArgoCD. See Deployment Engines.
  • kubectl access - proxies authenticated kubectl requests to the cluster API server with no inbound ports. See Accessing Clusters with kubectl.
  • Fleet map reporting - optionally reports the cluster’s public egress IP so it appears on the Dashboard world map.

Installation

When you import a cluster, Ankra generates a Helm install command with a unique token. It looks like this:
Copy the exact command from the Import dialog rather than typing this one: it pins the agent version and carries your cluster’s token. The agent will connect to the platform and your cluster will appear online within seconds.

Verify Installation

Check the agent is running:
View agent logs:

Cluster States

Every cluster carries one status badge, shown on the clusters list, in the cluster’s sidebar and in the activity drawer. It combines whether the agent is connected with the health of what runs on the cluster: The activity drawer lists the reasons behind a Needs Attention badge. A real failure always wins: a cluster that is provisioning, awaiting connection or stopped still shows Needs Attention if an operation failed or a resource is failing. While the agent is offline, the cluster’s workloads keep running, but Ankra cannot deploy to the cluster or show live resources and logs. Its configuration and history stay available. To bring it back, see Agent Not Connecting.

Configuration Reference

Required Settings

Using an Existing Secret

For production environments, store the token in a Kubernetes secret:
Then reference it in your Helm install:

Performance Tuning

For large clusters (1000+ resources), adjust these settings: Example for large clusters:

Fleet world map (public IP reporting)

To place an imported cluster on the Dashboard world map when it has no recognisable cloud region, let the agent report its public egress IP on check-in:
When enabled, the agent performs an outbound HTTP lookup (to public_ip.lookup_url, default https://api.ipify.org) and reports the result. Leave it disabled (the default) for air-gapped clusters or where egress IP lookups are undesirable.

All Helm Values

The complete value list - connection, workers, watch tuning, public IP reporting, image, security contexts, scheduling, and metrics - lives in the Agent Helm Values reference.
The agent runs as a non-root container by default (runAsNonRoot: true, UID/GID 1000, readOnlyRootFilesystem: true, all Linux capabilities dropped, seccompProfile: RuntimeDefault). Because the root filesystem is read-only, the chart mounts writable emptyDir volumes for /tmp, ~/.cache, and ~/.config via writable_volumes.enabled (default true). Don’t lower these security settings unless you are running a custom image.

Advanced tuning via extra_env

Less-common knobs are set as environment variables through extra_env:

Architecture

The agent uses a NATS-based architecture for real-time communication: Key features:
  • Outbound connections only - The agent initiates all connections, no inbound ports required
  • Real-time streaming - Resource data streams efficiently using pagination
  • Automatic reconnection - Handles network interruptions gracefully
  • kubectl proxy - Forwards authenticated kubectl requests (including watch, logs -f, and exec) from the platform to the cluster API server, so you can reach private clusters without inbound access. See Accessing Clusters with kubectl.
  • Health monitoring - Exposes /livez and /readyz endpoints on port 8080

Network Requirements

The agent requires outbound connectivity to: No inbound ports need to be opened on your cluster.

Upgrading the Agent

New agent releases are published on the 2.0.x version track. When auto-upgrade is on, the platform rolls clusters forward to the latest published version, a few clusters at a time. You can still trigger an upgrade yourself at any time.
  • Organisations created since 7 September 2026 have Auto-upgrade Agents on by default. Older organisations turn it on in Organisation Settings → General.
  • A single cluster can opt out with Disable Auto-upgrade in its own settings.

From the Platform

In the cluster’s Settings → General, click Upgrade to v<version>. The agent will self-upgrade using Helm.

Manually

Check the current agent version:

Troubleshooting

Agent Not Connecting

  1. Check agent pods are running:
  2. View agent logs:
  3. Verify network connectivity:
  4. Check the token is set:

Common Issues

Health Checks

The agent exposes health endpoints:

Uninstalling

To remove the agent from your cluster:
Uninstalling the agent will disconnect your cluster from Ankra. You’ll need to re-import it to reconnect.

Security

RBAC Requirements

The agent requires cluster-admin permissions to:
  • Browse all Kubernetes resources
  • Deploy Helm charts and manifests
  • Manage add-ons via the native Helm engine or ArgoCD
  • Stream pod logs and proxy authenticated kubectl requests
The Helm chart creates a ClusterRoleBinding with the necessary permissions.

Token Security

  • Tokens are unique per cluster
  • Tokens can be revoked by deleting the cluster from Ankra
  • Store tokens in Kubernetes secrets (not in Helm values) for production