Module 1 - Explore OpenShift Virtualization and connect the virtual machines

OpenShift Virtualization provides the scalable, enterprise-grade virtualization functionality in Red Hat OpenShift. You can use it to manage virtual machines (VMs) exclusively or alongside container workloads.

ocp virt arch

OpenShift Virtualization adds new objects into your OpenShift Container Platform cluster by using Kubernetes custom resources to enable virtualization tasks. These tasks include:

  • Creating and managing Linux and Windows VMs

  • Running pod and VM workloads alongside each other in a cluster

  • Connecting to VMs through a variety of consoles and CLI tools

  • Importing and cloning existing VMs

  • Managing network interface controllers and storage disks attached to VMs

  • Live migrating VMs between nodes

Objectives

This module covers key aspects of modernizing VMs on OpenShift, including:

Understanding the goals of VM modernization - Learn why organizations are integrating VMs with OpenShift and how it enhances automation, security, and lifecycle management.

Key OpenShift features for VMs - Explore built-in capabilities such as monitoring and security enhancements designed to optimize VM management.

Kubernetes services for VMs - Understand how VMs can leverage Kubernetes-native features like service discovery and load balancing.

Kubernetes network policies - Learn how to apply Kubernetes network policies to secure and control VM network traffic.

The following sections provide additional information on Cloud-native and Cloud-native patterns. Feel free to skip the following sections to save time and come back later if needed.

Optional: About Cloud-native

Cloud-native is an approach to building and running applications that fully leverage cloud computing’s scalability, flexibility, and automation. It emphasizes microservices, containerization, declarative infrastructure, and continuous delivery to create resilient and efficient applications.

Cloud-native applications are designed to be dynamic, scalable, and portable across cloud environments. They typically use Kubernetes for orchestration, DevOps practices for automation, and GitOps for version-controlled infrastructure management. This enables rapid development, deployment, and scaling while ensuring high availability and fault tolerance.

By adopting cloud-native principles, organizations can improve agility, reduce operational overhead, and accelerate innovation in modern, distributed environments.

Optional: Cloud-native Patterns

Cloud-native architectures follow key design patterns to ensure scalability, resilience, and automation. Some of the most common patterns include:

  1. Microservices - Applications are broken into small, independent services that communicate via APIs, allowing flexibility, scalability, and independent deployments.

  2. Service Mesh - A dedicated infrastructure layer (e.g., Istio) manages service-to-service communication, handling security, observability, and traffic control.

  3. Sidecar Pattern - Additional functionality (such as logging, monitoring, or security) is offloaded to a separate container running alongside the main service, improving modularity.

  4. Strangler Pattern - Legacy applications are gradually replaced by new cloud-native services, reducing migration risks while maintaining functionality.

  5. Event-Driven Architecture - Services communicate asynchronously using events (e.g., Kafka, AMQ, JMS), improving responsiveness and scalability.

  6. Circuit Breaker - Prevents cascading failures by detecting and stopping calls to failing services, enhancing system reliability.

  7. Autoscaling - Applications automatically scale based on demand using Kubernetes Horizontal/Vertical Pod Autoscalers (HPA/VPA).

  8. Immutable Infrastructure - Instead of updating running instances, new instances replace old ones, ensuring consistency and reducing configuration drift.

  9. GitOps - Infrastructure and application configurations are managed declaratively in Git, enabling automated deployments and rollbacks.

  10. Serverless - Code runs in ephemeral functions (e.g., AWS Lambda, Knative) without managing infrastructure, optimizing resource usage.

By adopting these cloud-native patterns, organizations can build highly scalable, resilient, and manageable applications suited for modern cloud environments.

Today you will experience some of these added capabilities through OpenShift tooling that will enable you to elevate the capabilities of your migrated Virtual Machines to be on par with containerised Cloud Native applications already.