Bare metal Kubernetes with MAAS

After many, many long hours working on this bare metal Kubernetes whitepaper, it’s FINALLY done and published. Feat MAAS!

I think I literally did work my a$$ off - at least, sitting in my chair typing this away did make me forget I had legs.

If you are interested in taking a walk down memory lane to see how we got here, how it differs from Virtual Machines, or just want to learn about it - this paper I truly hope will be interesting to you.

It even covers how to practically roll out bare metal Kubernetes and includes a video link (at the end) with a hands on tutorial (also involved in wearing me out).

Go, download, read, skim, enjoy :).


Thanks Anton, good reading. We’re reevaluating Kubernetes deployments in the coming year, so I will offer this as an option.

1 Like

Thanks! There’s a hands on video tutorial to go with it also, here:

I tried to manually add my current server to the MAAS controller but it see’s 0 cpu and 0 memory, not sure why that’s the case, but I do have MAAS controlling it as virsh at the same time.

Machine-readable output follows:
    "version": "",
    "total": {
        "cores": 0,
        "memory": 0,
        "local_storage": 0
    "type": "lxd",
    "zone": {
        "name": "default",
        "description": "",
        "id": 1,
        "resource_uri": "/MAAS/api/2.0/zones/default/"
    "id": 99,
    "memory_over_commit_ratio": 1.0,
    "available": {
        "cores": 0,
        "memory": 0,
        "local_storage": 0
    "storage_pools": [],
    "tags": [
    "pool": {
        "name": "default",
        "description": "Default pool",
        "id": 0,
        "resource_uri": "/MAAS/api/2.0/resourcepool/0/"
    "host": {
        "system_id": null,
        "__incomplete__": true
    "default_macvlan_mode": null,
    "cpu_over_commit_ratio": 1.0,
    "used": {
        "cores": 0,
        "memory": 0,
        "local_storage": 0
    "architectures": [],
    "capabilities": [],
    "name": "brief-lamb",
    "resource_uri": "/MAAS/api/2.0/vm-hosts/99/"

Slightly OT, during the LXD init --preeseed phase, I added maas.api.key and maas.api.url and it doesn’t connect to the MAAS server.