Skip to content

Commit 3cb269e

Browse files
authored
Update management-paradigms-for-virtual-machines-running-on-kubernetes.md
1 parent dd636f4 commit 3cb269e

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

content/blog/management-paradigms-for-virtual-machines-running-on-kubernetes.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Management paradigms for virtual machines running on Kubernetes
3-
date: 2025-03-06T20:13:53.863Z
3+
date: 2025-03-12T20:13:53.863Z
44
featuredBlog: true
55
author: Michael Mattsson
66
authorimage: /img/portrait-192.png
@@ -18,7 +18,7 @@ Whether you're a classic sysadmin, site reliability engineer (SRE) or have any k
1818

1919
KubeVirt, an open source project governed by the Cloud-Native Computing Foundation (CNCF), is an add-on for Kubernetes that allows management of virtual machines alongside containers using a single API endpoint. KubeVirt is where a large chunk of the market is gravitating towards, whether the abstractions are disguised by a glossy frontend or deployed manually on existing Kubernetes clusters, KubeVirt needs to be considered for any new virtualization project.
2020

21-
This blog post brush over the basics in VM management on KubeVirt with the most common patterns to give us an idea of what tools and processes to adopt in your organization. Declarative CLIs, imperative GUIs or idempotent IT platform automation tools such as Ansible. There are strengths and weaknesses across the different interfaces but understanding how to operate them is fundamental for any VM management journey with KubeVirt.
21+
This blog post brushes over the basics in VM management on KubeVirt covering the most common patterns to give you an idea of what tools and processes to adopt in your organization, like declarative CLIs, imperative GUIs or idempotent IT platform automation tools such as Ansible. There are strengths and weaknesses across the different interfaces but understanding how to operate them is fundamental for any VM management journey with KubeVirt.
2222

2323
But first, let me give you a brief introduction to KubeVirt.
2424

@@ -28,19 +28,19 @@ KubeVirt provides abstractions to Kubernetes users for Linux Kernel Virtual Mach
2828

2929
KubeVirt itself does not have a user interface that most VM administrators are used to. The point of abstraction is through standard Kubernetes tools by manipulating API resources of different `Kinds` provided by `CustomResourceDefinitions` (CRDs).
3030

31-
The `CRDs` allows users to manage VM resources through a set of KubeVirt’s controllers.
31+
The `CRDs` allow users to manage VM resources through a set of KubeVirt’s controllers.
3232

3333
![](/img/kubevirt.png)
3434

3535
Deploying KubeVirt on upstream Kubernetes and other distributions is straightforward. The [official documentation](https://kubevirt.io/user-guide/) walks through the different distributions and platform specific quirks that needs to be considered.
3636

37-
The examples below uses KubeVirt provided by the KubeVirt HyperConverged Cluster Operator installed on OKD, the upstream project of OpenShift.
37+
The examples below use KubeVirt provided by the KubeVirt HyperConverged Cluster Operator installed on OKD, the community distribution of Kubernetes that powers Red Hat OpenShift.
3838

3939
Most VM administrators connect VMs to existing networks that assign IP addresses and DNS names. Having the VM immediately reachable from your desktop computer or other already established infrastructure management tools makes the transition from legacy VM management platforms to KubeVirt much smoother.
4040

4141
As a prerequisite for this exercise and examples, the following resources have been created prior:
4242

43-
* An SSH public key has been created on the cluster as a `Secret` to be injected into my VM instance during initialization.
43+
* An SSH public key has been created on the cluster as a `Secret` to be injected into the VM instance during initialization.
4444
* A `NodeNetworkConfigurationPolicy` using the Kubernetes NMState Operator that creates a bridge on a NIC connected to the data center management network.
4545
* A `NetworkAttachmentDefinition` in my VM instance `Namespace` to connect virtual NICs to.
4646

@@ -102,15 +102,15 @@ spec:
102102
}
103103
```
104104
105-
Another essential prerequisite is that a `StorageClass` exist on the cluster which supports KubeVirt. The examples below uses the HPE CSI Driver for Kubernetes but it could be any vendor or platform supporting the bare minimum requirements for KubeVirt, see the KubeVirt [admin guide](https://kubevirt.io/user-guide/storage/clone_api/) for the details.
105+
Another essential prerequisite is that a `StorageClass` exists on the cluster that supports KubeVirt. The examples below use the HPE CSI Driver for Kubernetes but that could be swapped out for any vendor or platform supporting the bare minimum requirements for KubeVirt (see the KubeVirt [admin guide](https://kubevirt.io/user-guide/storage/clone_api/) for details).
106106

107-
Now, the environment is primed, let’s provision a VM and take KubeVirt for a spin.
107+
Now that the environment is primed, let’s provision a VM and take KubeVirt for a spin.
108108

109109
# The command line interface
110110

111-
It is entirely possible to use `kubectl` out-of-the-box to deploy and manage VM resources. The `virtctl` CLI feature a more rich experience with the ability to upload disk images, connect to the VM console and manage power states more easily. The most important task of `virtctl` is to render tedious manifests from just a few arguments to deploy new VMs.
111+
It is entirely possible to use `kubectl` out-of-the-box to deploy and manage VM resources. The `virtctl` CLI features a more rich experience with the ability to upload disk images, connect to the VM console and manage power states more easily. The most important task of `virtctl` is to render tedious manifests from just a few arguments to deploy new VMs.
112112

113-
Installing `virtctl` varies by platform and KubeVirt distribution. It’s advised at this point to have the same client and server version which at the time of writing is 1.4.0. If using a Mac with Brew installed, it’s simply:
113+
Installing `virtctl` varies by platform and KubeVirt distribution. It’s advised at this point to have the same client and server version, which at the time of writing is 1.4.0. If using a Mac with Brew installed, it’s simply:
114114

115115
```shell
116116
brew install virtctl
@@ -234,7 +234,7 @@ This will remove all resources created with `virtctl`, including `PVCs`.
234234

235235
# User experience with web user interfaces
236236

237-
KubeVirt does not have an official graphical user interface. That is a tall threshold for new users who are familiar with legacy VM management solutions where everything is a right-click away, structured in an intuitive manner. In a way, the KubeVirt project assumes the user to have fundamental KVM knowledge and able to scrape by managing Kubernetes resources through the CLI.
237+
KubeVirt does not have an official graphical user interface. That is a tall threshold for new users who are familiar with legacy VM management solutions where everything is a right-click away, structured in an intuitive manner. In a way, the KubeVirt project assumes that the user has a fundamental knowledge of KVM and can scrape through by managing Kubernetes resources through the CLI.
238238

239239
Fortunately, there are KubeVirt implementations that heavily focus on a graphical user experience and provide a great way to learn and explore the capabilities, very similar to legacy hypervisors.
240240

0 commit comments

Comments
 (0)