WebApp : The Containerized Java Web Application can be found here.
Requirements :
- Kubernetes Cluster (kops in EC2)
- Containerized Application
- EBS volume for Database Pod
- Label Node with zone names
- Kubernetes definition files to create objects on kubernetes cluster.
- Deployment
- Service
- Secret
- Volume
Steps :
- Configure Hosted zone on AWS Route53 for k8s cluster domain
- Create Kubernetes Cluster on AWS EC2 with kops, kubectl
- Containerize the application, build images and push it to dockerhub registry.
- Create Kubernetes manifest files to create deployment and service components for application application, database, memcache and rabbitmq containers.
- Create EC2 volume and mount it to database deployment, deployed all the components and setup AWS Route53 subdomain to access the web application.
┌─────────────┐
│Load-Balancer│
└─────────────┘
|↑
|| _______┌─────┐
|| //-----→│MySQL│←-----
↓| ↓| └─────┘----||
┌─────────────┐ |↑ ||
│Tomcat_Server│ || ||
└─────────────┘ ↓| ||
|↑ ┌────────┐ ||
|| │Memcache│ ||
|| └────────┘ ||
↓| ↑| ||
┌────────┐ // ||
│RabbitMQ│____// ||
└────────┘←---- //
|↑ //
||___________________//
----------------------