Before you install OKD Virtualization, ensure that your OKD cluster meets the following requirements:
Your cluster must be installed on on-premise bare metal infrastructure with Fedora CoreOS (FCOS) workers. You can use any installation method including user-provisioned, installer-provisioned, or assisted installer to deploy your cluster.
OKD Virtualization only supports FCOS worker nodes. RHEL 7 or RHEL 8 nodes are not supported.
You can install OKD Virtualization on Amazon Web Services (AWS) bare metal instances. Bare metal instances offered by other cloud providers are not supported.
Additionally, there are three options to maintain high availability (HA) of virtual machines:
In OKD Virtualization clusters installed using installer-provisioned infrastructure and with MachineHealthCheck properly configured, if a node fails the MachineHealthCheck and becomes unavailable to the cluster, it is recycled. What happens next with VMs that ran on the failed node depends on a series of conditions. See About RunStrategies for virtual machines for more detailed information about the potential outcomes and how RunStrategies affect those outcomes.
If you are not using installer-provisioned infrastructure, use either a monitoring system or a qualified human to monitor node availability. When a node is lost, shut it down and run
oc delete node <lost_node>.
Without an external monitoring system or a qualified human monitoring node health, virtual machines lose high availability.
Use the Node Health Check Operator on any OKD cluster to deploy the
NodeHealthCheck controller. The controller identifies unhealthy nodes and uses the Poison Pill Operator to remediate the unhealthy nodes.
Shared storage is required to enable live migration.
You must manage your Compute nodes according to the number and size of the virtual machines that you want to host in the cluster.
If you have limited internet connectivity, you can configure proxy support in Operator Lifecycle Manager to access the Red Hat-provided OperatorHub. If you are using a restricted network with no internet connectivity, you must configure Operator Lifecycle Manager for restricted networks.
If your cluster uses worker nodes with different CPUs, live migration failures can occur because different CPUs have different capacities. To avoid such failures, use CPUs with appropriate capacity for each node and set node affinity on your virtual machines to ensure successful migration. See Configuring a required node affinity rule for more information.
All CPUs must be supported by Red Hat Enterprise Linux 8 and meet the following requirements:
Intel 64 or AMD64 CPU extensions are supported
Intel VT or AMD-V hardware virtualization extensions are enabled
The no-execute (NX) flag is enabled
If FIPS mode is enabled for your cluster, no additional setup is needed for OKD Virtualization. Support for FIPS cryptography must be enabled before the operating system that your cluster uses boots for the first time.
OKD Virtualization works with OKD by default, but the following installation configurations are recommended:
Configure Monitoring in the cluster.
To obtain an evaluation version of OKD, download a trial from the OKD home page.
OKD Virtualization is an add-on to OKD and imposes additional overhead that you must account for when planning a cluster. Each cluster machine must accommodate the following overhead requirements in addition to the OKD requirements. Oversubscribing the physical resources in a cluster can affect performance.
The numbers noted in this documentation are based on Red Hat’s test methodology and setup. These numbers can vary based on your own individual setup and environments.
Calculate the memory overhead values for OKD Virtualization by using the equations below.
Memory overhead per infrastructure node ≈ 150 MiB
Memory overhead per worker node ≈ 360 MiB
Additionally, OKD Virtualization environment resources require a total of 2179 MiB of RAM that is spread across all infrastructure nodes.
Memory overhead per virtual machine ≈ (1.002 * requested memory) + 146 MiB \ + 8 MiB * (number of vCPUs) \ (1) + 16 MiB * (number of graphics devices) (2)
|1||Number of virtual CPUs requested by the virtual machine|
|2||Number of virtual graphics cards requested by the virtual machine|
If your environment includes a Single Root I/O Virtualization (SR-IOV) network device or a Graphics Processing Unit (GPU), allocate 1 GiB additional memory overhead for each device.
Calculate the cluster processor overhead requirements for OKD Virtualization by using the equation below. The CPU overhead per virtual machine depends on your individual setup.
CPU overhead for infrastructure nodes ≈ 4 cores
OKD Virtualization increases the overall utilization of cluster level services such as logging, routing, and monitoring. To account for this workload, ensure that nodes that host infrastructure components have capacity allocated for 4 additional cores (4000 millicores) distributed across those nodes.
CPU overhead for worker nodes ≈ 2 cores + CPU overhead per virtual machine
Each worker node that hosts virtual machines must have capacity for 2 additional cores (2000 millicores) for OKD Virtualization management workloads in addition to the CPUs required for virtual machine workloads.
If dedicated CPUs are requested, there is a 1:1 impact on the cluster CPU overhead requirement. Otherwise, there are no specific rules about how many CPUs a virtual machine requires.
Use the guidelines below to estimate storage overhead requirements for your OKD Virtualization environment.
Aggregated storage overhead per node ≈ 10 GiB
10 GiB is the estimated on-disk storage impact for each node in the cluster when you install OKD Virtualization.
Storage overhead per virtual machine depends on specific requests for resource allocation within the virtual machine. The request could be for ephemeral storage on the node or storage resources hosted elsewhere in the cluster. OKD Virtualization does not currently allocate any additional ephemeral storage for the running container itself.
As a cluster administrator, if you plan to host 10 virtual machines in the cluster, each with 1 GiB of RAM and 2 vCPUs, the memory impact across the cluster is 11.68 GiB. The estimated on-disk storage impact for each node in the cluster is 10 GiB and the CPU impact for worker nodes that host virtual machine workloads is a minimum of 2 cores.