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.Select Credentials
Pick your UpCloud API credential and SSH key credential from the dropdowns. You can also create new credentials directly from the wizard.
Choose Datacenter Zone
Select an UpCloud zone (e.g., Helsinki, Frankfurt, Chicago, Amsterdam). Each zone shows the location and country.
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)
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, k3s installation, 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 Settings → General to scale worker nodes up or down
- Upgrade Kubernetes — Upgrade the k3s 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
Cluster Configuration Options
| Parameter | Default | Description |
|---|---|---|
name | required | Unique cluster name |
credential_id | required | UpCloud API credential ID |
ssh_key_credential_id | required | SSH key credential ID |
zone | required | UpCloud datacenter zone |
network_ip_range | 10.0.0.0/24 | Private network IP range |
bastion_plan | 1xCPU-1GB | Server plan for the bastion host |
control_plane_count | 1 | Number of control plane nodes (1 or 3) |
control_plane_plan | 2xCPU-4GB | Server plan for control planes |
worker_count | 1 | Number of worker nodes (1–10) |
worker_plan | 2xCPU-4GB | Server plan for workers |
distribution | k3s | Kubernetes distribution |
kubernetes_version | latest stable | Kubernetes version (optional) |
UpCloud Datacenter Zones
| Zone | Location |
|---|---|
fi-hel1 | Helsinki, Finland |
de-fra1 | Frankfurt, Germany |
us-chi1 | Chicago, United States |
nl-ams1 | Amsterdam, Netherlands |
uk-lon1 | London, United Kingdom |
sg-sin1 | Singapore |
au-syd1 | Sydney, Australia |
pl-waw1 | Warsaw, Poland |
UpCloud Server Plans
| Plan | vCPUs | RAM | Monthly Cost |
|---|---|---|---|
1xCPU-1GB | 1 | 1 GB | $5.00 |
2xCPU-4GB | 2 | 4 GB | $20.00 |
4xCPU-8GB | 4 | 8 GB | $40.00 |
8xCPU-16GB | 8 | 16 GB | $80.00 |
Available plans may vary by zone. Check the UpCloud pricing page for the latest offerings.
Scaling Workers
You can scale worker nodes between 1 and 10 for any online UpCloud cluster. Scaling up adds new servers and installs Kubernetes. Scaling down removes workers starting from the highest index.Via the Dashboard
Go to your cluster → Settings → General and adjust the worker count. The new count is applied immediately and you can track progress in the Operations tab.Check Current Workers
Scale Workers
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.Via the Dashboard
Go to your cluster → Settings → General to see the current k3s version and trigger an upgrade.Check Current Version
Upgrade Version
Deprovisioning
Deprovisioning deletes all UpCloud resources (servers, networks, routers, gateways, SSH keys) and removes the cluster from Ankra.Via the Dashboard
Go to your cluster → Settings → General → Danger Zone and click Deprovision Cluster. You will be asked to confirm before the operation begins.Via CLI or API
Architecture
An UpCloud cluster provisions the following infrastructure:| Component | Description |
|---|---|
| Router | SDN router for network routing |
| Private Network | Isolated network for inter-node communication |
| NAT Gateway | Network address translation for outbound traffic |
| Bastion Host | Jump server for secure SSH access to cluster nodes |
| Control Plane(s) | Kubernetes control plane servers |
| Worker(s) | Kubernetes worker servers for running workloads |
| SSH Keys | Deployed to all servers for access |
Troubleshooting
Common Issues
| Issue | Solution |
|---|---|
| Cluster stuck in provisioning | Check UpCloud API token permissions and account quota |
| Cannot scale workers | Ensure cluster is online and no operations are running |
| Invalid API token | Re-validate at UpCloud Control Panel |
| Server plan unavailable | Try a different zone or plan |
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