> ## Documentation Index
> Fetch the complete documentation index at: https://docs.akua.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Machines

> Akua-managed compute that provisions and manages worker nodes for you

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/akua-1dce587a/NTgnQstkErDoAPAb/images/heros/machines-light.svg?fit=max&auto=format&n=NTgnQstkErDoAPAb&q=85&s=042ff6c5a4be8eff80641a346834b3d6" alt="Managed machine lifecycle cards progressing from provisioning through join, ready, drain, and suspend states." width="1536" height="864" data-path="images/heros/machines-light.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/akua-1dce587a/NTgnQstkErDoAPAb/images/heros/machines-dark.svg?fit=max&auto=format&n=NTgnQstkErDoAPAb&q=85&s=a1fa7ffa1e9ec161e6374daf5baa9f67" alt="Managed machine lifecycle cards progressing from provisioning through join, ready, drain, and suspend states." width="1536" height="864" data-path="images/heros/machines-dark.svg" />
</Frame>

When you create a managed cluster, you need <Tooltip headline="Worker nodes" tip="Worker nodes are the compute machines that run your applications in a Kubernetes cluster. They provide compute capacity and are managed by Akua.">worker nodes</Tooltip> to run your applications. Akua can provision and manage these machines for you. Create a machine from the dashboard, and Akua handles the rest: server creation, Kubernetes setup, cluster joining, and lifecycle management.

<Note>
  You can also [add your own workers manually](/clusters/add-workers) by running a bootstrap command on any Linux server. Akua-managed machines are an alternative that removes the need for a separate cloud provider account.
</Note>

## Machine lifecycle

### Provisioning

When Akua provisions a machine for your cluster:

1. Akua creates a cloud server using the resolved compute config for your cluster's region.
2. The server bootstraps automatically and joins your cluster.
3. The machine appears in your dashboard with real-time status updates.
4. Akua monitors the machine and handles its full lifecycle.

You can track each machine's progress through four stages: **Provisioned** (server created), **Bootstrapped** (Kubernetes installed), **Joined** (connected to cluster), and **Ready** (accepting workloads).

If your cluster is [suspended](/clusters#cluster-suspension) when a machine is requested, Akua resumes the cluster automatically before provisioning begins. This adds approximately 15–25 seconds while the control plane starts up.

### Auto-scaling

Akua automatically matches capacity to your workload requirements. When your cluster needs more resources, new machines are provisioned. When demand decreases, idle machines are removed to reduce costs.

**Concurrency limit:** To prevent runaway provisioning loops, Akua limits how many machines can be launching at once per cluster: 1 on the free plan and 3 on Pro. If your cluster requests more machines than this limit, they are queued and provisioned as earlier machines complete. If provisioning repeatedly fails (for example, due to a provider capacity issue), Akua backs off to avoid unnecessary retries. See [quotas](/platform/quotas) for details.

**Auto-scaling controls:** You can pause and resume auto-scaling from the **Machines** tab. When paused, no new machines are created regardless of pending workloads. The current machine count and limit are shown in the header.

<Info>
  When you pause auto-scaling, existing workloads continue running on current machines. New pods that require additional capacity will remain pending until auto-scaling is resumed.
</Info>

### Deletion

When a machine is deleted (not suspended), the data is permanently removed:

1. Running workloads are gracefully drained off the machine (up to 2 minutes).
2. The cloud server is deleted and billing stops immediately.
3. Cluster resources are cleaned up.

<Warning>
  If your workloads still need resources after deletion, auto-scaling may provision a new machine to replace it, unless you have paused auto-scaling or your quota is at its limit.
</Warning>

If the cluster is unreachable (for example, during cluster deletion), Akua skips the drain step and deletes the cloud server directly to stop billing immediately.

### Free tier machine lifetime

Akua-managed machines on the free tier are automatically deleted after 7 days. You receive email and [dashboard notifications](/platform/notifications) at 5 days, 2 days, and 24 hours before deletion.

BYOM machines are not subject to the 7-day lifetime. They run as long as you leave them running, because you pay the cloud provider directly.

To keep managed machines running longer, add your own cloud key or upgrade to Pro. See [plans and pricing](/pricing) for details.

## Suspend and resume

Suspend a machine to stop paying for compute while preserving its data. Machine suspend and resume controls are part of the machine lifecycle rollout; this page documents the machine fields and provider behavior that support that lifecycle.

## Provider resource identity

The machine's `provider_resource` object exposes how the underlying cloud resource behaves across suspend and resume:

| Field                             | Values            | Meaning                                                                                                                                                     |
| --------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `provider_resource.identity_kind` | `recyclable`      | The cloud server is deleted on suspend and replaced on resume. The public IP changes on every resume. Applies to Hetzner, DigitalOcean, Vultr, Linode, OVH. |
| `provider_resource.identity_kind` | `persistent`      | The cloud instance is stopped, not replaced. The public IP is stable across stop and start. Applies to AWS, GCP, Azure.                                     |
| `provider_resource.public_ip`     | string            | The machine's current public IP. Refreshes after each resume on `recyclable` providers.                                                                     |
| `provider_resource.floating_ip`   | object (optional) | A stable IP that survives the suspend and resume cycle. Not yet implemented.                                                                                |

Use the `identity_kind` field to show an appropriate warning before a user suspends a `recyclable` machine that has no `floating_ip` attached.

## Supported providers

| Provider      | Regions                                                        | Status    |
| ------------- | -------------------------------------------------------------- | --------- |
| Hetzner Cloud | EU (Falkenstein, Nuremberg, Helsinki), US (Ashburn, Hillsboro) | Available |

More providers are coming. You can also [bring your own cloud key](/compute/overview#bring-your-own-key-byom) to use any supported provider with your own account.

## Notifications

Akua sends notifications for machine lifecycle events such as upcoming expiry. Notifications appear both via email and in the notification center in your dashboard header. See [notifications](/platform/notifications) for details.

## API

Manage machines programmatically.

<CardGroup cols={2}>
  <Card title="Machines API reference" icon="book" href="/api-reference/machines/list-machines">
    Create, list, get, update, delete, suspend, and resume machines.
  </Card>

  <Card title="Compute configs API reference" icon="sliders" href="/api-reference/computeconfigs/list-compute-configs">
    Manage BYOM compute configurations.
  </Card>
</CardGroup>

## Related topics

<CardGroup cols={2}>
  <Card title="Compute overview" icon="pause" href="/compute/overview">
    Understand managed compute, BYOM, and lifecycle constraints.
  </Card>

  <Card title="Hetzner Cloud" icon="cloud" href="/compute/providers/hetzner">
    Regions, instance types, and Hetzner-specific behavior.
  </Card>

  <Card title="Add workers manually" icon="terminal" href="/clusters/add-workers">
    Attach your own servers without Akua-managed provisioning.
  </Card>

  <Card title="Plans and pricing" icon="credit-card" href="/pricing">
    Compare plans and understand machine limits.
  </Card>
</CardGroup>
