Guide To Know How Creating a stable scalable Kubernetes cluster in AWS 2018
Statement of the problem
The client is a great e-commerce start-up with all applications running on AWS. The client was running the main application of micro services in the environment of several Amazon Elastic Beanstalk containers. The configuration had the following problems:
The existing environment can not scale for an individual service
The implementation of a service also affects other services
The cost of running their micro services was high
Memory-based scale for each micro-service was not implemented
How did the Powerup team help?
The Powerupcloud Devops team helped the client to implement the Kriptetes cluster from scratch to overcome the problems of the existing cluster.aws
![]() |
| fig1.1 cloud computing |
Architecture and AWS description
The domain of the site is treated via Amazon Route53
A VPC is provided with public and private subnets
Independent VPC is created for each environment (Dev, Stage, and Prod) in separate AWS accounts
The separate subnet is being created for Kriptetes Master nodes and cluster nodes, ELB, Caché / Search, databases in each availability zone
Independent security groups are created for each layer
Kong is used as an API gateway for micro services
Kong servers are implemented in the cluster with Cassandra as a backend for the Kong API
All micro services are created in Kiscetes with HPA for scaling the capsule level.
All micro-services are stateless
The ElastiCache Redis is used to store the sessions
Few services use Hazelcast as a memory cache
The Hazelcast cluster is created automatically according to the name of the Kisketes service
The ElasticSearch cluster is used for the search and is configured in HA mode
MongoDB and MySQL are used as database mechanisms
MongoDB is installed on the EC2 instance and PostgreSQL is running on RDS
The e-commerce application is designed to achieve high availability, high scalability and be fault tolerant
Highly available - Each application layer is distributed in two availability zones.
Highly scalable? - The Kubernetes node is configured in the automatic scaling group. Therefore, the application will be scaled horizontally according to the use of the server CPU. The HPA is being configured to size the service level.
CI / CD configuration
Source code: Fabricator (Ben10): It is configured in an instance of EC2. This server is only restricted to the CI server and the IP of the office.
![]() |
| fig1.2 amazon web services training in chennai |
CI Tool: Jenkins
List of installed plugins: Kubernetes, Docker, Selenium, JUnit test case, pipeline, several SCMs
For Jenkins authentication, it integrates with GSuite. You can authenticate only with GSuite users.
Artifacts: Nexus Repo
Construction tool: the Maven is being used to build the war. This is going to pull the artifacts from the Nexus repository.
Code Review: SonarQube
Docker Image Repo: Elastic Container Registration
The separate Jenkins server was created for the production environment and not production
Configuration management
Docker / Ansible is used as the configuration management tool
Docker Image is created for all micro services
It is maintained in all Dev / QA / Prod environments
Ansible Playbook was prepared for the following components
Monitoring Agents: Sensu Monitoring Agent Installation
Software updates: update all packages and update the specific package aws training in chennai
Implementation workflow
Build
Jenkins' work is created to clone the code
Maven is used to build the war file
The artifacts are downloaded from the Nexus repository
package
Using the Jenkins Docker plug-in, prepare the Docker image with the war file from the creation step
Confirm the Docker image in the ECR repository and mark the Docker image with the compilation number
implant
Using the Kubernetes Jenkins plugin, implement the most recent image in your service in the Kisketes cluster
Wait until the implementation succeeds
If the implementation fails, Kiscetes will automatically revert to the previous version
proof
Selenium test cases are activated after successful implementation


Comments
Post a Comment