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
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 node
MANAGER_IP: the manager’s IP
HOST_IP: the machine’s IP
CPU_OVERPROVISIONING_PERCENTAGE: a CPU overprovisioning percentage, the default is
RAM_OVERPROVISIONING_PERCENTAGE: a CPU overprovisioning percentage, the default is
CPU_FREQ: The CPU frequency of the host machine