Skip to content

Kubevirt blog#5559

Open
jakjang wants to merge 90 commits intomasterfrom
kubevirt-blog
Open

Kubevirt blog#5559
jakjang wants to merge 90 commits intomasterfrom
kubevirt-blog

Conversation

@jakjang
Copy link
Contributor

@jakjang jakjang commented Jan 16, 2026

Adding a blog about deploying KubeVirt on AKS, to be published on 2-06-2026.

Adding Harshit from the Azure Linux engineering team as an author, as much of the KubeVirt doc is based off a doc he wrote.
Updated authors list to include 'harshit-gupta'.
Added an introduction to KubeVirt and its benefits for VM management in Kubernetes.
Updated tags to include 'kubevirt' for better categorization.
@jakjang jakjang requested review from a team, Copilot and mangalorereshmi January 16, 2026 23:20
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new blog post about deploying KubeVirt on AKS, scheduled for publication on January 26, 2026. The post provides a step-by-step guide for users to set up KubeVirt, an open-source CNCF project that enables running virtual machines within Kubernetes clusters.

Changes:

  • Added a new blog post explaining KubeVirt benefits and providing deployment instructions for AKS
  • Added new author "harshit-gupta" to authors.yml
  • Added new "kubevirt" tag to tags.yml
  • Fixed incomplete description for the "kueue" tag

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 8 comments.

File Description
website/blog/2026-01-26-kubevirt-on-aks/index.md New blog post with KubeVirt deployment guide including cluster creation, installation steps, and VMI creation examples
website/blog/authors.yml Added new author entry for Harshit Gupta
website/blog/tags.yml Added kubevirt tag and fixed truncated kueue tag description

Copilot AI review requested due to automatic review settings January 16, 2026 23:24
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings January 16, 2026 23:26
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings January 16, 2026 23:30
Copilot AI review requested due to automatic review settings January 30, 2026 18:53
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 5 comments.

Copy link
Contributor

@sjwaight sjwaight left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made some suggestions.

virtctl console vmi-fedora
```

When prompted with credentials, the default username/password should be `fedora`/`fedora`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we change instructions so that we don't have default username/password? Seems like anyone who copy/pastes this will end up with a potentially risky endpoint?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Users can change the username/password through the vmi-fedora.yaml file above. I had just given the defaulted user/pass so it'd be easier for folks to get setup/remember in this tutorial, but I can rework it to have folks provide their own credentials.

Copilot AI review requested due to automatic review settings February 4, 2026 19:08
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 6 comments.

| kubectl apply -f -
```

Notice the empty `nodePlacement: {}` and the update for the node selector. By default, KubeVirt sets the node-affinity of operator/custom resource components to control-plane nodes. Because AKS control-plane nodes are fully managed by Azure and inaccessible to KubeVirt, this update to utilize worker nodes avoids potential failures.
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the Microsoft Style Guide, "Notice" should not be used to start sentences as it's a directive verb. Instead, use "Note:" for informational callouts.

Change "Notice the empty nodePlacement: {}" to "Note that the empty nodePlacement: {}" or use a blockquote format:

> **Note**: The empty `nodePlacement: {}` and the update for the node selector...

Copilot generated this review using guidance from repository custom instructions.
Comment on lines 137 to 138
password: fedora
chpasswd: { expire: False }
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The password is hardcoded in the cloud-init configuration as plaintext. While this is a tutorial/demo example, it's a security best practice to call out that this is for demonstration purposes only and should not be used in production.

Consider adding a comment or note after this YAML section:

> **Warning**: This example uses a hardcoded password for demonstration purposes only. In production, use SSH keys or integrate with a secrets management solution.

Copilot uses AI. Check for mistakes.

## Running in prod

When running large scale, production grade workloads, stability of both the KubeVirt components and the individual VMs can also be a point of consideration. As we hinted at earlier, KubeVirt typically sets the node-affinity of operator/custom resource components to control-plane nodes. In our deployment, we have the KubeVirt components running on worker nodes.
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "When running large scale, production grade workloads" should use hyphens for compound modifiers. According to the Microsoft Style Guide, hyphenate compound adjectives when they appear before a noun.

Change to: "When running large-scale, production-grade workloads"

Copilot generated this review using guidance from repository custom instructions.
Copilot AI review requested due to automatic review settings February 4, 2026 19:14
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 5 comments.


Management of these otherwise disparate deployments can be simplified and unified. This unified management can help teams avoid the sprawl that would otherwise come with managing multiple platforms.

The capability to mix and match your workloads in a "hybrid" setting can also allow organizations that might have more complex, legacy VM-based applications to incrementally transition to containers while ensuring their applications remain operational throughout the trainsition.
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The word "trainsition" is misspelled. It should be "transition".

Suggested change
The capability to mix and match your workloads in a "hybrid" setting can also allow organizations that might have more complex, legacy VM-based applications to incrementally transition to containers while ensuring their applications remain operational throughout the trainsition.
The capability to mix and match your workloads in a "hybrid" setting can also allow organizations that might have more complex, legacy VM-based applications to incrementally transition to containers while ensuring their applications remain operational throughout the transition.

Copilot uses AI. Check for mistakes.
Copilot AI review requested due to automatic review settings February 4, 2026 20:14
jakjang and others added 2 commits February 4, 2026 12:15
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

Copilot AI review requested due to automatic review settings February 4, 2026 20:23
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 7 comments.

Using the [Standard_D4s_v5](https://learn.microsoft.com/azure/virtual-machines/sizes/general-purpose/dv5-series?tabs=sizebasic#feature-support) SKU as an example, on the SKU page, you can see whether or not nested virtualization is supported in the "Feature support" section.
- Install the `virtctl` binary utility to better access and control your VirtualMachineInstances. You can follow instructions [on the KubeVirt page](https://kubevirt.io/user-guide/user_workloads/virtctl_client_tool/) to install `virtctl`.

![Screenshot of Azure VM SKU page showing nested virtualization support in the Feature support section](nested-virt-example.png)
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alt text could be more descriptive. Consider changing it to something like "Azure VM SKU documentation page showing nested virtualization feature marked as supported in the feature support table" to better describe what readers will see in the image.

Suggested change
![Screenshot of Azure VM SKU page showing nested virtualization support in the Feature support section](nested-virt-example.png)
![Azure VM SKU documentation page showing nested virtualization feature marked as supported in the feature support table](nested-virt-example.png)

Copilot uses AI. Check for mistakes.
tags: ["kubevirt", "general", "operations"]
---

Many organizations still depend on virtual machines (VMs) to run applications to meet technical, regulatory, or operational requirements. While Kubernetes adoption continues to grow, not every workload can or should be redesigned for containers.
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the Microsoft Style Guide, "VMs" should use "a" not "an" as the article since it's pronounced "vee emms" (starts with consonant sound). Change "an" to "a".

Copilot uses AI. Check for mistakes.
Comment on lines +422 to +428
harshit-gupta:
name: Harshit Gupta
title: Senior Software Engineer at Microsoft
url: https://www.linkedin.com/in/hagupta/
socials:
linkedin: hagupta
github: harshitgupta1337
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The author entry is missing an image_url field. Most other author entries include an image URL (typically from GitHub). Consider adding image_url: https://github.com/harshitgupta1337.png for consistency with other entries.

Copilot uses AI. Check for mistakes.

In order to maintain a control-plane/worker node split, it can be advisable to aim to deploy KubeVirt components in an agentpool that can be designated as the "control-plane" node, while VMs spun up can be ran in designated "worker node" agentpools.

KubeVirt is currently not an officially supported AKS addon/extension, so there is no Microsoft backed SLA/SLO in place for KubeVirt deployments in AKS. If customers need an officially supported offering, [Azure Redhat Openshift](https://learn.microsoft.com/en-us/azure/openshift/howto-create-openshift-virtualization) is a generally available platform to manage virtualized and containerized applications together.
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The URL contains /en-us/ which is a locale-based path. According to the blog post guidelines, you should use generic links without locale prefixes. Change the URL to https://learn.microsoft.com/azure/openshift/howto-create-openshift-virtualization (removing the /en-us/ part).

Copilot generated this review using guidance from repository custom instructions.
<!-- truncate -->

:::note
If you're using KubeVirt on AKS or are interested in trying it, [we'd love to hear from you]((https://github.com/Azure/AKS/issues/5445))! Your feedback will help the AKS team plan how to best support this feature on our platform.
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a double opening parenthesis in the URL. The link should be https://github.com/Azure/AKS/issues/5445 not https://github.com/Azure/AKS/issues/5445)).

Suggested change
If you're using KubeVirt on AKS or are interested in trying it, [we'd love to hear from you]((https://github.com/Azure/AKS/issues/5445))! Your feedback will help the AKS team plan how to best support this feature on our platform.
If you're using KubeVirt on AKS or are interested in trying it, [we'd love to hear from you](https://github.com/Azure/AKS/issues/5445)! Your feedback will help the AKS team plan how to best support this feature on our platform.

Copilot uses AI. Check for mistakes.

## Converting your VMs

At this point, you should have KubeVirt up and running in your AKS cluster and a VMI deployed. KubeVirt can help with a [plethora of scenarios](https://kubevirt.io/) that operational teams may run into. Migrating legacy VMs to KubeVirt can be an involved process, however. [Doing it manually](https://www.spectrocloud.com/blog/how-to-migrate-your-vms-to-kubevirt-with-forklift) involves steps like converting VM's disk and persisting a VM disk to creating a VM template.
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the Microsoft Style Guide, possessives should use "VM's" (with apostrophe) when referring to ownership. However, the phrase "VM's disk" should be "VM disk" (no apostrophe, using VM as an adjective) to match Microsoft conventions for acronyms used as modifiers.

Suggested change
At this point, you should have KubeVirt up and running in your AKS cluster and a VMI deployed. KubeVirt can help with a [plethora of scenarios](https://kubevirt.io/) that operational teams may run into. Migrating legacy VMs to KubeVirt can be an involved process, however. [Doing it manually](https://www.spectrocloud.com/blog/how-to-migrate-your-vms-to-kubevirt-with-forklift) involves steps like converting VM's disk and persisting a VM disk to creating a VM template.
At this point, you should have KubeVirt up and running in your AKS cluster and a VMI deployed. KubeVirt can help with a [plethora of scenarios](https://kubevirt.io/) that operational teams may run into. Migrating legacy VMs to KubeVirt can be an involved process, however. [Doing it manually](https://www.spectrocloud.com/blog/how-to-migrate-your-vms-to-kubevirt-with-forklift) involves steps like converting the VM disk and persisting a VM disk to creating a VM template.

Copilot uses AI. Check for mistakes.

In order to maintain a control-plane/worker node split, it can be advisable to aim to deploy KubeVirt components in an agentpool that can be designated as the "control-plane" node, while VMs spun up can be ran in designated "worker node" agentpools.

KubeVirt is currently not an officially supported AKS addon/extension, so there is no Microsoft backed SLA/SLO in place for KubeVirt deployments in AKS. If customers need an officially supported offering, [Azure Redhat Openshift](https://learn.microsoft.com/en-us/azure/openshift/howto-create-openshift-virtualization) is a generally available platform to manage virtualized and containerized applications together.
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The product name should be "Azure Red Hat OpenShift" (with proper capitalization and spacing). The current text has "Azure Redhat Openshift" which doesn't match the official product name.

Suggested change
KubeVirt is currently not an officially supported AKS addon/extension, so there is no Microsoft backed SLA/SLO in place for KubeVirt deployments in AKS. If customers need an officially supported offering, [Azure Redhat Openshift](https://learn.microsoft.com/en-us/azure/openshift/howto-create-openshift-virtualization) is a generally available platform to manage virtualized and containerized applications together.
KubeVirt is currently not an officially supported AKS addon/extension, so there is no Microsoft backed SLA/SLO in place for KubeVirt deployments in AKS. If customers need an officially supported offering, [Azure Red Hat OpenShift](https://learn.microsoft.com/en-us/azure/openshift/howto-create-openshift-virtualization) is a generally available platform to manage virtualized and containerized applications together.

Copilot uses AI. Check for mistakes.
Copilot AI review requested due to automatic review settings February 4, 2026 20:29
Linter fixes.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.

harshit-gupta:
name: Harshit Gupta
title: Senior Software Engineer at Microsoft
url: https://www.linkedin.com/in/hagupta/
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new author entry is missing the image_url field. Most other authors in the file include this field for their profile picture. Consider adding image_url: https://github.com/harshitgupta1337.png or another appropriate profile image URL to be consistent with other author entries.

Suggested change
url: https://www.linkedin.com/in/hagupta/
url: https://www.linkedin.com/in/hagupta/
image_url: https://github.com/harshitgupta1337.png

Copilot uses AI. Check for mistakes.
Comment on lines +36 to +37
- KubeVirt on AKS requires a chosen VM SKU to support nested virtualization. You can confirm support on the VM size's Microsoft Learn page, such as [Standard_D4s_v5](https://learn.microsoft.com/azure/virtual-machines/sizes/general-purpose/dv5-series?tabs=sizebasic#feature-support).
Using the [Standard_D4s_v5](https://learn.microsoft.com/azure/virtual-machines/sizes/general-purpose/dv5-series?tabs=sizebasic#feature-support) SKU as an example, on the SKU page, you can see whether or not nested virtualization is supported in the "Feature support" section.
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The period is incorrectly placed inside the link. The sentence should end with a period outside the link. Change on the VM size's Microsoft Learn page, such as [Standard_D4s_v5](https://learn.microsoft.com/azure/virtual-machines/sizes/general-purpose/dv5-series?tabs=sizebasic#feature-support). to have the period after the closing parenthesis. However, this line appears to be part of a run-on sentence. Consider revising for clarity.

Copilot uses AI. Check for mistakes.
Comment on lines +74 to +75
| yq '.spec.infra.nodePlacement={}' \
| kubectl apply -f -
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The command uses yq (a YAML processing tool) without mentioning it in the prerequisites section. Readers may not have yq installed. Consider either adding yq to the prerequisites section with installation instructions, or providing an alternative command that doesn't require additional tools.

Copilot uses AI. Check for mistakes.
@jakjang jakjang requested a review from sjwaight February 4, 2026 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants