{"id":32913,"date":"2024-05-30T08:01:04","date_gmt":"2024-05-30T06:01:04","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=32913"},"modified":"2024-05-30T08:11:17","modified_gmt":"2024-05-30T06:11:17","slug":"investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/","title":{"rendered":"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2)"},"content":{"rendered":"\n<p>In the previous <a href=\"https:\/\/www.dbi-services.com\/blog\/cloud-native-hyper-converged-infrastructure-with-harvester\/\">episode<\/a>, we took a look together at an overview of <a href=\"https:\/\/harvesterhci.io\/\">Harvester<\/a>. We looked at its components and explored the concepts behind Harvester, its cloud-native architecture, and the installation process. Now, let&#8217;s delve deeper into the main purpose of it: scheduling your workload. Let&#8217;s start!<\/p>\n\n\n\n<p>Note: we expanded the Harvester cluster to three nodes. I would like to play with a bit of scheduling, so let&#8217;s add two worker nodes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-virtual-machine-provisioning\">Virtual machine provisioning<\/h2>\n\n\n\n<p>Practical experience is the most effective method to grasp a concept, process, or product. I suggest that we proceed in the same manner.<\/p>\n\n\n\n<p>As part of a larger consolidation and modernization project, imagine we just received the request to integrate a Microsoft Windows Server 2022 application into our new infrastructure. If you ever wonder how to control the quality of your data, there is, at dbi services, <a href=\"https:\/\/www.dbi-services.com\/products\/omrun\/\">OMrun<\/a>. OMrun is a Windows based application that includes test steps, scenarios, and of course, data adaptors. Let&#8217;s take this application as a workload example. <\/p>\n\n\n\n<p>We are not going to automate anything here, as exploring the application is the main focus, so expect provisioning the virtual machine in a wizard based manner.<\/p>\n\n\n\n<p>Log into Harvester web interface by entering the IP mentioned in the console of your node. Take the cluster URL, not the node&#8217;s IP.<\/p>\n\n\n\n<p>In order to provision and run a Windows based application, you need first to add the ISO file of the operating system. I&#8217;ve already downloaded the file (using the following <a href=\"https:\/\/www.microsoft.com\/en-us\/evalcenter\/evaluate-windows-server-2022\" target=\"_blank\" rel=\"noreferrer noopener\">URL<\/a> on the Microsoft web site).<\/p>\n\n\n\n<p>For this, left-hand menu, select Images and then Create.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"614\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085238-1024x614.png\" alt=\"\" class=\"wp-image-33067\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085238-1024x614.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085238-300x180.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085238-768x460.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085238-1536x921.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085238.png 1900w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Upload the file and select Create.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"614\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085410-1024x614.png\" alt=\"\" class=\"wp-image-33068\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085410-1024x614.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085410-300x180.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085410-768x460.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085410-1536x921.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085410.png 1900w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"76\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085518-1024x76.png\" alt=\"\" class=\"wp-image-33069\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085518-1024x76.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085518-300x22.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085518-768x57.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085518-1536x113.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_085518.png 1613w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Once uploaded, any virtual machine using the infrastructure can use the file as of right now.<\/p>\n\n\n\n<p>It is now time to create the VM. On the left-hand side, select &#8220;Virtual Machines&#8221;. You&#8217;ll be presented with a set of fields and options. First of all, as we are dealing here with a Windows-based VM, tick the box &#8220;Use VM Template:&#8221; and select the option &#8220;harvester-public\/windows-iso-image-base-template&#8221;. As stated by SUSE in their <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/docs.harvesterhci.io\/v1.3\/vm\/create-windows-vm#header-section\">documention<\/a>, it is used to add a volume, a disk so, where all the necessary optimised drivers will be stored, so you can refer to that when installing the operating system. If you already used KVM for virtualization, you are on familiar ground. We are talking about paravirtualized <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.linux-kvm.org\/page\/Virtio\">VirtIO<\/a> drivers.<\/p>\n\n\n\n<p>We start to see some Kubernetes references: a namespace is required in order to group the corresponding Kubernetes objects. Reminder: The Kubernetes backend will be in charge of managing your VM. For that, a new set of CRDs (CustomResourceDefinition) were added to handle that.<\/p>\n\n\n\n<p>For instance, here is the definition of a VM: <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/kubevirt.io\/api-reference\/main\/definitions.html#_v1_virtualmachineinstance\">VirtualMachineInstance<\/a>.<br>We create a new namespace; let&#8217;s call it omrun. We also set the name, as well as a short description. Based on your application requirements, specify the CPU and memory resources.<\/p>\n\n\n\n<p>Here, I&#8217;m not going to implement a production ready instance of OMrun, so I won&#8217;t be greedy on that: 4 CPUs and 8GB of memory.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"371\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_161727-1024x371.png\" alt=\"\" class=\"wp-image-33070\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_161727-1024x371.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_161727-300x109.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_161727-768x278.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_161727-1536x556.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_161727.png 1632w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Move on to the storage. By selecting the &#8220;Volumes&#8221; item, we will be able to setup all disks and virtual CD-ROM. Since we use a VM template, we can see that Harvester already provisioned for us some storage devices:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a cdrom-disk: obviously used for acting as virtual CD-ROM drive,<\/li>\n\n\n\n<li>Root disk: the main disk drive of your VM<\/li>\n\n\n\n<li>virtio-container-disk: an ephemeral type of storage, used when you don&#8217;t want any kind of persistence of data. For instance, read-only data, configuration files, or binaries, this is used here for the VirtIO drivers.<\/li>\n<\/ul>\n\n\n\n<p>The next item is &#8220;Networks&#8221;. This part deserved its own blog; for ease of comprehension, we are going to leave this as default.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-a-scheduling-strategy\">A scheduling strategy?<\/h2>\n\n\n\n<p>The following two options are showing, for sure, the connection with Kubernetes. The first one, &#8220;Node Scheduling&#8221; is there to specify the scheduling strategy of the VM across the cluster. Either on any available node, specific named nodes, or Kubernetes labels assigned to nodes. We would like to preferably run the VM only on nodes with the label omrun set to true.<\/p>\n\n\n\n<p>First, we label the node:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nharv01:~ $ kubectl label nodes harv02 omrun=true \nnode\/harv02 labeled\n<\/pre><\/div>\n\n\n<p>Then, on Harvester interface, your inputs shoud look like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"319\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_171927-1024x319.png\" alt=\"\" class=\"wp-image-33071\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_171927-1024x319.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_171927-300x93.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_171927-768x239.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_171927-1536x478.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240508_171927.png 1604w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The next item is still related to scheduling, &#8220;VM Scheduling&#8221;. This time, you can specify, for instance, if your workload needs to run on the same node as already existing workloads (for an increase in performance, perhaps ?) or the opposite: you want to ensure that your workload is properly separated from other specific ones.<\/p>\n\n\n\n<p>All this is managed using the same kind of affinity \/ anti-affinity concepts, dear to Kubernetes.<\/p>\n\n\n\n<p>If you want to know more about that, jump <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#affinity-and-anti-affinity\">here<\/a>.<\/p>\n\n\n\n<p>In the following configuration items, in Advanced Options, you&#8217;ll be ask to set the behavior of the scheduler, Kubernetes then, on the run strategy of your virtual machine. What would need to happen in case your VM crashed for instance. What should happen if you manually stop your VM. No need to carbon copying the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/docs.harvesterhci.io\/v1.2\/vm\/index\/#run-strategy\">SUSE Harvester documentation<\/a>.<\/p>\n\n\n\n<p>By the way, this is reminds me the restart policy in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/docs.docker.com\/config\/containers\/start-containers-automatically\/\">Docker<\/a> run command, we just discovered less than a decade ago \ud83d\ude09<\/p>\n\n\n\n<p>Once done, you can go forward, and click on the Create button at the bottom right corner.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"304\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145325-1024x304.png\" alt=\"\" class=\"wp-image-33347\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145325-1024x304.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145325-300x89.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145325-768x228.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145325-1536x456.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145325.png 1823w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The spin up of the VM takes a bit of time. Especially on my home lab I&#8217;m currently using \ud83d\ude09<\/p>\n\n\n\n<p>But wait.. We are running a Kubernetes cluster here.. Why not going directly on it and trying to see what&#8217;s going on? Using our lovely kubectl ?<\/p>\n\n\n\n<p>Well, again it&#8217;s quite easy and straight forward. You remember the namespace we created initially ? I&#8217;m logged on my Harvester cluster, in SSH.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nharv01:~ $ kubectl get vm -n omrun\nNAME \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AGE \u00a0\u00a0STATUS \u00a0\u00a0\u00a0\u00a0READY\nomrun-instance \u00a0\u00a019d \u00a0\u00a0Starting \u00a0\u00a0False\nharv01:~ $ kubectl get vmi -n omrun\nNAME \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AGE \u00a0\u00a0PHASE \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0IP \u00a0\u00a0\u00a0NODENAME \u00a0\nomrun-instance \u00a0\u00a017s \u00a0\u00a0Scheduled \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0harv02 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\n<\/pre><\/div>\n\n\n<p>The virtual machine is currently being started. The VirtualMachine object has status Starting, the VirtualMachineInstance got the Scheduled status.<\/p>\n\n\n\n<p>State of your VM is reflected directly across Kubernetes objects.<\/p>\n\n\n\n<p>We can add the usual -o yaml flag, as we do for pods:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nharv01:~ $ kubectl get vm -n omrun -o wide -o yaml\napiVersion: v1\nitems:\n- apiVersion: kubevirt.io\/v1\n\u00a0kind: VirtualMachine\n\u00a0metadata:\n\u00a0\u00a0\u00a0annotations:\n\u00a0\u00a0\u00a0\u00a0\u00a0field.cattle.io\/description: An OMrun instance running on Harvester\n\u00a0\u00a0\u00a0\u00a0\u00a0harvesterhci.io\/reservedMemory: 256Mi\n...\n        architecture: amd64\n        domain:\n          cpu:\n            cores: 1\n          devices:\n            disks:\n            - bootOrder: 1\n              cdrom:\n                bus: sata\n              name: cdrom-disk\n            - bootOrder: 2\n              disk:\n                bus: virtio\n              name: rootdisk\n...\n<\/pre><\/div>\n\n\n<p>All the configuration you&#8217;ve made in the UI, is there!<\/p>\n\n\n\n<p>The virtual machine is running now, and as specified, on the second node. The time now is to install the operating system and then, the application. And for that, as we are dealing with a Windows-based virtual machine, it&#8217;s more than ssh-ing into a Linux box.<\/p>\n\n\n\n<p>The first try is to use what is proposed by Harvester. Based on my experience with a previous cluster I&#8217;ve build with a KubeVirt stack on it, connecting to it on Harvester is a dream. In your list of virtual machines, select the &#8220;console&#8221; button, and then &#8220;Open in WebVNC&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"874\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145508-1024x874.png\" alt=\"\" class=\"wp-image-33342\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145508-1024x874.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145508-300x256.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145508-768x655.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145508.png 1124w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Then, what is following is nothing else but a standard Microsoft Windows Server 2022 installation. The only point of attention here would be to select the paravirtualized <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.linux-kvm.org\/page\/Virtio\">VirtIO<\/a> drivers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"874\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145637-1024x874.png\" alt=\"\" class=\"wp-image-33343\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145637-1024x874.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145637-300x256.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145637-768x655.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240509_145637.png 1124w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>With the power of this blog and some magic, I will fast-forward the installation of OMRun and show you the running application.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"662\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142-1024x662.png\" alt=\"\" class=\"wp-image-33344\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142-1024x662.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142-300x194.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142-768x497.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142-1536x993.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142-2048x1324.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\ud83e\udd14 Strangely, I didn&#8217;t manage to get the RDP protocol available. This is probably due to the network settings I&#8217;ve left default at the creation. Something to look for in the next part of this blog series.<\/p>\n\n\n\n<p>I haven&#8217;t installed the dashboard of OMRun for now, which is accessible from the client through a web browser.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-power-of-scheduling\">The power of scheduling \ud83d\udca5<\/h2>\n\n\n\n<p>What if we mess around with this part? What if we simulate a downtime from one of the nodes in our cluster?<\/p>\n\n\n\n<p>Sadly, this unexpected, unfortunate event could occur on the node that runs, specifically, our Windows Server instance. How will Harvester, KubeVirt, and Kubernetes react?<\/p>\n\n\n\n<p>We can first assign the label omrun=true to our first node.<\/p>\n\n\n\n<p>Then, we simply power off our second node, with the VM running (naughty, I know). And we watch \ud83d\ude42<\/p>\n\n\n\n<p>First, the second node is set unavailable, cordoned using Kubernetes terms.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/co-writer\/images\/V7ReIW1mhVXsmYQvV7PN1wdHdXf2\/-1717007772823.webp\" alt=\"IMAGE\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nharv01:~ $ kubectl get nodes\nNAME \u00a0\u00a0\u00a0\u00a0STATUS \u00a0\u00a0\u00a0\u00a0ROLES \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AGE \u00a0\u00a0VERSION\nharv01 \u00a0\u00a0Ready \u00a0\u00a0\u00a0\u00a0\u00a0control-plane,etcd,master \u00a0\u00a021d \u00a0\u00a0v1.27.10+rke2r1\nharv02 \u00a0\u00a0NotReady \u00a0\u00a0&lt;none&gt; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a021d \u00a0\u00a0v1.27.10+rke2r1\nharv03 \u00a0\u00a0Ready \u00a0\u00a0\u00a0\u00a0\u00a0&lt;none&gt; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a021d \u00a0\u00a0v1.27.10+rke2r1\n<\/pre><\/div>\n\n\n<p>At the same time, the virtual machine is set as not ready, but still, scheduled on harv02. On the Kubernetes side, the same.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nharv01:~ $ kubectl get vm -n omrun  \nNAME \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AGE \u00a0\u00a0STATUS \u00a0\u00a0\u00a0READY  \nomrun-instance \u00a0\u00a020d \u00a0\u00a0Running \u00a0\u00a0False  \nharv01:~ $ kubectl get vmi -n omrun  \nNAME \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AGE \u00a0\u00a0\u00a0\u00a0PHASE \u00a0\u00a0\u00a0\u00a0IP \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0NODENAME \u00a0\u00a0READY  \nomrun-instance \u00a0\u00a06m32s \u00a0\u00a0Running \u00a0\u00a010.52.1.122 \u00a0\u00a0harv02 \u00a0\u00a0\u00a0\u00a0False\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"111\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_183546-1024x111.png\" alt=\"\" class=\"wp-image-33341\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_183546-1024x111.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_183546-300x32.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_183546-768x83.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_183546-1536x166.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_183546.png 1580w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Let&#8217;s wait for the timeouts do their jobs and wait a bit.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nharv01:~ $ kubectl get vm -n omrun\nNAME \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AGE \u00a0\u00a0STATUS \u00a0\u00a0\u00a0READY\nomrun-instance \u00a0\u00a020d \u00a0\u00a0Running \u00a0\u00a0True\nharv01:~ $ kubectl get vmi -n omrun\nNAME \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AGE \u00a0\u00a0PHASE \u00a0\u00a0\u00a0\u00a0IP \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0NODENAME \u00a0\u00a0READY\nomrun-instance \u00a0\u00a024m \u00a0\u00a0Running \u00a0\u00a010.52.0.84 \u00a0\u00a0harv01 \u00a0\u00a0\u00a0\u00a0True\n<\/pre><\/div>\n\n\n<p>Harvester, Kubernetes and KubeVirt in the background, have rescheduled the virtual machine to the next node that fits the constraint we asked for (label omrun=true) which was the harv01 (the master node was not the best idea I had).<\/p>\n\n\n\n<p>Thanks to the replication on the storage backend, Longhorn had replicas for each PersistentVolumes created (defaulted to 3). That means we didn&#8217;t lose any data when the second node failed.<\/p>\n\n\n\n<p>We can try to start the VNC console. And voila!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"630\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_205043-1024x630.png\" alt=\"\" class=\"wp-image-33340\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_205043-1024x630.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_205043-300x184.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_205043-768x472.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_205043-1536x944.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_205043-2048x1259.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Our virtual machine is running, OMrun is still able to start.<\/p>\n\n\n\n<p>I will for sure continue my exploration of Harvester, and probably, this time, explore the networking aspects of it!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this second blog, we will see how we can deploy a Microsoft Windows Server 2022 virtual machine on Harvester, and play a little bit with scheduling.<\/p>\n","protected":false},"author":109,"featured_media":33344,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1320,1522,2725],"tags":[3340,2634,3341,3342,49,2751,3368,3343,309,2161,3369],"type_dbi":[],"class_list":["post-32913","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-kubernetes","category-omrun","tag-harvesterhci","tag-kubernetes-2","tag-kubevirt","tag-longhorn","tag-microsoft","tag-omrun","tag-scheduling","tag-sdn","tag-suse","tag-virtualization","tag-windows-server-2022"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Investigative look into cloud-native hyper-converged infrastructure with Harvester (2) - dbi Blog<\/title>\n<meta name=\"description\" content=\"In this second blog, we will see how we can deploy a Microsoft Windows Server 2022 virtual machine on Harvester, and play a little bit with scheduling.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2)\" \/>\n<meta property=\"og:description\" content=\"In this second blog, we will see how we can deploy a Microsoft Windows Server 2022 virtual machine on Harvester, and play a little bit with scheduling.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-30T06:01:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-30T06:11:17+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2055\" \/>\n\t<meta property=\"og:image:height\" content=\"1329\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"DevOps\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DevOps\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/\"},\"author\":{\"name\":\"DevOps\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"headline\":\"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2)\",\"datePublished\":\"2024-05-30T06:01:04+00:00\",\"dateModified\":\"2024-05-30T06:11:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/\"},\"wordCount\":1457,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/Screenshot_20240529_175142.png\",\"keywords\":[\"harvesterhci\",\"kubernetes\",\"kubevirt\",\"longhorn\",\"Microsoft\",\"OMrun\",\"scheduling\",\"SDN\",\"SuSE\",\"virtualization\",\"windows server 2022\"],\"articleSection\":[\"DevOps\",\"Kubernetes\",\"OMrun\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/\",\"name\":\"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2) - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/Screenshot_20240529_175142.png\",\"datePublished\":\"2024-05-30T06:01:04+00:00\",\"dateModified\":\"2024-05-30T06:11:17+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"description\":\"In this second blog, we will see how we can deploy a Microsoft Windows Server 2022 virtual machine on Harvester, and play a little bit with scheduling.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/Screenshot_20240529_175142.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/Screenshot_20240529_175142.png\",\"width\":2055,\"height\":1329},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4cd1b5f8a3de93f05a16ab8d7d2b7735\",\"name\":\"DevOps\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"caption\":\"DevOps\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/devops\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2) - dbi Blog","description":"In this second blog, we will see how we can deploy a Microsoft Windows Server 2022 virtual machine on Harvester, and play a little bit with scheduling.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/","og_locale":"en_US","og_type":"article","og_title":"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2)","og_description":"In this second blog, we will see how we can deploy a Microsoft Windows Server 2022 virtual machine on Harvester, and play a little bit with scheduling.","og_url":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/","og_site_name":"dbi Blog","article_published_time":"2024-05-30T06:01:04+00:00","article_modified_time":"2024-05-30T06:11:17+00:00","og_image":[{"width":2055,"height":1329,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142.png","type":"image\/png"}],"author":"DevOps","twitter_card":"summary_large_image","twitter_misc":{"Written by":"DevOps","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/"},"author":{"name":"DevOps","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"headline":"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2)","datePublished":"2024-05-30T06:01:04+00:00","dateModified":"2024-05-30T06:11:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/"},"wordCount":1457,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142.png","keywords":["harvesterhci","kubernetes","kubevirt","longhorn","Microsoft","OMrun","scheduling","SDN","SuSE","virtualization","windows server 2022"],"articleSection":["DevOps","Kubernetes","OMrun"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/","url":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/","name":"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2) - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142.png","datePublished":"2024-05-30T06:01:04+00:00","dateModified":"2024-05-30T06:11:17+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"description":"In this second blog, we will see how we can deploy a Microsoft Windows Server 2022 virtual machine on Harvester, and play a little bit with scheduling.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/05\/Screenshot_20240529_175142.png","width":2055,"height":1329},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/investigative-look-into-cloud-native-hyper-converged-infrastructure-with-harvester-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Investigative look into cloud-native hyper-converged infrastructure with Harvester (2)"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735","name":"DevOps","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","caption":"DevOps"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/devops\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/32913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/109"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=32913"}],"version-history":[{"count":6,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/32913\/revisions"}],"predecessor-version":[{"id":33349,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/32913\/revisions\/33349"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/33344"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=32913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=32913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=32913"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=32913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}