With Imixs-Cloud we started a new open infrastructure project, providing a lightweight kubernetes cluster for small and medium-sized organizations. This projects goal is to build, run and maintain business applications in a production ready and self managed kubernetes cluster. The main objectives of Imixs-Cloud are simplicity, transparency and operational readiness.
The runtime environment is based on Kubernetes and provides an easy way to setup and maintain a medium-sized kubernetes cluster environment hosted on virtual servers or bare metal. The project is open source and constantly under development. You can join the project on Github.
The project contains information how to setup a kubernetes cluster on bare metal servers or cloud servers.
The complete infrastructure of a Imixs-Cloud environment is described in a central configuration directory. The Configuration Directory can be synchronized with a code repository like Git. This makes it easy to role back changes if something went wrong.
The imixs-cloud directory contains different sub-directories holding your applications, scripts and tools:
/- |+ management/ |- monitoring/ |- registry/ |- traefik/ |+ apps/ |+ MY-APP/ | 001-deployment.yaml ..... |+ scripts/ | apply.sh | setup.sh | delete.sh |+ tools/
apps/ is the place where your custom business services are configured. Each sub-directory holds at least one kubernetes object description (yaml file). Optional additional configuration files are also located in this directory.
management/ this sub-folder holds the configuration for all management services running on your kubernetes cluster (see below). This configuration is maintained by this project and can be customized for individual needs.
scripts/ provides bash scripts to apply or delete an application and also the setup script to setup a kubernetes node.
tools/ provides useful tools
Imixs-Cloud provides a set of management services:
For a convenient way to obtain information about your cluster Imixs-Cloud uses the tool K9s. K9s is a powerful terminal tool to interact with your Kubernetes cluster.
To access your applications from outside of your cluster Imixs-Cloud provides the Ingress Router Traefik.io. This tool allows you to easily expose your services to public Internet addresses.
To run stateful docker images (e.g. a Database like PostgreSQL) you need to define a storage volume along with your service. Due to its simplicity and the very good integration in Kubernetes, we use Longhorn as the preferred storage solution within Imixs-Cloud.
Docker images are available on docker registries. The Imixs-Cloud includes a setup to run the registry Habor. Habor is a secure, performant, scalable, and available cloud native repository for Kubernetes.