Installing Nuvolaris in an Ubuntu instance

As a prerequisite you need:

  • an Ubuntu Instance, at least version 20 (with snap pre-installed)

  • at least 4GB of memory, 30 gb of disk space

  • ssh and sudo access to the instance

  • firewall opened for port 80 and 443

  • the <public-dns-name> of the instance, or at least a public IP address

NOTE if you do not have a public DNS name for your virtual machine but only an IP address, you can use nip.io to get one. If you IP address is 1.2.3.4 then you can use 1-2-3-4.nip.io as a <public-dns-name>.

Use ssh to log into the instance, according the instructions of your cloud provider.

Install MicroK8s

First, let’s install microk8s with snap and give access to our user to `microk8s:

sudo snap install microk8s --classic
sudo microk8s enable hostpath-storage ingress dns
sudo usermod -a -G microk8s ubuntu
newgrp microk8s

Now get the kubectl tool and and the configuration:

mkdir ~/.kube
microk8s kubectl config >~/.kube/config
microk8s kubectl get nodes

You should get an output like this (versions and names can be different):

NAME               STATUS   ROLES    AGE   VERSION
ip-172-31-21-189   Ready    <none>   70m   v1.24.0-2+59bbb3530b6769

If you see NotReady wait a bit and try again until the node is Ready, it can take up to one minute.

Installing Nuvolaris

Now you are ready to install Nuvolaris.

Copy the <url-address> of the latest version of the installer from this page.

Then download and unpack it (replace <url-address> with the actual URL address):

curl -sL <url-address> | tar xzvf -
sudo install nuv /usr/local/bin/nuv
nuv -v

If the download and the installation went ok, you should see the version number of the installer.

Now you can install Nuvolaris.

For Microk8s instances you do not have generally a load balancer configured so you need to provide the <public-dns-name> of the instance. It is generally the same you used to access the instance itself.

Also you need the name of the <kubernetes-context> to use. You can have more contexts to access multiple Kubernetes at the same time. With Microk8s there should have be only one and it is named microk8s.

You can see the available contexts with the command kubectl config get-contexts.

Once you collected the informations you need you can install it with:

nuv setup --context=<kubernetes-context> --apihost=<public-dns-name>

The installation can take a few minutes to complete, mostly because a number of large Docker images must be downloaded.

If you ware curious, you can check what is happening on the Kubernetes cluster running (in another terminal) the command watch kubectl -n nuvolaris get po,svc.

If something goes wrong, please check the troubleshooting page.

Accessing the serverless environment remotely

Now that your serverless environemnt is ready you can access it from anywhere, using the configured apihost and auth key.

Type nuv wsk proerty get. It will show something like this:

whisk API host		<apihost>
whisk auth		    <auth>
whisk namespace		nuvolaris
whisk API version	v1
whisk CLI version	v0.2.0-trinity.22061015
whisk API build		2021-12-29T12:28:02+0000
whisk API build number	67b3e50

Take note of the values <apihost> and <auth> as you wil need it to access your serverless environment remotely.

Now you can download the nuv tool elsewhere, and connect to your serverless environment with:

nuv wskprops --apihost=<apihost> --auth=<auth>