Kubernetes setting up for software projects deploying
Client: The organization is a global partnership of missions and denominations from all over the world
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.