Skip to content

Kubernetes ​

Managed Kubernetes clusters on the WAYSCloud European cloud platform: a managed control plane, private worker nodes and full cluster-admin access on a dedicated cluster. You bring your workloads; we run the cluster.

Best for: container workloads that outgrow a single app, teams that already deploy with kubectl/Helm/GitOps, and anyone who wants Kubernetes without operating it.

Open in dashboard · API reference · CLI · Python SDK


What you get ​

  • Control plane: Development (single) or Production (highly available), operated and patched by WAYSCloud
  • Node pools: 1–16 nodes per pool (minimum 1), several pools per cluster, labels and taints to separate workloads
  • Networking: a dedicated private network per cluster, worker nodes without public addresses, outbound traffic through a NAT gateway, integrated load balancing from a standard Service of type LoadBalancer
  • Storage: persistent volumes through the built-in CSI integration — Standard SSD by default, with encrypted Performance (MaxIOPS) volumes available
  • Backups: scheduled and on-demand cluster and volume backups to WAYSCloud object storage in Norway, 14 days (Development) or 30 days (Production), with restore from the dashboard
  • Access: admin kubeconfig from the dashboard, per-cluster API allow-list, and cloud k8s management via the CLI, Python SDK and Cloud Shell
  • Billing: monthly cluster fee plus hourly-metered nodes; persistent disks, backup storage, extra IPs and load balancers metered per use

Capacity ​

DevelopmentProduction (HA)
Worker nodesup to 30up to 120
vCPU—up to 480
Memory—up to 1.92 TB
Local worker-node disk—up to 6 TB with the current largest node profile

Use several node pools in one cluster to separate workloads by size, labels and taints. Pools scale between 1 and 16 nodes and are never scaled to zero. Every cluster is dedicated — nodes are never shared between customers.


Networking and access ​

Every cluster gets its own private network. Worker nodes have no public IP addresses: outbound traffic leaves through a dedicated NAT gateway, and inbound traffic arrives through load balancers you create with a normal Kubernetes Service of type LoadBalancer.

The Kubernetes API is published on a WAYSCloud domain ({id}.k8s.{region}.wayscloud.services:7443) and restricted by a per-cluster CIDR allow-list:

  • An empty allow-list means only WAYSCloud infrastructure can reach the Kubernetes API.
  • To use kubectl from outside WAYSCloud, add the CIDR you connect from. Allow-list changes take effect within a few minutes.
  • The allow-list applies to the Kubernetes API only — it does not restrict your workloads, exposed services or load balancers.

Backup and recovery ​

Backups run through Velero to WAYSCloud object storage in Norway:

  • Scheduled backups on a cluster-level schedule, and on-demand backups whenever you need one
  • Retention: 14 days (Development) or 30 days (Production)
  • Restore from the dashboard, including namespace-scoped restores

Scheduled backup and restore are covered by end-to-end verification. No backup is taken automatically before an upgrade — create one first if you need a restore point.


Kubernetes version lifecycle and upgrades ​

WAYSCloud keeps the Kubernetes version catalogue deliberately small and predictable.

  • Default: Kubernetes 1.35
  • Transition: Kubernetes 1.34 until 15 October 2026
  • New minor versions are qualified end-to-end before being offered
  • Minor upgrades are sequential, one version at a time
  • Upgrades are customer-initiated and use the qualified rolling worker strategy by default
  • The backup decision is explicit for every upgrade — Backup and upgrade or Upgrade without new backup
  • Maintenance windows and scheduled upgrades are available per cluster

The control plane and worker nodes have separate upgrade lifecycles: the API and portal report each pool's kubelet version. Worker pools converge automatically with the rolling strategy, or as an explicit per-pool action with the manual strategy.

Read the Kubernetes version and upgrade policy →


Automation ​

Manage clusters from the dashboard or programmatically:

Lifecycle operations available through these surfaces include creating and deleting clusters, node pools and scaling, kubeconfig, API access control, public IPs and reverse DNS, backup policies, on-demand backup and restore, upgrades and audit history.


Pricing ​

All prices exclude VAT. Node prices are shown per month and metered by the hour; IPs and load balancers are metered per day; persistent disks and backup storage are billed per GB-month.

ItemEUR/monthNOK/monthSEK/monthDKK/month
Cluster – Development (14-day free trial)19199199149
Cluster – Production (HA), including Standard NAT1391 4991 4991 099
Node 2 vCPU / 4 GB29299299219
Node 4 vCPU / 8 GB49499499359
Node 4 vCPU / 16 GB69699699499
Additional public IPv45.99595949
Load balancer29249249179
Standard SSD persistent disk, per GB0.191.991.991.49
Performance (MaxIOPS) persistent disk, per GB0.393.993.992.99
Backup storage, per GB0.101.001.000.79

HA load balancers are not yet orderable. View all plans in dashboard


Provisioning ​

Typical provisioning takes 10–20 minutes, measured on both Development and Production HA. The dashboard shows each step — network, gateway, control plane, nodes and access — as it completes.


Regions ​

Kubernetes is available in:

  • Norway (Oslo)
  • Sweden (Stockholm)
  • Denmark (Copenhagen)

Additional European regions will follow.


Fastest way to get started ​

Dashboard ​

  1. Open my.wayscloud.services → Infrastructure → Kubernetes
  2. Click New cluster, pick Norway (Oslo), Development, and one pool of 2 × 2 vCPU / 4 GB
  3. When the status turns running, open Access and download the kubeconfig

Connect ​

bash
export KUBECONFIG=~/Downloads/kubeconfig-7f3a2c.yaml
kubectl get nodes
kubectl create deployment hello --image=nginxdemos/hello --replicas=2
kubectl expose deployment hello --type=LoadBalancer --port=80
kubectl get svc hello -w   # the external address appears within a minute

CLI ​

bash
cloud k8s create shop --pool k8s-node-2c4g:2 --wait
cloud k8s kubeconfig <cluster-id> -o ~/.kube/shop.yaml
cloud k8s scale <cluster-id> default 4

Good to know ​

  • Cluster-admin: you control RBAC, namespaces, ingress controllers and everything above the node layer.
  • Reverse DNS can be set on load-balancer and additional addresses once the name resolves to the address. The outbound gateway address keeps its default name.
  • Trial: Development clusters are free for the first 14 days; nodes are billed from the first hour.
  • Upgrades are customer-initiated, sequential and use the rolling worker strategy by default; the pre-upgrade check reports blockers and advisory warnings before anything starts. See the version lifecycle and upgrades.


Open in dashboard