VM Runtime on Google Distributed Cloud is the key component for running virtual machine-based workloads in Google Distributed Cloud.
What is VM Runtime on Google Distributed Cloud?
VM Runtime on Google Distributed Cloud 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 Google Distributed Cloud, you can run existing VM-based workloads as you also develop and run new container-based applications. VM Runtime on Google Distributed Cloud is like the hypervisor in a more traditional virtualized environment.
VM Runtime on Google Distributed Cloud lets you view and manage the state of VMs and gather audit or console logs. VM Runtime on Google Distributed Cloud acts like management console tools that are used in more traditional virtualized environments.
You aren't forced to modernize or upgrade existing VM-based workloads to use VM Runtime on Google Distributed Cloud. VMs run as they would in traditional virtualized environments, but benefit from a single set of workflows and processes for your applications in an GKE cluster. When you're ready, you can migrate these VM-based workloads to containers and continue using the same GKE Enterprise management tools.
Benefits
The VM Runtime on Google Distributed Cloud 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 Google Distributed Cloud helps you migrate your VMs, or build new ones, on top of Google Distributed Cloud.
How VM Runtime on Google Distributed Cloud differs from KubeVirt
VM Runtime on Google Distributed Cloud 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 Google Distributed Cloud integrates Kubevirt into your Google Distributed Cloud to give a consistent way to manage your applications. This section outlines some of the key capabilities of VM Runtime on Google Distributed Cloud that aren't available in KubeVirt.
Lifecycle
Building on the power of the GKE Enterprise platform, VM Runtime on Google Distributed Cloud is fully integrated with the GKE Enterprise platform. You can install, upgrade, and uninstall VM Runtime on Google Distributed Cloud with a CLI command, through the API, or by using the Google Cloud console. When used with compatible storage, GKE cluster upgrades include live migration of VM workloads (Preview) between hosts to minimize potential VM workload disruption.
Cloud-backed management experience
VM Runtime on Google Distributed Cloud provides a cloud-like experience for your on-premises installation. This experience includes the following new cloud-like primitives:
VirtualMachineType
object lets administrators create predefined VM types with specific CPU and memory configurations.VirtualMachineDisk
andStorageProfile
objects add support for multiple disks and centralized management ofStorageClass
properties.Network
object enables virtual switch-like capabilities in Kubernetes.
Storage
VM Runtime on Google Distributed Cloud 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 Google Distributed Cloud expands on the default pod-network
offering of
KubeVirt to provide
networking options more suitable for production VM workloads.
VM Runtime on Google Distributed Cloud extends the existing network stack that's based on
Container Network Interface (CNI) framework. VM Runtime on Google Distributed Cloud 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 Google Distributed Cloud, 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 Google Distributed Cloud 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 Google Distributed Cloud automatically supports VM observability in the Google Cloud console. In addition to the GKE cluster and VM Runtime on Google Distributed Cloud 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 Google Distributed Cloud capabilities are available from the CLI, APIs,
and Google Cloud console. This flexible approach supports multiple developer and
operational styles. Applying the power of the GKE Enterprise stack,
Config Management, and Policy Controller can also be used to implement
both GitOps methodology and granular policies. Finally, traditional KubeVirt
tools, such as virtctl
, have also been extended to support the additional
VM Runtime on Google Distributed Cloud capabilities.
GPU Support
VM Runtime on Google Distributed Cloud 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 Google Distributed Cloud, see the following documents:
- Enable or disable VM Runtime on Google Distributed Cloud
- Quickstart: Create a VM in Google Distributed Cloud
- Manage the power state of VMs that use VM Runtime on Google Distributed Cloud
- View console logs for VMs that use VM Runtime on Google Distributed Cloud