Using ARM servers
ARM servers are temporarily not supported
ARM-based servers are temporarily not supported. Due to significant declines in the availability and reliability of this server architecture, we can no longer recommend it. This is a temporary measure, and we will restore support once the situation improves.
If your cluster already uses ARM-based nodes, follow the Migrate ARM servers to x86 guide to switch to x86 nodes.
Introduction#
Servers with ARM processors offers cost optimization while retaining competitive performance when compared to x86 architecture servers, with greater efficiency for parallel workloads. Syself provides full ARM support for Kubernetes nodes.
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.
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: infrastructure.clusterstack.x-k8s.io/v1alpha1
kind: HetznerClusterStackReleaseTemplate
metadata:
name: hetzner-apalla-1-35
spec:
template:
spec:
nodeImages:
- controlplaneamd64hcloud
- workeramd64hcloud
- controlplanearm64hcloud
- workerarm64hcloud
Tip
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: cluster.x-k8s.io/v1beta2
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:
classRef:
name: hetzner-apalla-1-35-v4
version: v1.35.7
controlPlane:
replicas: 3
workers:
machineDeployments:
- class: workeramd64hcloud
name: md-0
replicas: 3
failureDomain: nbg1
variables:
overrides:
- name: workerMachineTypeHcloud
value: cpx42
- class: workerarm64hcloud
name: md-0
replicas: 3
failureDomain: nbg1
variables:
overrides:
- name: workerMachineTypeHcloud
value: cax31
variables:
- name: region
value: nbg1
- name: controlPlaneMachineArchHcloud
value: arm64
- name: controlPlaneMachineTypeHcloud
value: cax31
Supported ARM machine types are:
| Type |
|---|
| CAX21 |
| CAX31 |
| CAX41 |
For more information on Hetzner machine types, please visit the Hetzner documentation.
How to Run GPU workloads
Run Nvidia GPU workloads in Kubernetes using Syself Autopilot and Hetzner bare metal servers. Deploy AI, ML, inference, and accelerated compute workloads.
Migrate ARM servers to x86 in your cluster
Learn how to migrate ARM-based (CAX) nodes to x86 nodes in your Autopilot cluster by updating machine deployment classes and server types.