This project demonstrates deployment of a scalable and fault-tolerant Go web application using Kubernetes and modern DevOps technologies.
The infrastructure supports:
- High availability using multiple replicas
- Kubernetes self-healing
- Horizontal Pod Autoscaling (HPA)
- Docker containerization
- CI/CD automation with GitHub Actions
- Docker Hub integration
- Go
- Docker
- Kubernetes
- GitHub Actions
- Docker Hub
- Git
.
├── k8s/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── hpa.yaml
├── .github/workflows/
│ └── ci-cd.yml
├── Dockerfile
├── main.go
└── README.md
Install the following tools:
- Docker
- Minikube
- kubectl
- Git
git clone https://github.com/ustkost/sna_devops_project
cd sna_devops_projectminikube start --nodes 3kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml
kubectl apply -f k8s/hpa.yamlkubectl get nodes
kubectl get pods -o wide
kubectl get svc
kubectl get hpaminikube service sna-projectDelete one of the pods:
kubectl delete pod <pod-name>Kubernetes automatically recreates the pod.
Generate load:
curl http://<service-ip>/loaddocker build -t myapp .docker run -p 8080:8080 myappGitHub Actions pipeline automatically:
- Builds the Go application
- Builds Docker image
- Pushes image to Docker Hub
- Timur — Go application, Docker, CI/CD, documentation
- Konstantin — Kubernetes configuration, autoscaling, demo
https://drive.google.com/drive/folders/1JFk4toS85OfSfH-M1GqjfMgPbrrxfpOh?usp=sharing