Skip to content

Commit 07d5a74

Browse files
committed
Update Blog “management-paradigms-for-virtual-machines-running-on-kubernetes”
1 parent f36d0cf commit 07d5a74

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ But first, a brief introduction to KubeVirt.
2121

2222
KubeVirt provide abstractions to Kubernetes users for Linux Kernel Virtual Machines (KVM). KVM has been around for about two decades now with several successful commercial hypervisors built around the implementation and is at this point considered mature.
2323

24-
KubeVirt itself does not have a user interface which most VM administrators are used to. The point of abstraction is through standard Kubernetes tools by manipulating API resources of different Kinds provided by Custom Resource Definitions (CRD).
24+
KubeVirt itself does not have a user interface which 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).
2525

26-
The CRDs allows users to manage VM resources through a set of KubeVirt’s controllers.
26+
The \`CRDs\` allows users to manage VM resources through a set of KubeVirt’s controllers.
2727

28-
insert diagram here
28+
![](/img/kubevirt.png)
2929

3030
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.
3131

@@ -35,9 +35,9 @@ Most VM administrators connect VMs to existing networks that assign IP addresses
3535

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

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

4242
For the sake of completeness, this is what those resources look like:
4343

@@ -235,11 +235,11 @@ Fortunately, there are KubeVirt implementations that heavily focus on a graphica
235235

236236
We’ll take a closer look at OKD, the upstream Kubernetes distribution of OpenShift, and Harvester, an HCI solution built for VMs on KubeVirt with striking simplicity.
237237

238-
OKD screenshot
238+
![OKD Virtualization landing page.](/img/screenshot-2025-03-05-at-12.18.46-pm.png "OKD Virtualization landing page.")
239239

240240
OKD is the upstream open source project of Red Hat OpenShift. Enabling virtualization is a two-click operation and considered the gold standard for managing VMs and containers with a unified control plane. KubeVirt has been part of OKD and OpenShift since 2020.
241241

242-
Harvester screenshot
242+
![Harvester landing page](/img/screenshot-2025-03-05-at-12.48.03-pm.png "Harvester landing page")
243243

244244
Harvester is an open source Hyper Converged Infrastructure (HCI) solution primarily focused on running a highly opinionated stack of software and tools on Kubernetes designed solely for running VMs. Harvester can be consumed by Rancher to allow Rancher to deploy and manage Kubernetes clusters on Harvester in a symbiotic relationship.
245245

@@ -259,9 +259,9 @@ ansible-galaxy collection install kubevirt.core
259259

260260
There are a couple of distinct patterns for managing cloud compute instances (VMs on KubeVirt in this case) with Ansible.
261261

262-
- Declaratively CRUD (Create, Read, Update Delete) the instances from a pre-rendered inventory, preferable templatized with Ansible, idempotent with desired parameters. Manage the OS and apps with playbooks using the rendered inventory.
263-
- Imperatively CRUD the instances with some other tooling, either from the cloud provider directly or idempotent with something like OpenTofu. Employ dynamic inventory plugins to manage the OS and apps inside the instances.
264-
- Imperatively CRUD the instances with Ansible playbooks and using a dynamic inventory plugin to manage OS and apps.
262+
* Declaratively CRUD (Create, Read, Update Delete) the instances from a pre-rendered inventory, preferable templatized with Ansible, idempotent with desired parameters. Manage the OS and apps with playbooks using the rendered inventory.
263+
* Imperatively CRUD the instances with some other tooling, either from the cloud provider directly or idempotent with something like OpenTofu. Employ dynamic inventory plugins to manage the OS and apps inside the instances.
264+
* Imperatively CRUD the instances with Ansible playbooks and using a dynamic inventory plugin to manage OS and apps.
265265

266266
For the sake of simplicity and clarity the examples will imperatively CRUD the instances and showcase the dynamic inventory plugin with KubeVirt. In a production scenario where collaboration among engineers is required, the first option is the more elegant choice.
267267

static/img/kubevirt.png

222 KB
Loading
355 KB
Loading
323 KB
Loading

0 commit comments

Comments
 (0)