Career
Mid Level Assignment: Kubernetes Deployment and Scaling
Scenario:
You are responsible for deploying a microservices-based application on a Kubernetes cluster. The application consists of multiple services that need to be scaled dynamically based on demand.
Requirements:
-
Kubernetes Cluster Setup: Set up a Kubernetes cluster (locally or on a cloud provider).
-
Docker Images: Dockerize each microservice of the application and push the images to a registry.
-
Kubernetes Deployment: Create Kubernetes deployment manifests for each microservice. Ensure that:
-
Services are deployed with the desired replicas.
-
Resources (CPU, memory) are allocated appropriately.
-
Auto-scaling: Implement Horizontal Pod Autoscaling (HPA) for critical microservices. Configure HPA to:
-
Automatically scale pods based on CPU utilization.
-
Set minimum and maximum replicas based on workload requirements.
-
CI/CD Integration: Integrate the Kubernetes deployment manifests into the CI/CD pipeline. The pipeline should:
-
Deploy the application to the Kubernetes cluster after successful build and testing.
-
Roll out updates seamlessly with zero downtime.
Additional notes
-
You can use any programming language you prefer (GoLang is a plus). You are allowed to use open-source packages as you see fit.
-
follow best practices for Docker, Kubernetes, and CI/CD pipelines.
-
Any details not specified in the description are up to you.
-
Provide clear and detailed documentation for deploying, scaling, and maintaining the platform.
-
Once completed, the assignments should be published in a publicly accessible version control system such as Git.