MAAS Architecture for Multiple Use Cases

Hi Team,

We’re currently using a single virtual machine with all MAAS services installed via apt packages. Up until now, we’ve primarily used MAAS for quick bare-metal deployments with a custom image [on vlan-B (PXE boot) in subnet B.B.B.B]. A dedicated virtual interface (ens-B) in MaaS instance handled PXE requests on vlan-B. Once deployed, machines were removed from MAAS records, keeping the setup stateless.

However, a new use case requires managing Kubernetes clusters with MAAS CAPI. This means MAAS will need to continuously manage k8s nodes. Our current testing setup involves:

  • A dedicated VLAN (say vlan-KM) with IPv4 and IPv6 subnets for the Kubernetes management cluster nodes. [There will be more such Kubernetes clusters that need to be managed via MaaS]
  • An additional interface (say ens-KM) was added to the MAAS VM for handling PXE traffic on vlan-KM. The IPv4/v6 addresses were handed over by MaaS DHCP server.

To best support these evolving use cases, I’d like to discuss on recommended architecture options. Specifically, is splitting maas-region and maas-rackd a viable approach? Something like the below:

maas-regiond
├── maas-rackd-generic_baremetal
├── maas-rackd-kubernetes-cluster1
└── maas-rackd-kubernetes-cluster2

Another option is to have dedicated maas instances that deal with specific use cases - but this approach won’t scale. The MaaS services also need to be on HA so that Kubernetes workflow is not affected due to service downtimes/maintenances.

Would appreciate thoughts/suggestions.

Thanks!