Installing Simplenetes
There are three main components of Simplenetes available to be installed:
- The Management Tool, called
sns
- The Pod compiler, called
podc
- The Daemon, called
simplenetesd
To manage a Cluster, at least the sns
tool needs to be installed on your computer.
If managing the Cluster is expected to involve compiling Pods and creating new releases, then podc
also needs to be installed.
The Daemon (simplenetesd
) should always be installed on all Cluster Hosts. It can also be installed locally on your laptop to simulate working on a Cluster.
Prerequisites
To run Pods locally, podman
version 1.8.1
or later is required. In order to take advantage of user-mode networking, slirp4netns
is needed so that Pods can be run in rootless mode.
podman
Please refer to the official documentation for instructions on how to install Podman.
Alternatively, check your distribution's package manager. It's usually not more complicated than sudo apt-get install podman
.
Since Podman is expected to be used in unprivileged mode, we want to allow non-root users to bind ports from 80
and upwards.
That can be achieved by adding the following row to /etc/sysctl.conf:
net.ipv4.ip_unprivileged_port_start=80
Then, issue sudo sysctl --system
to take the changes into effect.
slirp4netns
For instructions about slirp4netns
, please refer to the official repository on GitHub.
Installing sns
sns
is a standalone executable, written in POSIX-compliant shell script and runs anywhere there is Bash/Dash/Ash installed.
It interacts with a few programs in the OS, such as grep
, awk
, date
and others. The usage of these tools is tailored to work under both GNU/Linux, BusyBox/Linux and BSD variants, including OSX. It might even run under Windows Subsystem for Linux (WSL).
Download and install sns
straight from GitHub, as follows:
LATEST_VERSION=$(curl -s -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/simplenetes-io/simplenetes/releases/latest | grep tag_name | cut -d":" -f2 | tr -d ",|\"| ")
curl -LO https://github.com/simplenetes-io/simplenetes/releases/download/$LATEST_VERSION/sns
chmod +x sns
sudo mv sns /usr/local/bin
For a complete list of versions, check out the Releases.
Installing podc
Install podc
and its runtime by downloading them from GitHub, as follows:
LATEST_VERSION=$(curl -s -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/simplenetes-io/podc/releases/latest | grep tag_name | cut -d":" -f2 | tr -d ",|\"| ")
curl -LO https://github.com/simplenetes-io/podc/releases/download/$LATEST_VERSION/podc
curl -LO https://github.com/simplenetes-io/podc/releases/download/$LATEST_VERSION/podc-podman-runtime
chmod +x podc
sudo mv podc /usr/local/bin
sudo mv podc-podman-runtime /usr/local/bin
For more detailed instructions and explanation about the install process, please visit the podc
repository.
Installing simplenetesd
simplenetesd
is a standalone executable, written in POSIX-compliant shell script and will run anywhere there is Bash/Dash/Ash installed.
The Daemon should always be installed onto the GNU/BusyBox/Linux Virtual Machines making up the Cluster.
It can also be installed onto your GNU/BusyBox/Linux laptop or personal computer to simulate working on a Cluster.
When installing it locally, simplenetesd
does not have to be installed as a Daemon. It can be run in user-mode as a foreground process instead.
The Daemon activates the pod scripts that use podman
to run containers.
To install simplenetesd
locally to use it for development, do:
LATEST_VERSION=$(curl -s -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/simplenetes-io/simplenetesd/releases/latest | grep tag_name | cut -d":" -f2 | tr -d ",|\"| ")
curl -LO https://github.com/simplenetes-io/simplenetesd/releases/download/$LATEST_VERSION/simplenetesd
chmod +x simplenetesd
sudo mv simplenetesd /usr/local/bin
The provision of new Hosts and Clusters, as well as more details on simplenetesd
are covered on the Provisioning a production cluster section.