Installation
Installation Modes
Fogify can be installed either directly on cluster nodes, aka as a bare-metal installation, or the user can utilize a containerized version of the system written in docker-compose file. However, for both modes, the all cluster nodes should have installed the Requirement Software Components, namely, the docker Swarm orchestrator and a network Linux kernel package (iproute).
Requirement Software Components
Orchestrator (Swarm Installation)
According to the Orchestration, Fogify needs a pre-installed Docker Swarm Orchestrator. With the following command, the user can easily install a Docker Swarm Manager (master Node).
docker swarm init --advertise-addr <hosts_ip>
The latter command will generate a result similar to:
Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
192.168.99.100:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
At this time, the Docker Swarm cluster consists of one node which is Manager and Worker. If a user needs to add more nodes, he/she can run the following command on each extra node.
$ docker swarm join \
--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
192.168.99.100:2377
Kernel Network Plugin
Fogify executes some low-level commands in order to apply specific characteristics to the network. For this reason, on each cluster node, we should install the traffic control tool (tc-tool). On Debian-based destributions, tc-tool comes bundled with iproute, so in order to isntall it you have to run:
apt-get install iproute
Required Parameters
The parameters of the Fogify
should pass through host’s environmental parameter. Specifically, the parameters are the following:
MANAGER_NAME
: the relative name of the swarm master nodeMANAGER_IP
: the manager’s IPHOST_IP
: the machine’s IPCPU_OVERPROVISIONING_PERCENTAGE
: a CPU overprovisioning percentage, the default is0
RAM_OVERPROVISIONING_PERCENTAGE
: a CPU overprovisioning percentage, the default is0
CPU_FREQ
: The CPU frequency of the host machine
CPU
or RAM
.
Fogify
through docker-compose.yaml
the latter parameters may be declared in .env
file or via command line parameters of docker-compose up
command.