devalias.net
devalias.net copied to clipboard
[DeepDive] Kubernetes on Unraid (Slackware) + OpenFaaS
Concept
It would be cool to be able to run Kubernetes easily on top of Unraid, which appears to be built on Slackware.
tl;dr
- Enable VM support on unraid
- Install
kubectl - Set/persist minikube's
MINIKUBE_HOMEENV var to a drive location that will persist on reboot (eg./mnt/cache/foo)export MINIKUBE_HOME=/mnt/cache/minikube
- Install
minikubecurl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.1.1/minikube-linux-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube- this would be even better if it was wrapped up as an unraid plugin..
- Install
docker-machine-driver-kvm2curl -Lo docker-machine-driver-kvm2 https://storage.googleapis.com/minikube/releases/v1.1.1/docker-machine-driver-kvm2 && chmod +x docker-machine-driver-kvm2 && sudo cp docker-machine-driver-kvm2 /usr/local/bin/ && rm docker-machine-driver-kvm2- this would be even better if it was wrapped up as an unraid plugin..
- Set
minikube's default driver to KVM2minikube config set vm-driver kvm2
- Start
minikubeminikube startorminikube start -p foo
- ???
- Profit!
Research
Unraid
VMs
- http://unraid.local/Settings/VMSettings
- Enable VMs:
Yes - Libvirt storage location:
/mnt/cache/libvirt/libvirt.img - Default VM storage path:
/mnt/cache/VMs/ - Default ISO storage path::
/mnt/user/Foo/
- Enable VMs:
- http://unraid.local/VMs
- Add VM: http://unraid.local/VMs/VMTemplates
- https://forums.unraid.net/forum/45-vm-templates/
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_getting_started_guide/sect-domain_xml_intro
- https://lime-technology.com/wp/virtualization-host/
- https://forums.unraid.net/topic/37013-a-brief-synopsis-of-kvm-hvm-and-vfio/
- https://forums.unraid.net/forum/51-vm-engine-kvm/
- https://wiki.unraid.net/UnRAID_6/VM_Management
- KVM, QEMU, VirtIO, VirtFS, VFIO, Libvirt
- https://serverfault.com/questions/324281/how-do-you-increase-a-kvm-guests-disk-space
Plugins
- https://forums.unraid.net/topic/74396-creating-new-plugin/
- https://forums.unraid.net/topic/52623-plugin-system-documentation/
- https://forums.unraid.net/topic/33322-how-does-the-plugin-system-work-documentation-added-wip/
- https://forums.unraid.net/topic/42808-plugin-templates-for-ca-appstore/
- https://forums.unraid.net/topic/38431-plug-in-application-template-categorizer/
- https://forums.unraid.net/forum/61-plugin-support/
- https://wiki.unraid.net/UnRAID_Plugins_for_V6
Kubernetes
- https://kubernetes.io/
- https://kubernetes.io/docs/setup/
- https://github.com/kubernetes/minikube
- https://github.com/kubernetes/minikube/releases
- https://kubernetes.io/docs/setup/learning-environment/minikube/
- https://kubernetes.io/docs/tasks/tools/install-minikube/
- https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux
- https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm2-driver
minikube config set vm-driver kvm2minikube start --vm-driver kvm2
- https://github.com/kubernetes/minikube/blob/master/docs/env_vars.md#other-variables
MINIKUBE_HOME
OpenFaaS
- https://www.openfaas.com/
- https://www.openfaas.com/blog/introducing-openfaas-for-lambda/
- https://www.openfaas.com/blog/openfaas-cloudrun/
- https://docs.openfaas.com/
- https://github.com/openfaas
- https://github.com/openfaas/faas
- https://github.com/openfaas/faas-cli
- https://github.com/openfaas/faas-netes
- https://github.com/openfaas/openfaas-cloud
- https://github.com/openfaas/store
- https://github.com/openfaas/workshop
- https://github.com/openfaas-incubator
- https://github.com/openfaas-incubator/ofc-bootstrap
- https://github.com/openfaas-incubator/connector-sdk
- https://github.com/faas-and-furious
Slackware
- Slackware's package management tools include:
installpkgremovepkgupgradepkg- etc
- https://slackbuilds.org/repository/14.2/misc/deb2tgz/
- Shell script that converts Debian packages to Slackware packages.
Working with version 1.18.1 instead of 1.1.1.
Consider adding a dedicated user:
useradd -m -d /mnt/user/system/kube kubeusermod -a -G users kubesu kubeexport PATH=.:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/binminikube start

I would expect this to use all cores and all ram, making it unusable when using VM-s