Migrating Pods

I’ve been testing out MAAS in a dev ops environment lately and have been going through rapid prototyping of some capabilities wrt KVM / Pods. I put in a help desk ticket asking if there were any way to migrate pods from one KVM host to another. Unfortunately the response was that this is not a current capability.

I’d like to put in a feature request for the following:

Psuedo-usecase:
Current KVM Host machines are reaching capacity for resource utilization. To alleviate the strain and allow for expansion, more machines have been added as KVM hosts.
It would be nice to be able to take a select few guests from each host, and move them over to the new KVM host.

Nice to have:

  • Allow the system to auto-balance the load between all of the KVM hosts

Nicer to have:

  • Allow the system to auto-balance the load between all of the KVM hosts with the availability zones / spaces / etc in mind.

My specific use case is that I needed to add another VLAN to an existing KVM host. Since I cannot do that through the UI without the machine being in a specific state, I have to take the host offline, perform the maintenance on it, and then bring it back up. Being able to move the pods / guests from one host to another while I perform this maintenance would be nice.

I think you misunderstanding the purpose of MaaS here … MaaS is not a cloud orchestrator.
Its purpose is spinning bare metal or VM hosts targets to support infrastructure deployments preferably but not exclusively for things like Juju or Terraform.

What you ask would need a lot more features in MaaS such as the ability to deploy clusters of KVM hgosts, right now, those hosts are standalone hosts that are appropriate to support virtualized control planes for things like Openstack or Kubernetes and those components are HA by themselves so even if you lose the host, you don’t break your top infrastructure.

I think what you’re looking for is Openstack (or comparable infrastructure), and this is exactly what MaaS+Juju is meant for.

Interesting. So I am using Juju and MaaS to deploy the Charmed Kubernetes stack. Since I have servers that have a bunch of resources, I am just deploying those servers as KVM hosts, and letting Juju commission MaaS for target machines. By leveraging bindings in the deployment file I can target specific spaces for these applications to live.

The problem arises when I need to deploy a logging overlay to that Charmed Kubernetes stack and I want my logging models / machines to live in a separate space. Since the KVM hosts were deployed without knowledge of a “logging” space, I need to add that VLAN to the KVM host, redeploy it, and then Juju will be able to commission a target machine for the applications in that overlay.

Without being able to move the pods currently allocated to a specific KVM host, the Kubernetes layer will suffer and be put into a degraded state while the KVM host is deleted, and then redeployed. Then I would have to go and redeploy the Charmed Kubernetes stack to get those VMs re-created.

Maybe I am misunderstanding the purpose of MaaS here, but given the documentation of MaaS for KVM hosts, I believe my provided use case to be inline with the purpose of MaaS and Juju.

Appreciate your feedback!

-Bill

No need to redeploy to make your kubernetes model aware of a new network space.
You won’t be able to automate addition of a new network space to a deployed KVM host but you can edit the network configuration by hand on those hosts.
You can add a new bridge to detag your vlan (the netplan configuration is not complicated to hack, just copy/paste and already existing vlan definition and adjust to the new settings and then reapply the netplan configuration).
One you did this, you can use this new space on this host, just refresh the host in the “KVM host” page

That’s what I thought too!!! But once I added the new netplan configurations Juju complained that it couldn’t identify a machine that meets the requirements.

I even ran juju spaces and saw that Juju knew about the new vlan / space. I tried to compose a new machine on that KVM host through the UI after editing the netplan, and MaaS wasn’t happy. Couldn’t create the new machine on that specific interface newly created vlan.

1 Like

I can second this, I am also unable to add new networks/spaces on a already deployed KVM Pods by only adding new vlan/bridge on the host and ask MaaS to refresh the pod.

Is there a way to log/debug when happens when MaaS refresh the pod, specifically the parts where it should discover new bridges related to new spaces ?

Running MAAS 2.9.2 (9165-g.c3e7848d1)

1 Like