Today I stumbled across Rancher Desktop and thought I’ll give it a try. If blogged about Rancher in the past but all those blogs talked about the full blown Rancher project. Rancher Desktop brings you “Kubernetes and container management on the desktop”, so the target audience for that are the desktops of developers. Lets try how easy it really is to bring it up own my own desktop, which is running openSUSE Tumbleweed.

For Linux, there is one zip file to download:

dwe@ltdwe:~/Downloads$ wget https://github.com/rancher-sandbox/rancher-desktop/releases/download/v1.0.0-beta.1/rancher-desktop-1.0.0-beta.1-linux.zip

Before you go further, please make sure that you have QEMU installed, as this is a requirement. Because I am already running virtual machines on my desktop there is nothing to do for me. For your reference, these are the packages installed on my system:

dwe@ltdwe:~/Downloads$ zypper search qemu | egrep "^i "
i | libvirt-daemon-driver-qemu     | Qemu driver plugin for the libvirtd daemon                     | package
i | libvirt-daemon-qemu            | Server side daemon & driver required to run QEMU guests        | package
i | qemu                           | Machine emulator and virtualizer                               | package
i | qemu-accel-qtest               | QTest accelerator for QEMU                                     | package
i | qemu-accel-tcg-x86             | TCG accelerator for QEMU                                       | package
i | qemu-audio-spice               | Spice based audio support for QEMU                             | package
i | qemu-block-curl                | cURL block support for QEMU                                    | package
i | qemu-block-rbd                 | Rados Block Device (Ceph) support for QEMU                     | package
i | qemu-chardev-spice             | Spice vmc and port chardev support for QEMU                    | package
i | qemu-hw-display-qxl            | QXL display support for QEMU                                   | package
i | qemu-hw-display-virtio-gpu     | Virtio GPU display support for QEMU                            | package
i | qemu-hw-display-virtio-gpu-pci | Virtio-gpu pci device for QEMU                                 | package
i | qemu-hw-display-virtio-vga     | Virtio vga device for QEMU                                     | package
i | qemu-hw-usb-host               | USB passthrough driver support for QEMU                        | package
i | qemu-hw-usb-redirect           | USB redirection support for QEMU                               | package
i | qemu-hw-usb-smartcard          | USB smartcard support for QEMU                                 | package
i | qemu-ipxe                      | PXE ROMs for QEMU NICs                                         | package
i | qemu-ksm                       | Kernel Samepage Merging services                               | package
i | qemu-microvm                   | x86 MicroVM firmware for QEMU                                  | package
i | qemu-ovmf-x86_64               | Open Virtual Machine Firmware - QEMU rom images (x86_64)       | package
i | qemu-seabios                   | x86 Legacy BIOS for QEMU                                       | package
i | qemu-sgabios                   | Serial Graphics Adapter BIOS for QEMU                          | package
i | qemu-tools                     | Tools for QEMU                                                 | package
i | qemu-ui-curses                 | Curses based UI support for QEMU                               | package
i | qemu-ui-gtk                    | GTK based UI support for QEMU                                  | package
i | qemu-ui-opengl                 | OpenGL based UI support for QEMU                               | package
i | qemu-ui-spice-app              | Spice UI support for QEMU                                      | package
i | qemu-ui-spice-core             | Core Spice support for QEMU                                    | package
i | qemu-vgabios                   | VGA BIOSes for QEMU                                            | package
i | qemu-x86                       | Machine emulator and virtualizer for x86 architectures         | package
i | system-user-qemu               | System user and group qemu                                     | package

The installation of Rancher Desktop is really easy. All you have to do it this:

dwe@ltdwe:~/Downloads$ ls -l rancher-desktop-1.0.0-beta.1-linux.zip
-rw-r--r-- 1 dwe users 354886544 Jan 25 13:44 rancher-desktop-1.0.0-beta.1-linux.zip
dwe@ltdwe:~/Downloads$ mkdir rd
dwe@ltdwe:~/Downloads$ cd rd/
dwe@ltdwe:~/Downloads/rd$ unzip ../rancher-desktop-1.0.0-beta.1-linux.zip && ./rancher-desktop

This will bring up the first dialog asking for the version of Kubernetes you want to use:

I’ll go with the default version. As soon as you selected what you want, the download of Kubernetes is starting:

You should also see a new icon in your system tray where you can switch the Kubernetes context:

In the settings you can adjust CPU and memory usage:

If you take a look at the processes on your desktop you’ll notice that a virtual machine was started up:

dwe@ltdwe:~/Downloads/rd$ ps -ef | grep -i qemu | grep rancher
dwe       8622  8607 17 14:45 pts/1    00:05:33 /home/dwe/Downloads/rd/resources/resources/linux/lima/bin/qemu-system-x86_64 -cpu host -machine q35,accel=kvm -smp 2,sockets=1,cores=2,threads=1 -m 4096 -boot order=d,splash-time=0,menu=on -drive file=/home/dwe/.local/share/rancher-desktop/lima/0/basedisk,media=cdrom,readonly=on -drive file=/home/dwe/.local/share/rancher-desktop/lima/0/diffdisk,if=virtio -cdrom /home/dwe/.local/share/rancher-desktop/lima/0/cidata.iso -netdev user,id=net0,net=192.168.5.0/24,dhcpstart=192.168.5.15,hostfwd=tcp:127.0.0.1:44787-:22 -device virtio-net-pci,netdev=net0,mac=52:55:55:a5:73:8b -device virtio-rng-pci -display none -device virtio-vga -device virtio-keyboard-pci -device virtio-mouse-pci -parallel none -chardev socket,id=char-serial,path=/home/dwe/.local/share/rancher-desktop/lima/0/serial.sock,server=on,wait=off,logfile=/home/dwe/.local/share/rancher-desktop/lima/0/serial.log -serial chardev:char-serial -chardev socket,id=char-qmp,path=/home/dwe/.local/share/rancher-desktop/lima/0/qmp.sock,server=on,wait=off -qmp chardev:char-qmp -name lima-0 -pidfile /home/dwe/.local/share/rancher-desktop/lima/0/qemu.pid

The usual utilities like kubectl and helm are automatically linked into your home directory:

… and you can use them right away:

dwe@ltdwe:~/Downloads/rd$ kubectl get ns
NAME              STATUS   AGE
default           Active   43m
kube-system       Active   43m
kube-public       Active   43m
kube-node-lease   Active   43m

To get rid of Rancher Desktop, simply delete all the files on disk after you stopped the GUI:

dwe@ltdwe:~/Downloads/rd$ rm -rf /home/dwe/.config/rancher-desktop
dwe@ltdwe:~/Downloads/rd$ rm -rf /home/dwe/.local/share/rancher-desktop
dwe@ltdwe:~/Downloads/rd$ rm -rf /home/dwe/.cache/rancher-desktop
dwe@ltdwe:~/Downloads/rd$ rm -rf /home/dwe/Downloads/rd

Nice project.