Skip to content

Spring boot example in Kubernetes and the service mesh with Istio

Notifications You must be signed in to change notification settings

kuldeepsingh99/istio-service-mesh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Service mesh with Istio

How to create AWS Instance and configure master and slave nodes

Click here to download PPT

In this example we will learn how to configure AWS Instance, i already have created an AWS image where kubernetes is also installed. In this we will see how configure master nodes and how slave nodes joins cluster

Istio Installation Version 1.5

Click here to download PPT

In this we will learn how to install istio

Micro service deployment

Click here to download PPT

We have two microserice Customer and practice. Customer microservice calls the practice microservice.

Customer and practice images are pulled from docker hub.

One version of customer (V1) and four version of practice (V1,V2,V3 ad V4) microservice are deployed to cluster.

In this example we will see how to configure customer and practice yaml files. Setting up classic load balancer and access microservice in browser.

We also need to apply to apply Destination rules and Customer Gateway & Virtual Service so that its accessible outside cluster

Domain setting

Click here to download PPT

In this we will see how to set public domain in Route53 and map it with Load balancer and finally accessing the microservice with public domain.

Monitirong with prometheus & graphana

Click here to download PPT

How to set the Gateway and Virtual service rules to access Graphana in browser

Visualization with kiali

Click here to download PPT

How to set the Gateway and Virtual service rules to access Kiali in browser

Distributed tracing with Jaeger

Click here to download PPT

How to set the Gateway and Virtual service rules to access jaeger in browser

Traffic Routing

Click here to download PPT

How to route 100% traffic to Practice Version V1 and how to route Percentage wise traffic to version from command and kiali

Handling Retry

Click here to download PPT

Here we have deployed V4 of Practice Service which has some Issue and it will randomly throw exception

Here is the Code

Random random = new Random(); 
int randomNumber = random.nextInt(10);
		
if(randomNumber < 5) {
  throw new Exception("not able to process");
} else {
  return "practice service V4";
}

Here we will see how istio retry mechanism will help.

In this example we will redirect all traffic to Practice(V4) version and check the sucess rate in graphana, then we will apply Practice Service Retry rules yaml and check the success rate

Outlier Detection & Circuit Breaker

Click here to download PPT

Circuit Breaking & Outlier detection important pattern for creating resilient microservice applications. If any failure occurs then istio will autimatically open's the circuit for sometime as per the configuration and all the request are router to healthy instances.

Here we will see this example traffic is being router to Practice V1 and V4 and we will analyze the failure rate for V4, then we wil apply Outlier detection rules will be disconnect the V4 version and 100% traffc is being routed to V1.

Mirroring

Click here to download PPT

Mirroring is a concept that allows feature teams to deploy changes to production with as little risk as possible. Mirroring sends a copy of live traffic to a mirrored service.

In this task 100% traffic is routed to Practice V1 and copy of that is sent to version V4. So now can check the V4 Logs for any error. In this way we would be able to test the new version in production.

HTTPS Configuration in NLB

Click here to download PPT

In this task we will see how to configure Network load balancer, configure https etc.

Security

Click here to download PPT

In this task we will see after applying mTLS Setting how pods without sidecar won't be able to access pods with sidecar