Using ARM servers


Servers with ARM processors offers cost optimization while retaining competitive performance when compared to x86 architecture servers, with greater efficiency for parallel workloads.

If your workload supports the ARM architecture, it can be a great alternative to further improve thescalability and costs of your infrastructure.


Currently, only hcloud nodes are supported. If you wish to use ARM in bare-metal servers, please contact our support.

Step 1: Adding node images

ARM servers requires node images specifically built and optimized for their architecture. You need to add them to your HetznerClusterStackReleaseTemplate before using them in your clusters:

apiVersion: kind: HetznerClusterStackReleaseTemplate metadata: name: {% $ %} spec: template: spec: nodeImages: - controlplaneamd64hcloud - workeramd64hcloud // [!code tooltip:controlplanearm64hcloud:Add this if you want to use ARM Control Planes] - controlplanearm64hcloud // [!code tooltip:workerarm64hcloud:Add this if you want to use ARM workers] - workerarm64hcloud

If you want to run a full ARM cluster, you can remove the amd64 node images.

Step 2: Using ARM nodes

Now you can add a new machine deployment with the workerarm64hcloud class and an ARM machine type, and set the appropriate variables if you wish to have ARM control planes:

apiVersion: kind: Cluster metadata: name: mycluster spec: clusterNetwork: services: cidrBlocks: [''] pods: cidrBlocks: [''] serviceDomain: 'cluster.local' topology: class: {% $ %} version: {% $kubernetes.version %} controlPlane: replicas: 3 workers: machineDeployments: - class: workeramd64hcloud name: md-0 replicas: 3 failureDomain: nbg1 variables: overrides: - name: workerMachineTypeHcloud value: cx31 - class: workerarm64hcloud // [!code ++] name: md-0 // [!code ++] replicas: 3 // [!code ++] failureDomain: nbg1 // [!code ++] variables: // [!code ++] overrides: // [!code ++] - name: workerMachineTypeHcloud // [!code ++] value: cax31 // [!code ++] variables: - name: region value: nbg1 // [!code tooltip:arm64:2:You need to set this for ARM control planes] - name: controlPlaneMachineArchHcloud value: arm64 - name: controlPlaneMachineTypeHcloud // [!code tooltip:cax31:Remember to change the machine type to one of ARM architecture] value: cax31

Available ARM machine types are:


For more information on Hetzner machine types, please visit the Hetzner documentation .