Skip to main content
Ankra supports provisioning fully managed Kubernetes clusters on UpCloud. You can create clusters with configurable control planes, workers, and networking - then scale workers up or down as needed.

Prerequisites

Before creating an UpCloud cluster, you need two credentials:

UpCloud API Credential

An UpCloud API token with read/write permissions. See UpCloud Credentials.

SSH Key Credential

An SSH public key for server access. You can provide your own or let Ankra generate one. See SSH Key Credentials.

Creating an UpCloud Cluster

Via the Platform UI

A guided wizard walks you through creating an UpCloud cluster - select credentials, pick a datacenter zone, choose server plans, set control plane and worker counts, and launch.
1

Navigate to Clusters

Go to Clusters in the Ankra dashboard and click Create Cluster.
2

Select UpCloud

Choose UpCloud as the provider.
3

Select Credentials

Pick your UpCloud API credential and SSH key credential from the dropdowns. You can also create new credentials directly from the wizard.
4

Choose Datacenter Zone

Select an UpCloud zone (e.g., Helsinki, Frankfurt, Chicago, Amsterdam). Each zone shows the location and country.
5

Configure Nodes

Set your cluster topology:
  • Bastion - server plan for the SSH bastion host (e.g., 1xCPU-1GB)
  • Control Plane - count (1 or 3) and plan (e.g., 2xCPU-4GB)
  • Workers - count and plan (e.g., 2x 4xCPU-8GB)
The wizard shows vCPUs, RAM, and monthly cost for each plan to help you choose.
6

Create & Track Progress

Click Create to start provisioning. A live progress view tracks every step - credential setup, router creation, network creation, gateway setup, SSH key deployment, bastion provisioning, server creation, Kubernetes installation (kubeadm or k3s), and Ankra Agent setup. The cluster appears with an offline state until provisioning completes, then transitions to online.

Managing from the Dashboard

Once your UpCloud cluster is online, you can manage it directly from the Ankra dashboard:
  • Scale workers - go to Cluster SettingsGeneral to scale worker nodes up or down
  • Upgrade Kubernetes - upgrade the Kubernetes version from cluster settings
  • Deprovision - delete the cluster and all UpCloud resources from the Danger Zone in cluster settings

Via the CLI

Via the API

Every configuration parameter, the zone list, and server plans are in the UpCloud Reference.

Node Groups

Node groups let you organize worker nodes into logical groups with independent server plans, counts, labels, and taints. Each group can be scaled, re-planned, and configured independently.

Via the Platform UI

Navigate to cluster Settings > Nodes to manage node groups. From this tab you can:
  • View all node groups with their server plan, count, labels, and taints
  • Add new node groups with a name, server plan, count, and optional labels/taints
  • Scale individual groups up or down (0–100 nodes)
  • Upgrade the server plan (upgrade only - see Server Plan Changes)
  • Edit labels and taints per group
  • Delete a node group and all its nodes

List Node Groups

Response:

Add a Node Group

Scale a Node Group

Node groups can be scaled to 0 nodes. This keeps the group definition but removes all servers.

Server Plan Changes

Server plan upgrades are one-way - you cannot downgrade a node group to a smaller plan. To use a smaller plan, create a new node group with the desired plan and delete the old one.
Each node is powered off, resized, and powered back on. This causes brief downtime for workloads on those nodes.

Update Labels and Taints

Delete a Node Group

Deleting a node group removes all its servers. Workloads running on those nodes will be evicted.

Node Group API Reference

All node-group operations are also available via the REST API - see the UpCloud Node Group API.

Restarting a Node

Restart any node - a control plane node, a worker, or the bastion - as a tracked operation, from cluster Settings > Nodes in the dashboard, via the CLI, or via the API:
See Restarting a Node for the full walkthrough, response shape, and state requirements - identical across providers.

Resizing the Bastion or Gateway

Resize the bastion without recreating the cluster - Ankra powers it off, resizes it, and powers it back on.
See Resizing the Bastion or Gateway for the accept/wait contract - identical across providers.

Legacy Worker Scaling

The legacy scale-workers and worker-count endpoints still work for backward compatibility.
For new clusters, prefer using Node Groups for more granular control.

Upgrading Kubernetes Version

You can upgrade the Kubernetes (k3s) version on all nodes in an UpCloud cluster. Upgrades are applied to control plane nodes first, then workers.
  • Only k3s clusters are supported for version upgrades.
  • Downgrades are not supported - k3s downgrades require an etcd snapshot restore.
  • You can only upgrade one minor version at a time (e.g., v1.33.x to v1.34.x, not v1.33.x to v1.35.x).
  • The cluster must be online with no active operations.

Via the Dashboard

Go to your cluster → SettingsGeneral to see the current k3s version and trigger an upgrade.

Check Current Version

Response:

Upgrade Version

Response:

Stopping and Starting a Cluster

You can stop an UpCloud cluster to release its compute (node servers, the bastion, and the NAT gateway) while keeping its configuration, networking definition, and SSH keys. Starting the cluster re-provisions the compute and reconciles it back to a running state. This is useful for pausing non-production clusters to save cost. When starting, use --scope control_plane to bring up only the control plane first (for example to inspect or repair it), or --scope all (the default) to provision the whole cluster.
Stop and start are background operations. A start returns 409 if a stop or terminate operation is still running. The cluster’s saved topology is preserved while stopped - ankra cluster upcloud nodes list includes the soft-deleted entries that are re-provisioned on the next start.
A plain stop keeps the storage volumes your workloads provisioned through the CSI driver, and UpCloud bills them while the cluster is parked. Pass --force (or ?force=true on the API) to delete them together with any load balancers the cluster created. Ankra deletes exactly the volumes it recorded for this cluster, never other disks in the account.
A forced stop destroys the data on those volumes. A later start brings the cluster back with empty storage.

Deprovisioning

Deprovisioning deletes all UpCloud resources (servers, networks, routers, gateways, SSH keys) and removes the cluster from Ankra.
This action is irreversible. All data on the cluster will be permanently deleted.

Via the Dashboard

Go to your cluster → SettingsGeneralDanger Zone and click Deprovision Cluster. You will be asked to confirm before the operation begins.

Via CLI or API

A plain deprovision leaves behind the storage volumes your workloads provisioned through the CSI driver (UpCloud keeps billing them) and can leave a load balancer behind too. --force deletes both along with the rest of the infrastructure, tolerates unreachable cluster infrastructure, and works on a cluster that was stopped earlier: the volumes recorded at stop time are still known and get reclaimed. Ankra deletes exactly the volumes it recorded for this cluster, never other disks in the account.

Architecture

An UpCloud cluster provisions the following infrastructure: All nodes are deployed within a private UpCloud SDN network and have no public interfaces. The managed NAT gateway (attached to the router) handles all outbound traffic; the bastion is an SSH jump host only - no workload or egress traffic flows through it. Ankra connects to the bastion’s public IP to provision nodes, install Kubernetes, and run upgrades and reconciliation. Ankra also deploys an upcloud-cloud-provider stack (UpCloud CCM and CSI) after the Ankra Agent is installed, providing LoadBalancer services and persistent storage backed by your API credential.

Troubleshooting

Common Issues

UpCloud Account Quotas

UpCloud has default resource limits per account. If provisioning fails, check your quotas in the UpCloud Control Panel:
  • Servers
  • Networks
  • Routers
  • IP Addresses
Contact UpCloud support to increase limits if needed.