I wanted to run Microk8s on a Proxmox 6 host inside of an LXC container. These are my notes from the journey.
- Create a privileged LXC container through the Proxmox web interface
- Enable nesting and FUSE
- In Proxmox UI, select container, then Options > Features > Check nesting and FUSE boxes
- SSH into the Proxmox host and edit the container's config in /etc/pve/lxc/.conf
- Add the following lines
- lxc.apparmor.profile: unconfined
- lxc.cap.drop:
- lxc.mount.auto: proc:rw sys:rw
- Add the following lines
- Start (or restart) the container
- SSH into the container and create a symlink for /dev/kmsg, which is missing in Ubuntu 19.10 containers
- ln -s /dev/console /dev/kmsg
- Has to be repeated on container reboot, which is annoying.
- Install snapd: apt install snapd
- Install microk8s: snap install microk8s --classic
The snap commands may need to be run more than once to get past errors.
If you get "cannot change profile for the next exec call: No such file or directory", try running: apparmor_parser -r /var/lib/snapd/apparmor/profiles/*
A few updates to the original steps using Debian 11 LXC Template / June 2022
apt install -y snapd squashfuse fuse
/ reboot!snap install microk8s --classic