Skip to main content
Version: 1.45

ARM Support

Okteto supports installation on ARM-based Kubernetes clusters for Self-Hosted deployments. Running Okteto on ARM lets developers build and test against the same architecture as their target operational clusters, avoiding compatibility differences that can surface when developing on a different architecture than the one that runs the application.

Support Status

Cloud ProviderRecommended InstanceStatus
Google GKETau T2A (t2a-standard-4)GA
Amazon EKSGraviton 2/3 (m7g.xlarge)Beta

ARM support is covered by the same release pipeline as x86. All control plane images are published as multi-arch (amd64 + arm64).

note

ARM support is available for Self-Hosted deployments only. Bring Your Own Cloud (BYOC) and SaaS deployments are not supported.

Requirements

  • Fresh installations only. Migrating an existing x86 cluster to ARM is not supported. ARM clusters must be provisioned from scratch.
  • Homogeneous clusters. All nodes in the cluster must be ARM-based. Mixed architecture clusters (ARM + x86 nodes) are not supported.

Google GKE (GA)

ARM support on GCP using Tau T2A instances is generally available. Automated tests run against ARM clusters on GCP for every release and in weekly scheduled runs.

Cluster Configuration

We recommend creating a GKE cluster using Tau T2A nodes. The recommended instance type is t2a-standard-4:

gcloud container clusters create CLUSTER_NAME \
--zone ZONE \
--machine-type=t2a-standard-4 \
--num-nodes=3 \
--disk-size=250
note

Tau T2A instances are only available in certain GCP regions and zones. See the GCP documentation for regional availability.

Helm Configuration

GKE automatically applies kubernetes.io/arch=arm64:NoSchedule taints to ARM nodes. You must add the following tolerations to your config.yaml so that Okteto components can be scheduled on those nodes:

globals:
tolerations:
okteto:
- key: "kubernetes.io/arch"
operator: "Equal"
value: "arm64"
effect: "NoSchedule"
dev:
- key: "kubernetes.io/arch"
operator: "Equal"
value: "arm64"
effect: "NoSchedule"
ingress-nginx:
controller:
tolerations:
- key: "kubernetes.io/arch"
operator: "Equal"
value: "arm64"
effect: "NoSchedule"
okteto-nginx:
controller:
tolerations:
- key: "kubernetes.io/arch"
operator: "Equal"
value: "arm64"
effect: "NoSchedule"
reloader:
reloader:
deployment:
tolerations:
- key: "kubernetes.io/arch"
operator: "Equal"
value: "arm64"
effect: "NoSchedule"

For the full installation walkthrough, follow the GKE installation guide.

Amazon EKS (Beta)

Beta

ARM support on Amazon EKS is in Beta. The functionality is complete, but automated test coverage on EKS ARM is still maturing — validation is performed manually when introducing support for new Kubernetes versions. Until coverage matures, running this on operational clusters carries a higher chance of encountering an unexpected issue.

AWS Graviton 2 and Graviton 3 instances are supported. The recommended instance type is m7g.xlarge, which is equivalent in size to the standard m5.xlarge used in the default EKS guide.

Cluster Configuration

eksctl create cluster -f - <<EOF
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
name: ${CLUSTER_NAME}
region: ${AWS_REGION}
version: "${K8S_VERSION}"

autoModeConfig:
enabled: false

iam:
withOIDC: true

nodeGroups:
- name: ng-1
instanceType: m7g.xlarge
desiredCapacity: 3
volumeSize: 250
volumeType: gp3
amiFamily: AmazonLinux2023
EOF

Helm Configuration

EKS does not apply architecture taints to Graviton nodes, so no additional tolerations are required for ARM scheduling.

For the full installation walkthrough, follow the Amazon EKS installation guide.

Dependencies

The following dependencies bundled in the Okteto Helm chart have been validated for ARM compatibility:

  • Reloader
  • Redis
  • ingress-nginx
warning

ARM compatibility of these dependencies must be re-verified before bumping their versions. Check the relevant project release notes for architecture support before upgrading.

Limitations

The following scenarios are not supported in the current release:

ScenarioNotes
Migration from x86 clustersNo migration tooling; fresh install required
Mixed architecture clustersAll nodes must be the same architecture
BYOC deploymentsNot supported
Azure AKS ARMNot supported
GCP Axion (C4A) instancesNot supported
Oracle Ampere A1/A2Not supported
Bare metal ARMNot supported
DivertNot supported on ARM (planned for a future release)
GPU workloadsThe supported ARM instance types (Tau T2A, Graviton 2/3) do not offer GPUs
Windows containersNot supported on ARM
WebAssembly (WASM) runtimeNot supported on ARM