I just started looking at the Kubernetes documentation and interactive tutorial [1], which incidentally is really good. Everyone who is developing a complex system should look at this to get some ideas for online training. Here are some notes on setting it up on Debian.
Add Kubernetes Apt Repository
deb https://apt.kubernetes.io/ kubernetes-xenial main
First add the above to your apt sources configuration (/etc/apt/sources.list or some file under /etc/apt/sources.list.d) for the kubectl package. Ubuntu Xenial is near enough to Debian/Buster and Debian/Unstable that it should work well for both of them. Then install the GPG key “6A030B21BA07F4FB” for use by apt:
gpg --recv-key 6A030B21BA07F4FB gpg --list-sigs 6A030B21BA07F4FB gpg --export 6A030B21BA07F4FB | apt-key add -
The Google key in question is not signed.
Install Packages for the Tutorial
The online training is based on “minikube” which uses libvirt to setup a KVM virtual machine to do stuff. To get this running you need to have a system that is capable of running KVM (IE the BIOS is set to allow hardware virtualisation). It MIGHT work on QEMU software emulation without KVM support (technically it’s possible but it would be slow and require some code to handle that), I didn’t test if it does. Run the following command to install libvirt, kvm, and dnsmasq (which minikube requires) and kubectl on Debian/Buster:
apt install libvirt-clients libvirt-daemon-system qemu-kvm dnsmasq kubectl
For Debian/Unstable run the following command:
apt install libvirt-clients libvirt-daemon-system qemu-system-x86 dnsmasq kubectl
To run libvirt as non-root without needing a password for everything you need to add the user in question to the libvirt group. I recommend running things as non-root whenever possible. In this case entering a password for everything will probably be more pain than you want. The Debian Wiki page about KVM [2] is worth reading.
Install Minikube Test Environment
Here is the documentation for installing Minikube [3]. Basically just download a single executable from the net, put it in your $PATH, and run it. Best to use non-root for that. Also you need at least 3G of temporary storage space in the home directory of the user that runs it.
After installing minikube run “minikube start” which will download container image data and start it up. Then you can run commands like the following to see what it has done.
# get overview of virsh commands virsh help # list domains virsh --connect qemu:///system list # list block devices a domain uses virsh --connect qemu:///system domblklist minikube # show stats on block device usage virsh --connect qemu:///system domblkstat minikube hda # list virtual networks virsh --connect qemu:///system net-list # list dhcp leases on a virtual network virsh --connect qemu:///system net-dhcp-leases minikube-net # list network filters virsh --connect qemu:///system nwfilter-list # list real network interfaces virsh --connect qemu:///system iface-list