Installation

You could of course do this with Ansible or any other orchestration tool. I didn't.

newgrp microk8s
sudo snap install microk8s --classic --channel=1.26/stable
echo alias mkctl=\"microk8s kubectl\" > ~/.bash_aliases
sudo usermod -a -G microk8s ubuntu
sudo chown -f -R ubuntu ~/.kube

# Dump the config to access the cluster remotely
microk8s config

Once you have it installed you may want to copy the output of the config dump to your local machine to manage the cluster from there. On a mac the location would be ~/.kube/config.

After the install you have access to these commands: - sudo microk8s stop - sudo microk8s start - sudo microk8s status - sudo microk8s enable <plugin> - sudo microk8s disable <plugin>

Enable HA for the control plane

sudo microk8s enable ha-cluster

Once this is done, you should see something similar to the following in the output of sudo microk8s status

microk8s is running
high-availability: yes
  datastore master nodes: 192.168.1.100:19001 192.168.1.101:19001 192.168.1.102:19001
  datastore standby nodes: none

If all went well then congrats! You have a basic running k8s cluster that can be accessed from a computer on your local network.