Step by step tutorial for bare metal K8s on a single machine
Go to file
Loïc Houpert ece1031e13
Update maas-setup.sh
I had to remove the config option for `juju deploy hello-kubecon --config juju-external-hostname=kubecon.test`  to make it worked. With  `--config  juju-external-hostname=kubecon.test`  the unit was stuck at ` waiting for Pebble in workload container`. 

It worked like a charm with `juju deploy hello-kubecon`.


```
Every 2.0s: juju status --color                                                         B550-AORUS: Tue Mar 15 13:11:05 2022
Model          Controller  Cloud/Region  Version  SLA          Timestamp
hello-kubecon  my-k8s-new  my-k8s-new    2.9.26   unsupported  13:11:05Z

App            Version  Status   Scale  Charm                     Store     Channel  Rev  OS          Address         Message
hello-kubecon           waiting      1  hello-kubecon             charmhub  stable    14  kubernetes  10.152.183.100  installing agent
ingress                 active       1  nginx-ingress-integrator  charmhub  stable    27  kubernetes  10.152.183.162

Unit              Workload  Agent  Address     Ports  Message
hello-kubecon/0*  waiting   idle   10.1.85.13         waiting for Pebble in workload container
ingress/0*        active    idle   10.1.85.14
```
2022-03-15 14:48:22 +00:00
ceph-osd.yaml added working juju/ceph storage setup, add k8s to juju, bootstrap, add 2021-10-29 19:12:13 +02:00
LICENSE Create LICENSE 2021-11-21 14:11:18 +01:00
lxd.conf small fix 2021-11-02 12:35:44 +01:00
maas-cloud.yaml various fixes and bugs 2021-11-17 11:56:08 +01:00
maas-setup.sh Update maas-setup.sh 2022-03-15 14:48:22 +00:00
README.md Update README.md 2022-03-15 14:23:25 +00:00

Bare metal Kubernetes with MAAS, LXD, and Juju

Intro

This is a series of commands and configuration files that will guide you to build your own emulated bare metal k8s cluster on a single machine, using https://maas.io.

It is designed to be used in conjunction with an explanatory video tutorial: https://www.youtube.com/watch?v=sLADei_c9Qg

How to use

Read maas-setup.sh. The script is not fully automated and requires manual intervention at times. Read the comments to understand the process.

Requirements

You need a reasonably powerful bare metal machine, 4 or more cores with 32 GB of RAM and 500GB of free disk space. Assumes a fresh install of Ubuntu server (20.04 or higher) on the machine.

You will need to install the command line configuration tool for Kubernetes kubectl

The reason you need a bare metal machine is because nesting multiple layers of VMs will not work and/or have performance problems.

Note: this tutorial has not been tested on versions prior to 20.04.