Skip to main content
Version: v1.4

Node Architecture Selection

Luna supports both amd64 and arm64 architectures for nodes.

Depending on the operator’s requirements, Luna can provision nodes with the appropriate architecture. It offers three modes for node architecture selection, configurable via the nodeArchitecture value: single, mixed, and preferred.

Luna sets nodeArchitecture to amd64 by default.

Single Node Architecture

In this mode, Luna uses only one architecture type. All nodes are provisioned with either the amd64 or arm64 instruction set architecture.

If a pod includes the kubernetes.io/arch node selector, Luna schedules only those pods whose architecture requirement matches the configured architecture; pods with differing architecture requirements are ignored.

To enable single architecture mode, set the nodeArchitecture configuration value to amd64 or arm64:

nodeArchitecture: amd64

Or

nodeArchitecture: arm64

Mixed Node Architecture

In mixed mode, Luna considers both amd64 and arm64 nodes by default. Pods with the kubernetes.io/arch node selector are placed on nodes matching the requested architecture. Pods without this selector are scheduled on the most cost-effective node type available, regardless of architecture.

For reliable operation in mixed mode, pods that do not specify an architecture must use multi-architecture images.

To enable mixed architecture mode, set the nodeArchitecture configuration value to amd64+arm64:

nodeArchitecture: amd64+arm64

Preferred Node Architecture

In preferred mode, Luna defaults to the first architecture for node provisioning. Pods with the kubernetes.io/arch node selector set to the alternative architecture use nodes of that type. Pods without a node selector always use the default architecture.

For example, with arm64|amd64, nodes will use the arm64 architecture for pods by default, and only the pods with the node selector kubernetes.io/arch=amd64 will run on nodes with the amd64 architecture.

To enable preferred architecture mode, set the nodeArchitecture configuration value to amd64|arm64 or arm64|amd64:

nodeArchitecture: amd64|arm64

Or

nodeArchitecture: arm64|amd64

Deprecated: includeArmInstance

Old versions of Luna had the includeArmInstance configuration flag. It is deprecated and will be removed in the future. When includeArmInstance is set, and nodeArchitecture is empty, Luna will use the mixed node architecture scheme.