Just Another IT Blog

It's time to share some of my experiences, crazy ideas, tips and tricks !!!

Post Page Advertisement [Top]

We have seen the increase of containers adoption at companies of all sizes, driving innovation and conquering new markets by the release of new apps or features faster and faster. It would not be possible without the use of modern applications, mostly running on top of Kubernetes, but it’s also unliked to think that those applications will be 100% based on microservices, in fact those new Apps are hybrid, part microservices, part running on virtual machines, like databases or applications that demand a more traditional runtime and even functions, so what's better than having a single platform that can run them all, integrated, self-service and transparent to the developer ?!?


That’s what VM Service is all about, to allow developers to create VMs using K8s manifests on top of vSphere with Tanzu just the same way they are used to deploy all others K8s constructs, eliminating manual or ticketing requests, improving their autonomy and delivering value faster to business.


I’ll cover this subject under two different angles:

- The Operator, which is responsible for the infrastructure, concerning about it’s availability, security and compliance.

- The Developer, which is concern about delivering value through the deployment of applications and features as fast as possible without need to worry so much about the infrastructure.


Let’s start with the Operator.

First of all VM Service has been released to vSphere 7 update 2, so make sure you update your vCenter and Supervisor Cluster to at least this version.


Once available you will notice a new tab on Workload Management called Services.


VM Service has two main components, VM Class and Content Library 


You can think of VM Class as a profile for VMs, like T-shirt sizes on public clouds, where you define the VM resources in terms of amount of CPU and memory which will be allocated, also you can specify how much of those resources are guarantee (reservation). 


 By default vSphere with Tanzu offers a few classes, but you can also create your own, it’s very intuitive, just give it a name and set the values you desire, please avoid to change the default ones, if you need different parameters create your own instead.



Content Library is where the VM images or templates are stored, so developers can pick one desired OS flavor during provisioning.


 The creation of Content Library is straight forward, and you probably have been doing this for years, so I don’t want to bother you here with the steps.


Once the library is created you just need to add the images you want.

VMware is gradualy releasing supported and curated images on Marketplace, just search for VM Service and download the template and add it to the Library.



I created a Library called Tanzu-VMs and added two templates, CentOs and Ubuntu, I used a prefix to help find it easier and distinguish them from the images to Tanzu Kubernetes Cluster.


Now that the requirements are ready it’s time to allow developers to consume those resources. 


That’s when the governance comes in place, allowing the operator to adjust the guardrails on a Namespace basis, like specifying which VM Class to each Namespace to avoid the creation of bigger VMs not suitable for the environment or the use of only approved OS images.


Select the desired Namespace, you will see a new widget, VM Service;


Click on Manage VM Classes to select what classes you want developers to have access to.


Now click on Add Content Library, and select the Library with the Tanzu images you want developers to have access to.



At this point developers are ready to create Virtual Machines as part of their deployments, stay tuned next post I’ll show you how developers can consume this new service.


See you soon.

Bottom Ad [Post Page]