Before you start
Ankra Cloud Credential
An Ankra Cloud API token (
act_...) from a user allowed to create servers, networks and routers. The same credential serves both self-managed clusters and Ankra Cloud Kubernetes. See Ankra Cloud 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.
Create the cluster
Dashboard
1
Open the create dialog
Go to Clusters, click Create cluster and pick Ankra Cloud under Ankra Managed (kubeadm or k3s on Ankra Cloud servers).
2
Credentials & Zone
Pick the Ankra Cloud credential, or add one inline with Add Ankra Cloud credential. Choose the Runtime credential the in-cluster cloud controller and CSI driver use: the default reuses the provisioning credential, and a separate, dedicated credential limits what those components can reach. Pick an SSH key, then the zone. Zones, plans and templates load live from your Ankra Cloud account; a zone that runs no servers (a network-only location such as Stockholm) is refused.
3
Private Network & Bastion
Choose Create a dedicated network (Ankra creates and owns the network and its router; the wizard proposes
10.64.0.0/20) or Use an existing network in the zone. Pick the bastion plan, and optionally restrict Bastion allowed IPs to the CIDRs that may reach the bastion over SSH; empty allows any address. Storage retention on teardown decides whether persistent volumes are kept (the default) or deleted when the cluster is deprovisioned.4
Compute
Set the control-plane count (the wizard offers 1, 3 or 5; the API accepts any count from 1 to 9) and plan, then one or more worker node groups, each with its own plan, count, labels and taints. The cost summary prices every server from the live plan catalog, plus public IPv4. The router, storage, load balancers and transfer are not in the total; see Cost.
5
Kubernetes
Choose the server template (default
debian-13), the distribution and the Kubernetes version:- kubeadm (default) - vanilla Kubernetes with containerd and Cilium. Cilium is the only CNI kubeadm accepts on Ankra Cloud. etcd runs stacked on the control-plane nodes, or on 3 or 5 dedicated external etcd servers with their own plan.
- k3s - a single binary with batteries included, with a choice of CNI.
6
GitOps
Optionally connect a Git repository, and Ankra commits the cluster’s stacks to it. Two checkboxes are on by default:
- Include Networking Stack - Traefik, cert-manager and a Let’s Encrypt ClusterIssuer, with Traefik behind an Ankra Cloud load balancer.
- Include DNS Integration - external-dns, so Ingress hostnames publish their DNS records automatically.
ankracloud-cloud-provider stack is then not committed to Git.7
Preflight & Review
Name the cluster and click Run preflight. The checks run against your account: the credential authenticates, the zone offers compute, every plan and the template exist, an existing network lives in the chosen zone, and kubeadm is paired with Cilium. Any failing check blocks creation and says why. Then click Create cluster; a progress view tracks the network, router, firewall, bastion, servers, Kubernetes installation and Ankra Agent.
API
GET /api/v1/clusters/ankracloud/plans?credential_id=<id> (and /zones, /templates, /networks?zone=<zone> alongside). POST /api/v1/clusters/ankracloud/preflight takes the same body and answers the checks without creating anything.
A cluster has at most 100 workers across its node groups, and at most 64 nodes in all, control planes included, because of the pod range it is given (see Network ranges and their limits). A request that plans more, counting each node group’s autoscaling maximum, is refused before anything is provisioned.
Verify
- The cluster moves from Provisioning to Online in the clusters list once the Ankra Agent has connected.
-
Point
kubectlat it through Ankra (this needs a Cluster Access grant) and check the nodes:Every control plane and worker should beReady. See Accessing Clusters with kubectl.
Network design
Ankra Cloud servers are IPv6-first. Nodes do not rely on the per-server IPv4 translation (CLAT) Ankra Cloud offers IPv6-only servers; pod and node IPv4 traffic leaves through the router’s NAT instead.
Every server Ankra creates carries the labels
platform.ankra.io/managed-by=ankra-platform, platform.ankra.io/cluster-id=<cluster-id> and platform.ankra.io/role, so you can find a cluster’s servers in the Ankra Cloud console.
Cost
Ankra Cloud bills the cluster’s resources to your Ankra Cloud account. A cluster is made of:- Servers - the bastion, the control planes and the workers, each at its plan price.
- Public IPv4 - one address, held by the bastion. The nodes hold none, and IPv6 is not billed.
- The router with NAT - one for each cluster, billed monthly while NAT is enabled.
- Load balancers - the ones the cloud controller creates for
LoadBalancerServices, the networking stack’s Traefik included. - Persistent volumes - the storages the CSI driver provisions, by tier and size.
- Transfer - outbound traffic beyond what each server includes.
Cloud controller and storage
After the Ankra Agent is installed, Ankra deploys theankracloud-cloud-provider stack into kube-system: the ankra-cloud-ccm and ankra-cloud-csi charts, sharing the runtime credential’s token through the Secret ankra-cloud (SOPS-encrypted when the stack is committed to Git). Every kubelet runs with --cloud-provider=external, and the controller links each node to its server as ankracloud://<zone>/<server-id>. The charts’ own behaviour, values and annotations are documented by Ankra Cloud: Kubernetes cloud controller manager and Kubernetes CSI driver.
LoadBalancer Services. ankra-cloud-ccm gives each Service of type LoadBalancer an Ankra Cloud load balancer on the cluster’s private network, with the nodes’ private addresses as members. The networking stack’s Traefik uses one, with externalTrafficPolicy: Local so the client address is preserved. Deleting the Service deletes its load balancer; Ankra itself never deletes one, so remove your LoadBalancer Services before you terminate the cluster, or a load balancer still bound then stays in your Ankra Cloud account.
Persistent volumes. ankra-cloud-csi provisions Ankra Cloud storages. It installs four StorageClasses:
Volumes are ReadWriteOnce and created in the zone of the node their pod is scheduled on.
Operate it
Day-2 tasks work as on every Ankra Managed provider, from the dashboard or the API - the released CLI has no Ankra Cloud commands yet:- Node groups - Nodes → Node groups
- Control plane, restart a node and the bastion
- Upgrade Kubernetes
- Stop and start - a stop powers the servers off and keeps them with their disks; a start powers them on again
- Terminate a cluster - deletes the servers, the bastion, the router, the firewall rules and the network Ankra created. A network you adopted with
private_network_idis left in place, and persistent volumes follow the retention policy, deleted only once you accept it