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

Popular posts from this blog

Best To Know The Correct Method To Oversee Mysteries With AWS

Guide To Know Main Besic Five Things You Must Know Before Trying Selenium:

Best Top 10 Things to Monitor for Amazon RDS