This is the webpage for RenewKube.
Petri nets require powerful tools to be executed for token game, visualizations, simulations, programming execution or analysis (verification and validation). The state space of Petri net models can be of the size of non primitiv recursive functions. In combination with dynamically growing and shrinking numbers of Petri net models, like in reference nets, there is a strong need for scaling of simulation execution. RenewKube addresses this problem.
RenewKube is a plugin for the Petri net tool Renew. It provides necessary technical frameworks for the design of large models. Embedding into virtual machines and Docker containers becomes easier. Starting from previous solutions with Renew, Web Services, agent-based models, virtual machines and simple Cloud based implementations RenewKube integrates Docker and Kubernetes in its environment. It offers the scaling of the execution of complex models.
RenewKube supports the installation and application of the frameworks and additional software enhancements for Renew by scripts and provides a lean interface for distributed simulations. Currently it is a prototypical proof-of-concept implementation, that inherits all basic necessary features for the distributed simulation support.
On the one hand some software needs to be installed beside Renew and the RenewKube Plugin. With respect to the Petri net models it is also possible to control the scaling from within the Petri net models via two main commands getScale(); and setScale(<number>); inscriptions. These inscriptions are used in addition to the formerly developed DistributePlugin, which is considerably developed further for RenewKube. Starting from a first instance the simulation can grow in remote locations or within other local virtual machines. The Kubernetes Pod concept allows to loose containers at runtime. Up to now Renew model simulations on different machines were coupled in a stronger way, so that the whole simulation died when one of the nodes (the simulation running on a node) disappeared. However, this is an experimental features that will be tested in depth during the further development of RenewKube.
Architecture
Main Components of the software
At runtime the simulation uses three kinds of major parts:
- User node:
Contains a Renew simulator. Provides the interface of Renew to the user and ensures the communication with the cluster master node.
- 1 - N additional worker nodes:
Each node contains an own Renew simulator. Each worker node simulation waits until it is called to execute a net simulation.
- Cluster master node:
Does not contain a Renew simulator. The cluster master node covers most administrative matters. It offers four services / components:
- The container manager (that is provided by Kubernetes) alongside with a network abstraction layer,
- a private Docker image registry,
- the Java RMI registry and
- an integration service called RenewKube manager.
RenewKube manager
The RenewKube manager is a stateless application based on Java Spring and the REST technology, which handles multiple things like
- the integration of additional physical nodes,
- authorization against the Kubernetes manager,
- relaying information,
- accepting tasks,
- providing the net templates to additional running simulations and
- handling individual Renew extension containers in regard to accessibility from the user node.
Download and Installation
To make bootstrapping your own local Kubernetes / RenewKube cluster for evaluation purposes as easy as possible, we provide an all-in-one VM image, that contains all of the setup procedure for each of the node types mentioned above.
The download is provided as VM image, as RenewKube is based on Kubernetes, which is a cluster/cloud management tool and it is not recommended to install it directly on your daily use computer. It changes numerous system settings (like disabling the swap partition), that you probably do not want on your main workstation. Therefore a VM image provides a save environment to try out everything without changing your system.
Please note, that RenewKube is under active development and we will add new releases from time to time.
Here we provide a download for evaluation and trying out (as VM image): renewkube-190221.ova (The initial release 190207 can be found below under "Release History")
Please refer to this checklist while setting it up: checklist.txt
More detailed instructions can be found here: installer_text.txt
Release History
Current Release
Version 190221 (21. February 2019) Download
Changelog:
- Fixed automated shutdown upon simulation termination.
- Fixed TLS handshake bug on worker node.
- Added script to re-initialize a restarted master node.
Previous Releases
Version 190207 (07. February 2019) Download
This is the initial release version.
Troubleshooting
- Remote Renew instances are not shut down automaically upon simulation termination.
- Fixed in version 190221, make sure to terminate the simulation with CTRL/CMD + T.
- The master node is not working anymore after it has been rebooted.
- Fixed in version 190221. To re-initialize the master run "start_master.sh" on the rebooted master. Note, that this script only runs on a previously installed master node.
- TLS Handshake on worker nodes times out upon registering on the master on some host environments.
- Fixed in version 190221.
- The hostname of the workstation machine is falsely called "renewkube-master". It's cosmetic and does not harm the simulation.
Full manual installation
The full manual installation is very complex and not recommended, except you are familiar with setting up Kubernetes clusters. Right now we are writing detailed instructions on how to perform a manual setup. If you are interested in the manual setup please check back again later.
More information will come with our following releases.