apiVersion: instancetype.kubevirt.io/v1beta1
kind: VirtualMachineInstancetype
metadata:
name: example-instancetype
spec:
cpu:
guest: 1 (1)
memory:
guest: 128Mi (2)
You can simplify virtual machine (VM) creation by using instance types, whether you use the OKD web console or the CLI to create VMs.
An instance type is a reusable object where you can define resources and characteristics to apply to new VMs. You can define custom instance types or use the variety that are included when you install OKD Virtualization.
To create a new instance type, you must first create a manifest, either manually or by using the virtctl
CLI tool. You then create the instance type object by applying the manifest to your cluster.
OKD Virtualization provides two CRDs for configuring instance types:
A namespaced object: VirtualMachineInstancetype
A cluster-wide object: VirtualMachineClusterInstancetype
These objects use the same VirtualMachineInstancetypeSpec
.
When you configure an instance type, you must define the cpu
and memory
attributes. Other attributes are optional.
When you create a VM from an instance type, you cannot override any parameters defined in the instance type. Because instance types require defined CPU and memory attributes, OKD Virtualization always rejects additional requests for these resources when creating a VM from an instance type. |
You can manually create an instance type manifest. For example:
apiVersion: instancetype.kubevirt.io/v1beta1
kind: VirtualMachineInstancetype
metadata:
name: example-instancetype
spec:
cpu:
guest: 1 (1)
memory:
guest: 128Mi (2)
1 | Required. Specifies the number of vCPUs to allocate to the guest. |
2 | Required. Specifies an amount of memory to allocate to the guest. |
You can create an instance type manifest by using the virtctl
CLI utility. For example:
virtctl
command with required fields$ virtctl create instancetype --cpu 2 --memory 256Mi
where:
--cpu <value>
Specifies the number of vCPUs to allocate to the guest. Required.
--memory <value>
Specifies an amount of memory to allocate to the guest. Required.
You can immediately create the object from the new manifest by running the following command:
|
In addition to the required cpu
and memory
attributes, you can include the following optional attributes in the VirtualMachineInstancetypeSpec
:
annotations
List annotations to apply to the VM.
gpus
List vGPUs for passthrough.
hostDevices
List host devices for passthrough.
ioThreadsPolicy
Define an IO threads policy for managing dedicated disk access.
launchSecurity
Configure Secure Encrypted Virtualization (SEV).
nodeSelector
Specify node selectors to control the nodes where this VM is scheduled.
schedulerName
Define a custom scheduler to use for this VM instead of the default scheduler.
OKD Virtualization includes a set of pre-defined instance types called common-instancetypes
. Some are specialized for specific workloads and others are workload-agnostic.
These instance type resources are named according to their series, version, and size. The size value follows the .
delimiter and ranges from nano
to 8xlarge
.
Use case | Series | Characteristics | vCPU to memory ratio | Example resource |
---|---|---|---|---|
Universal |
U |
|
1:4 |
|
Overcommitted |
O |
|
1:4 |
|
Compute-exclusive |
CX |
|
1:2 |
|
NVIDIA GPU |
GN |
|
1:4 |
|
Memory-intensive |
M |
|
1:8 |
|
Network-intensive |
N |
|
1:2 |
|