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.