Cluster Manager Service

Purpose

To install Kubernetes, register the machine as a worker/master, expose an API for managing pods, and register the machine with the infrastructure manager service.

Function

When the service is deployed, it takes parameters to decide whether the server is a master or a worker (a URL to join the master is required for a worker). It installs the required Kubernetes services if not already installed and registers the service with the infrastructure manager service using the provided API in the configuration. It stores the server configuration (CPU, RAM, storage, and the installed Kubernetes version) and provides a token to perform API calls for deploying pods.

Upon receiving a create operation request, it checks for the token and the request ID to validate the request, then performs the intended request and saves it if further actions are required.

The service checks for available ports and deploys the service to the respective port. It also monitors server status and provides information to the infrastructure service if needed.

Monitoring services are installed by the cluster manager service so that server information is available in the Grafana dashboard and central logging server if available.

The service can open ports via code or prompt the user to open a set of ports specified in the configuration.

It has its own database to store the ideal state of pods and update them as required. Any state change is communicated to the infrastructure service via API.

Deploying

Users can fetch the Docker file from the Kandola Committee GitHub repository and run the Docker Compose command.

Provider

Girnaar built.

Type

Docker image

Configuration

  • Infra Service URL

  • Region it serves

  • Available Port Range

Dependencies

  • Docker

  • Docker Compose

  • Infra Manager Service

Last updated