Scroll to top
Message was sent successfully

Kubernetes setting up for software projects deploying


Client: The organization is a global partnership of missions and denominations from all over the world


Over 14.000


Non-profit services



Technologies were used


The Challenge

The general task was to deploy Kubernetes (k8s) cluster for hosting and Continuous Integration / Continuous Delivery purposes.


The Solution

Preparation Stage

It’s been decided to use bare-metal servers instead of cloud in order for client to save costs. It was agreed to use a self-managed k8s cluster, traefik as ingress controller and Gitlab for storing projects and CI/CD.

Implementation Stage

A self-managed k8s cluster was created on bare-metal servers with the use of kubespray. A high availability control plane with ecd replicated has been created. It consisted of:

  • ceph storage for applications which requires redundancy and high performance;
  • nfs storage for applications which requires much of disk space;

There were installed and configured k8s side components, such as:

  • traefik - for ingress control;
  • kubernetes dashboard – in order to have visual representation of the current cluster state;
  • configured calico as network provider for k8s;
  • configured heapster+grafana+influxdb for monitoring purpose;

Deployments with separate namespaces for each project were developed and implemented.

Additional components for deployments:

  • configmaps for web servers and php configuration;
  • passwords stored in secrets;
  • PV and PVC created for each microservice on cephfs and nfs.

Gitlab on a separate bare-metal server was installed and configured:

  • created projects in Gitlab for each separate customer project;
  • configured gitlab runners for different executors (shell, docker, kubernetes);
  • configured docker registry in Gitlab;
  • configured CI/CD for each project and instruction for using them;
  • created regular backups using Gitlab CI.

The Result

All the customer`s requirements have been met and the cooperation moved to the next stage which includes:

  • regular OS, software and Kubernetes updates;
  • infrastructure improvement and modification if needed;
  • adding new projects;
  • monitoring.

Bring us your toughest challenge and we’ll perform you route
to an efficient solution.

    I'm interested in: