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 the scalability and costs of your infrastructure.
note
Currently, only hcloud nodes are supported. If you wish to use ARM in bare-metal servers, please contact our support.
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:
yaml
apiVersion: infrastructure.clusterstack.x-k8s.io/v1alpha1
kind: HetznerClusterStackReleaseTemplate
metadata:
name: hetzner-apalla-1-31
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
tip
If you want to run a full ARM cluster, you can remove the amd64 node images.
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:
yaml
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
name: mycluster
spec:
clusterNetwork:
services:
cidrBlocks: ['10.128.0.0/12']
pods:
cidrBlocks: ['192.168.0.0/16']
serviceDomain: 'cluster.local'
topology:
class: hetzner-apalla-1-31-v1
version: v1.31.6
controlPlane:
replicas: 3
workers:
machineDeployments:
- class: workeramd64hcloud
name: md-0
replicas: 3
failureDomain: nbg1
variables:
overrides:
- name: workerMachineTypeHcloud
value: cpx31
- 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:
Type
CAX11
CAX21
CAX31
CAX41
For more information on Hetzner machine types, please visit the Hetzner documentation.