Author: Duc Minh Nguyen
Description:
This project demonstrates a complete end-to-end CI/CD pipeline using Jenkins, Kubernetes, and Terraform. It ensures high availability, automated deployments, and comprehensive monitoring. The initial study and development time for this project was around 6 months, completed during my winter break.
** Required Server:
- 3 Master Instances
- 1 Load Balancer
- 3 Worker Instances
- 1 Installer Instances installing Jenkin Slave
- 1 Jenkin Master Instances
- 1 Sonarqube Instances
1.1.mp4
[SECOND VIDEO OVER HERE] https://youtu.be/JuYIE03daUA
3.1.mp4
-
K8S_Terraform
Contains Terraform scripts to set up a basic Kubernetes cluster.
[Refer to theREADME.mdinside for setup instructions] -
K8S_Terraform_HighAvailability
Terraform scripts for setting up a high availability Kubernetes cluster.
[Refer to theREADME.mdinside for setup instructions] -
Taint_Toleration
Guide and scripts for Kubernetes taint and toleration configuration.
[Refer to theREADME.mdinside for setup instructions] -
K8S_Monitoring
Configuration for monitoring the Kubernetes cluster using Prometheus and Grafana.
[Refer to theREADME.mdinside for setup instructions] -
Jenkin_Pipeline
Jenkins pipeline configuration for continuous integration and deployment.
[Refer to theREADME.mdinside for setup instructions] -
Ansible
Ansible playbooks for automating configuration tasks. However, not much here, it was just some few basic configures [Refer to theREADME.mdinside for setup instructions]
- Clone this repository.
- Navigate to each folder and follow the specific
README.mdfor detailed setup and deployment instructions. - Ensure you have the necessary tools installed:
- Terraform
- Kubernetes (kubectl)
- Jenkins
- Docker
- Ansible
- High availability Kubernetes cluster with automatic failover.
- CI/CD pipeline using Jenkins for automated builds, code scanning with SonarQube, and deployment.
- Dockerized applications with images published to Docker Hub.
- Continuous monitoring with Prometheus, Grafana, and alerting using Alertmanager.
Feel free to reach out if you have any questions or need further guidance!




