VM Runtime on Google Distributed Cloud overview

VM Runtime on Google Distributed Cloud is the key component for running virtual machine-based workloads in installations of Google Distributed Cloud (software only) on bare metal.

What is VM Runtime on GDC?

VM Runtime on GDC is a part of Google Distributed Cloud that lets you run VMs on top of Kubernetes in the same way that you run containers. With VM Runtime on GDC, you can run existing VM-based workloads as you also develop and run new container-based applications. VM Runtime on GDC is like the hypervisor in another virtualized environment.

VM Runtime on GDC lets you view and manage the state of VMs and gather audit or console logs. VM Runtime on GDC acts like management console tools that are used in other virtualized environments.

You aren't forced to modernize or upgrade existing VM-based workloads to use VM Runtime on GDC. VMs run like they do in other virtualized environments, but benefit from a single set of workflows and processes for your applications in a cluster. When you're ready, you can migrate these VM-based workloads to containers and continue using the same Google Kubernetes Engine (GKE) Enterprise edition management tools.

Benefits

The VM Runtime on GDC has the following benefits:

  • Ability to use VM resources programmatically, like you use containers.
  • Efficient use of resources across containers and VMs.
  • Unified management and operation for VMs and containers.
  • Unified visibility and control for traffic between new containerized applications and legacy VM-based apps.
  • A simplified migration experience to cloud or containerized apps.

The VM Runtime on GDC helps you migrate your VMs, or build new ones, on top of your bare metal cluster.

How VM Runtime on GDC differs from KubeVirt

VM Runtime on GDC builds on the KubeVirt open source project. Kubevirt is built specifically for Kubernetes, and follows the declarative API model to use the Kubernetes Resource Model, custom resource definitions, or operators. VM Runtime on GDC integrates Kubevirt into your Google Distributed Cloud software-only installation to give a consistent way to manage your applications. This section outlines some of the key capabilities of VM Runtime on GDC that aren't available in KubeVirt.

Lifecycle

Building on the power of the GKE Enterprise, VM Runtime on GDC is fully integrated with the GKE Enterprise platform. You can install, upgrade, and uninstall VM Runtime on GDC with a CLI command, through the API, or by using the Google Cloud console. When used with compatible storage, GKE Enterprise cluster upgrades include live migration of VM workloads (Preview) between hosts to minimize potential VM workload disruption.

Cloud-backed management experience

VM Runtime on GDC provides a cloud-like experience for your on-premises installation. This experience includes the following new cloud-like primitives:

Storage

VM Runtime on GDC automatically generates a storage profile object, StorageProfile, for each StorageClass in a cluster. This new profile object lets you configure StorageClass properties for VMs, including accessMode and volumeMode, from a single location.

You can attach multiple disks to a VM. You can attach an existing disk or you can create and attach new disks. The new VirtualMachineDisk custom resource lets you create blank disks or disks from existing images using the bundled Containerized Data Importer (CDI). CDI even lets you pull images from Cloud Storage secured with credentials.

Networking

VM Runtime on GDC expands on the default pod-network offering of KubeVirt to provide networking options more suitable for production VM workloads. VM Runtime on GDC extends the existing network stack that's based on Container Network Interface (CNI) framework. VM Runtime on GDC adds a Network object that enables virtual switch-like capabilities in Kubernetes. While network plugins are available for Kubernetes, they require their own installation, lifecycle, and management. With VM Runtime on GDC, out of the box VMs can interact with multiple Layer 2 network interfaces, including support for VLAN tags, external DHCP, and more. VM Runtime on GDC also introduces the interfaces object, which enables both IP and MAC address stickiness even if VMs are restarted, migrated, or recreated. The new network stack also integrates with NetworkPolicy so you can use Kubernetes primitives to control Layer 4 traffic between VMs.

Observability

VM Runtime on GDC automatically supports VM observability in the Google Cloud console. In addition to the GKE cluster and VM Runtime on GDC logging, VM serial console logs are automatically streamed to Cloud Logging. Your VM logs can be viewed in the Logs Explorer along with container logs. You can see VM CPU, memory, disk, and network metrics in the Google Cloud console. You can also implement dashboards, alerts, and integration with notifications using familiar Google Cloud services.

Management

Most VM Runtime on GDC capabilities are available from the command line, APIs, and Google Cloud console. This flexible approach supports multiple developer and operational styles. Applying the power of the GKE Enterprise stack, Config Sync and Policy Controller can also be used to implement both GitOps methodology and granular policies. Finally, KubeVirt tools, such as virtctl, have also been extended to support the additional VM Runtime on GDC capabilities.

GPU Support

VM Runtime on GDC lets you enable supported NVIDIA GPU cards in your VMs, enabling machine learning and other specialized workloads.

Get started

To start using VM Runtime on GDC, see the following documents: