= 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 [http://renew.de 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 [http://renew.de 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 [http://renew.de 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 [http://renew.de 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(); 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 [http://renew.de 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: 1. User node: Contains a [http://renew.de Renew] simulator. Provides the interface of [http://renew.de Renew] to the user and ensures the communication with the cluster master node. 2. 1 - N additional worker nodes: Each node contains an own [http://renew.de Renew] simulator. Each worker node simulation waits until it is called to execute a net simulation. 3. Cluster master node: Does not contain a [http://renew.de Renew] simulator. The cluster master node covers most administrative matters. It offers four services / components: a. The container manager (that is provided by Kubernetes) alongside with a network abstraction layer, b. a private Docker image registry, c. the Java RMI registry and d. 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 [http://renew.de Renew] extension containers in regard to accessibility from the user node. '''Here we provide a temporarily download for reviewers: [http://www.informatik.uni-hamburg.de/TGI/moldt/renewkube/renewkube-190207.ova renewkube-190207.ova]''' = Prerequisites = Installation for RenewKube is supported for Unix-like systems (macOS, Linux, BSD,...) and requires the installation of: - [https://www.virtualbox.org/ VirtualBox] and several other tools for individual installations - Java Runtime / Development Environment in Version 9 or later - [https://git-scm.com/downloads Git] - [https://www.Docker.com/ Docker] - [https://kubernetes.io/ Kubernetes] - [http://www.Renew.de/ Renew] - several further operating system specific tools = Installation = There is one major script that will support the installation process. Environment variables like JAVA_HOME etc. must be set according to your specific needs of your environment. Every component can be installed separately, but we recommend to use our script. The steps one needs to take are: 1. Install [https://www.virtualbox.org/ VirtualBox] as the basic environment for RenewKube. 2. Download the ova file which contains all scripts, software for RenewKube provided by us, a simple example and some documentation. 3. Follow the [http://www.informatik.uni-hamburg.de/TGI/moldt/renewkube/installer_text.txt installer_text.txt] for installation with [https://www.virtualbox.org/ VirtualBox]. 4. Test the system. The version of RenewKube can now be downloaded. The current version already works, but is not as comfortable as our local version. We might setup an improved version during next week. For reviewing the [http://www.informatik.uni-hamburg.de/TGI/moldt/renewkube/installer_text.txt installer_text.txt] will help to support the installation process. More information will come with our following releases.