SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 1/58
Istio Service Mesh
Introduction
1 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 2/58
Kyohei Mizumoto(@kyohmizu)
C# Software Engineer
Interests
Docker/Kubernetes
Go
Security
whoami
2 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 3/58
Required
Basic knowledge of Kubernetes
Targets
People who:
don't know Service Mesh
have never used Istio
3 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 4/58
Contents
1. What is Service Mesh?
2. What is Istio?
3. Setup using Istio on GKE
4. Traffic Management
4 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 5/58
What is Service Mesh?
5 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 6/58
Microservices?
Loosely coupled
Independently deployable
Organized around business capabilities
Implemented using different programming languages
Continuous delivery/deployment of large, complex
applications
6 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 7/58
Service Mesh?
Describe the network of microservices that make up
applications and the interactions between them
Service Discovery
Load Balancing
Failure Recovery
Metrics and Monitoring
7 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 8/58
Service Mesh?
More complex operational requirements
A/B Testing
Canary Rollouts
Rate Limiting
Access Control
End-to-end Authentication
8 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 9/58
What is Istio?
9 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 10/58
Open source independent service
mesh
Deployed as sidecars in the Pods
CNCF hosted project(Envoy)
Istio
10 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 11/58
Istio
Connect, secure, control, and observe services
11 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 12/58
Architecture
12 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 13/58
Architecture
Data plane
Envoy
Control plane
Mixer
Pilot
Citadel
Galley
13 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 14/58
Deployed as a sidecar in the
Kubernetes Pod
Add to an existing deployment with
no need to rearchitect or rewrite code
Envoy
A high-performance proxy developed in C++
14 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 15/58
Envoy
Features
Dynamic Service Discovery
Load Balancing
TLS Termination
HTTP/2 and gRPC proxies
15 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 16/58
Envoy
Circuit Breakers
Health Checks
Staged Rollouts with %-based Traffic Split
Fault Injection
Rich Metrics
16 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 17/58
Mixer
Responsible for providing policy controls and telemetry
collection
Enforces access control and usage policies across the
service mesh
Collects telemetry data from the Envoy proxy and other
services
Includes a flexible plugin model
17 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 18/58
Mixer
18 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 19/58
Pilot
Provides service discovery for:
Envoy sidecars
Traffic management capabilities for intelligent routing
(e.g. A/B Tests, Canary Rollouts)
Resiliency
(e.g. Timeouts, Retries, Circuit Breakers)
19 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 20/58
Pilot
20 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 21/58
Citadel
Strong service-to-service/end-user authentication with
built-in identity and credential management
Galley
Istio’s configuration validation, ingestion, processing and
distribution component
21 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 22/58
Setup using Istio on GKE
22 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 23/58
Set IAM
Set the default compute service account to include:
roles/container.admin (Kubernetes Engine Admin)
Editor (on by default)
23 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 24/58
Set IAM
24 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 25/58
Create a Cluster
Need 4 nodes
Check "Enable Istio (beta)" on Advanced options
25 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 26/58
Istio Resources
$ kubectl get svc -n istio-system
or
$ kubectl get po -n istio-system
26 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 27/58
Install Istio
1. Go to the Istio release page to download the
installation file
2. Extract the downloaded installation file
3. Change directory to the root of the Istio installation
4. Add the istioctl client to the PATH:
$ export PATH=$PWD/bin:$PATH
27 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 28/58
Sample Application
28 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 29/58
Bookinfo
Ratings
Details
Ruby
Product
page
Reviews-v3
Reviews-v2
Reviews-v1
Requests
29 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 30/58
Bookinfo
4 separate microservices:
Productpage
Details
Reviews
Ratings
30 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 31/58
Bookinfo
3 versions of the Reviews microservice:
Version v1
doesn’t call the ratings service
Version v2
calls the ratings service, and displays black stars
Version v3
calls the ratings service, and displays red stars
31 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 32/58
Deploy
Enable automatic sidecar injection:
$ kubectl label namespace default 
istio-injection=enabled
Deploy the application using kubectl:
$ kubectl apply -f 
samples/bookinfo/platform/kube/bookinfo.yaml
32 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 33/58
Resources
Confirm all services and pods are running:
$ kubectl get po,svc
33 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 34/58
Define Ingress Gateway
$ kubectl apply -f 
samples/bookinfo/networking/bookinfo-gateway.yaml
$ kubectl get gateway
NAME AGE
bookinfo-gateway 17s
34 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 35/58
Control Ingress Traffic
35 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 36/58
Httpbin
HTTP testing service that can be used for experimenting
with all kinds of Istio features
$ kubectl apply -f samples/httpbin/httpbin.yaml
36 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 37/58
Set variables
Set the ingress IP and ports:
$ export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway 
-o jsonpath='{.status.loadBalancer.ingress[0].ip}')
$ export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway 
-o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
$ export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service 
istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')
37 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 38/58
Create an Istio Gateway
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: httpbin-gateway
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
EOF
38 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 39/58
Configure routes
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: httpbin
spec:
hosts:
- "*"
gateways:
- httpbin-gateway
http:
- match:
- uri:
prefix: /headers
route:
- destination:
port:
number: 8000
host: httpbin
EOF
39 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 40/58
Virtual Service
Contains the route rules that Allows traffic for path
/headers
All other external requests will be rejected
$ export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
$ $ curl -I http://$GATEWAY_URL/headers
HTTP/1.1 200 OK
...
$ $ curl -I http://$GATEWAY_URL/status
HTTP/1.1 404 Not Found
...
40 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 41/58
Bookinfo Web Page
http://$GATEWAY_URL/productpage
41 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 42/58
Bookinfo Web Page
If you refresh the page several times, you should see
different versions of reviews shown in productpage,
presented in a round robin style
red stars
black stars
no stars
since we haven’t yet used Istio to control the version
routing.
42 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 43/58
Apply default destination rules
Create default destination rules for the Bookinfo services:
$ kubectl apply -f 
samples/bookinfo/networking/destination-rule-all.yaml
Display the destination rules:
$ kubectl get destinationrules -o yaml
43 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 44/58
Traffic Management
44 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 45/58
Request routing
Introduces the concept of a service version:
Versions (v1, v2)
Environment (staging, prod)
Choose service version dynamically based on the
routing rules that specified by using Pilot
45 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 46/58
Request routing
46 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 47/58
Request routing
Route to v1:
$ kubectl apply -f 
samples/bookinfo/networking/virtual-service-all-v1.yaml
Display the defined routes:
$ kubectl get virtualservices -o yaml
47 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 48/58
Discovery and load balancing
HTTP traffic is automatically re-routed through Envoy
3 load balancing modes:
Round robin
Random
Weighted least request
Checks the health of each instance
48 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 49/58
Discovery and load balancing
49 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 50/58
Discovery and load balancing
Apply weight-based routing:
Transfer 50% of the traffic from reviews:v1 to reviews:v3
$ kubectl apply -f 
samples/bookinfo/networking/virtual-service-reviews-50-v3.yaml
Route based on user identity:
$ kubectl apply -f 
samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
50 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 51/58
Handling failures
Timeouts
Bounded retries with timeout budgets and variable jitter
between retries
Limits on number of concurrent connections and
requests to upstream services
Active (periodic) health checks on each member of the
load balancing pool
Fine-grained circuit breakers (passive health checks)
51 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 52/58
Fault injection
Test the end-to-end failure recovery capability
Protocol-specific fault injection into the network
instead of deleting pods/ delaying/ corrupting packets
2 types of faults
Delays: Timing failures (Increased network latency/
Overloaded upstream service)
Aborts: Crash failures (HTTP error codes/ TCP
connection failures)
52 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 53/58
Canary rollout
Introduce a new version of a service by first testing it
using a small percentage of user traffic.
Kubernetes provides features that support canary rollout:
Uses instance scaling to manage the traffic distribution
Only supports a simple (random percentage) canary
rollout
53 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 54/58
Canary rollout
With Istio:
The number of pods are orthogonal to the control of
version traffic routing
Control fine grain traffic percentages
(e.g. route 1% of traffic without requiring 100 pods)
Control traffic using other criteria
(e.g. route traffic for specific users)
54 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 55/58
Books
55 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 56/58
Links
Microservice Architecture
https://microservices.io/index.html
Istio.io
https://istio.io/
Istio Solutions | Google Cloud
https://cloud.google.com/istio/
Istioサービスメッシュ⼊⾨
https://www.slideshare.net/yokawasa/istio-114360124
56 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 57/58
Links
Installing Istio on GKE
https://cloud.google.com/istio/docs/istio-on-gke/installing
Install Istio on the Google Kubernetes Engine
https://istio.io/docs/setup/kubernetes/install/platform/gke/
Bookinfo Application
https://istio.io/docs/examples/bookinfo/
57 / 58
2019/4/4 Istio Service Mesh Introduction
127.0.0.1:5500/#54 58/58
Thank You!
58 / 58

Mais conteúdo relacionado

Mais procurados

Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Kai Wähner
 
Red Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft AzureRed Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft AzureJohn Archer
 
Introduction to Vault
Introduction to VaultIntroduction to Vault
Introduction to VaultKnoldus Inc.
 
The Complete Guide to Service Mesh
The Complete Guide to Service MeshThe Complete Guide to Service Mesh
The Complete Guide to Service MeshAspen Mesh
 
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdKai Wähner
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureNguyen Tung
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesMirantis
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRishabh Indoria
 
Securing Kafka
Securing Kafka Securing Kafka
Securing Kafka confluent
 
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API ManagerWSO2
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewJames Falkner
 
The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficC4Media
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesSusheel Aroskar
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultAWS Germany
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101Weaveworks
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesSlideTeam
 

Mais procurados (20)

Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
Service mesh
Service meshService mesh
Service mesh
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
 
Red Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft AzureRed Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft Azure
 
Introduction to Vault
Introduction to VaultIntroduction to Vault
Introduction to Vault
 
The Complete Guide to Service Mesh
The Complete Guide to Service MeshThe Complete Guide to Service Mesh
The Complete Guide to Service Mesh
 
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh Architectures
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Securing Kafka
Securing Kafka Securing Kafka
Securing Kafka
 
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about Traffic
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix Devices
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s Vault
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 

Semelhante a Istio service mesh introduction

Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Ram Vennam
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your AppKarenBruner
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your AppStackRox
 
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023Hello Cloud
 
FIWARE Global Summit - Building Production Grade IoT Platform Leveraging FIWARE
FIWARE Global Summit - Building Production Grade IoT Platform Leveraging FIWAREFIWARE Global Summit - Building Production Grade IoT Platform Leveraging FIWARE
FIWARE Global Summit - Building Production Grade IoT Platform Leveraging FIWAREFIWARE
 
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup  MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup Stephanie Swart
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service MeshRafik HARABI
 
Cp r77 security_gateway_techadminguide_test
Cp r77 security_gateway_techadminguide_testCp r77 security_gateway_techadminguide_test
Cp r77 security_gateway_techadminguide_testPham Quoc Bao
 
Kubernetes and Istio
Kubernetes and IstioKubernetes and Istio
Kubernetes and IstioKetan Gote
 
IPv6 Progress and Challenge in Chunghwa Telecom
IPv6 Progress and Challenge in Chunghwa TelecomIPv6 Progress and Challenge in Chunghwa Telecom
IPv6 Progress and Challenge in Chunghwa TelecomAPNIC
 
Istio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform EngineersIstio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform EngineersSaiLinnThu2
 
Sensors being provided for Bardhaman Bridge health monitoring
Sensors being provided for Bardhaman Bridge health monitoringSensors being provided for Bardhaman Bridge health monitoring
Sensors being provided for Bardhaman Bridge health monitoringRajesh Prasad
 
Kubernetes monitoring introduction
Kubernetes monitoring introductionKubernetes monitoring introduction
Kubernetes monitoring introductionKyohei Mizumoto
 
Implementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on KeycloakImplementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on KeycloakYuichi Nakamura
 
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud
Jakarta EE 10 - Simplicity for Modern and Lighweight CloudJakarta EE 10 - Simplicity for Modern and Lighweight Cloud
Jakarta EE 10 - Simplicity for Modern and Lighweight CloudIvar Grimstad
 
Quo Vadis Netflix Stack?
Quo Vadis Netflix Stack?Quo Vadis Netflix Stack?
Quo Vadis Netflix Stack?Fabian Keller
 
Carrier WiFi Architectures
Carrier WiFi ArchitecturesCarrier WiFi Architectures
Carrier WiFi ArchitecturesMarc Nader
 

Semelhante a Istio service mesh introduction (20)

Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019
 
Meetup talk about the Red Hat OpenShift Service Mesh
Meetup talk about the Red Hat OpenShift Service MeshMeetup talk about the Red Hat OpenShift Service Mesh
Meetup talk about the Red Hat OpenShift Service Mesh
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your App
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your App
 
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
 
FIWARE Global Summit - Building Production Grade IoT Platform Leveraging FIWARE
FIWARE Global Summit - Building Production Grade IoT Platform Leveraging FIWAREFIWARE Global Summit - Building Production Grade IoT Platform Leveraging FIWARE
FIWARE Global Summit - Building Production Grade IoT Platform Leveraging FIWARE
 
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup  MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
 
Cp r77 security_gateway_techadminguide_test
Cp r77 security_gateway_techadminguide_testCp r77 security_gateway_techadminguide_test
Cp r77 security_gateway_techadminguide_test
 
Kubernetes and Istio
Kubernetes and IstioKubernetes and Istio
Kubernetes and Istio
 
IPv6 Progress and Challenge in Chunghwa Telecom
IPv6 Progress and Challenge in Chunghwa TelecomIPv6 Progress and Challenge in Chunghwa Telecom
IPv6 Progress and Challenge in Chunghwa Telecom
 
Istio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform EngineersIstio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform Engineers
 
Sensors being provided for Bardhaman Bridge health monitoring
Sensors being provided for Bardhaman Bridge health monitoringSensors being provided for Bardhaman Bridge health monitoring
Sensors being provided for Bardhaman Bridge health monitoring
 
Kubernetes monitoring introduction
Kubernetes monitoring introductionKubernetes monitoring introduction
Kubernetes monitoring introduction
 
Implementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on KeycloakImplementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on Keycloak
 
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud
Jakarta EE 10 - Simplicity for Modern and Lighweight CloudJakarta EE 10 - Simplicity for Modern and Lighweight Cloud
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud
 
Quo Vadis Netflix Stack?
Quo Vadis Netflix Stack?Quo Vadis Netflix Stack?
Quo Vadis Netflix Stack?
 
Platform Observability and Infrastructure Closed Loops
Platform Observability and Infrastructure Closed LoopsPlatform Observability and Infrastructure Closed Loops
Platform Observability and Infrastructure Closed Loops
 
Carrier WiFi Architectures
Carrier WiFi ArchitecturesCarrier WiFi Architectures
Carrier WiFi Architectures
 
WebKilit Manual
WebKilit ManualWebKilit Manual
WebKilit Manual
 

Mais de Kyohei Mizumoto

Introduction to telepresence
Introduction to telepresenceIntroduction to telepresence
Introduction to telepresenceKyohei Mizumoto
 
Windowsコンテナ入門
Windowsコンテナ入門Windowsコンテナ入門
Windowsコンテナ入門Kyohei Mizumoto
 
Introduction of cloud native CI/CD on kubernetes
Introduction of cloud native CI/CD on kubernetesIntroduction of cloud native CI/CD on kubernetes
Introduction of cloud native CI/CD on kubernetesKyohei Mizumoto
 
Deploy Mattermost on AKS
Deploy Mattermost on AKSDeploy Mattermost on AKS
Deploy Mattermost on AKSKyohei Mizumoto
 
Running k3s on raspberry pi
Running k3s on raspberry piRunning k3s on raspberry pi
Running k3s on raspberry piKyohei Mizumoto
 
Kubernetes logging introduction
Kubernetes logging introductionKubernetes logging introduction
Kubernetes logging introductionKyohei Mizumoto
 
Multi cluster management with rancher
Multi cluster management with rancherMulti cluster management with rancher
Multi cluster management with rancherKyohei Mizumoto
 

Mais de Kyohei Mizumoto (9)

Introduction to telepresence
Introduction to telepresenceIntroduction to telepresence
Introduction to telepresence
 
Windowsコンテナ入門
Windowsコンテナ入門Windowsコンテナ入門
Windowsコンテナ入門
 
Introduction of cloud native CI/CD on kubernetes
Introduction of cloud native CI/CD on kubernetesIntroduction of cloud native CI/CD on kubernetes
Introduction of cloud native CI/CD on kubernetes
 
Deploy Mattermost on AKS
Deploy Mattermost on AKSDeploy Mattermost on AKS
Deploy Mattermost on AKS
 
Recap of de code 2019
Recap of de code 2019Recap of de code 2019
Recap of de code 2019
 
Running k3s on raspberry pi
Running k3s on raspberry piRunning k3s on raspberry pi
Running k3s on raspberry pi
 
Kubernetes logging introduction
Kubernetes logging introductionKubernetes logging introduction
Kubernetes logging introduction
 
Git入門
Git入門Git入門
Git入門
 
Multi cluster management with rancher
Multi cluster management with rancherMulti cluster management with rancher
Multi cluster management with rancher
 

Último

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Istio service mesh introduction

  • 1. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 1/58 Istio Service Mesh Introduction 1 / 58
  • 2. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 2/58 Kyohei Mizumoto(@kyohmizu) C# Software Engineer Interests Docker/Kubernetes Go Security whoami 2 / 58
  • 3. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 3/58 Required Basic knowledge of Kubernetes Targets People who: don't know Service Mesh have never used Istio 3 / 58
  • 4. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 4/58 Contents 1. What is Service Mesh? 2. What is Istio? 3. Setup using Istio on GKE 4. Traffic Management 4 / 58
  • 5. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 5/58 What is Service Mesh? 5 / 58
  • 6. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 6/58 Microservices? Loosely coupled Independently deployable Organized around business capabilities Implemented using different programming languages Continuous delivery/deployment of large, complex applications 6 / 58
  • 7. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 7/58 Service Mesh? Describe the network of microservices that make up applications and the interactions between them Service Discovery Load Balancing Failure Recovery Metrics and Monitoring 7 / 58
  • 8. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 8/58 Service Mesh? More complex operational requirements A/B Testing Canary Rollouts Rate Limiting Access Control End-to-end Authentication 8 / 58
  • 9. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 9/58 What is Istio? 9 / 58
  • 10. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 10/58 Open source independent service mesh Deployed as sidecars in the Pods CNCF hosted project(Envoy) Istio 10 / 58
  • 11. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 11/58 Istio Connect, secure, control, and observe services 11 / 58
  • 12. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 12/58 Architecture 12 / 58
  • 13. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 13/58 Architecture Data plane Envoy Control plane Mixer Pilot Citadel Galley 13 / 58
  • 14. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 14/58 Deployed as a sidecar in the Kubernetes Pod Add to an existing deployment with no need to rearchitect or rewrite code Envoy A high-performance proxy developed in C++ 14 / 58
  • 15. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 15/58 Envoy Features Dynamic Service Discovery Load Balancing TLS Termination HTTP/2 and gRPC proxies 15 / 58
  • 16. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 16/58 Envoy Circuit Breakers Health Checks Staged Rollouts with %-based Traffic Split Fault Injection Rich Metrics 16 / 58
  • 17. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 17/58 Mixer Responsible for providing policy controls and telemetry collection Enforces access control and usage policies across the service mesh Collects telemetry data from the Envoy proxy and other services Includes a flexible plugin model 17 / 58
  • 18. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 18/58 Mixer 18 / 58
  • 19. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 19/58 Pilot Provides service discovery for: Envoy sidecars Traffic management capabilities for intelligent routing (e.g. A/B Tests, Canary Rollouts) Resiliency (e.g. Timeouts, Retries, Circuit Breakers) 19 / 58
  • 20. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 20/58 Pilot 20 / 58
  • 21. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 21/58 Citadel Strong service-to-service/end-user authentication with built-in identity and credential management Galley Istio’s configuration validation, ingestion, processing and distribution component 21 / 58
  • 22. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 22/58 Setup using Istio on GKE 22 / 58
  • 23. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 23/58 Set IAM Set the default compute service account to include: roles/container.admin (Kubernetes Engine Admin) Editor (on by default) 23 / 58
  • 24. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 24/58 Set IAM 24 / 58
  • 25. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 25/58 Create a Cluster Need 4 nodes Check "Enable Istio (beta)" on Advanced options 25 / 58
  • 26. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 26/58 Istio Resources $ kubectl get svc -n istio-system or $ kubectl get po -n istio-system 26 / 58
  • 27. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 27/58 Install Istio 1. Go to the Istio release page to download the installation file 2. Extract the downloaded installation file 3. Change directory to the root of the Istio installation 4. Add the istioctl client to the PATH: $ export PATH=$PWD/bin:$PATH 27 / 58
  • 28. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 28/58 Sample Application 28 / 58
  • 29. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 29/58 Bookinfo Ratings Details Ruby Product page Reviews-v3 Reviews-v2 Reviews-v1 Requests 29 / 58
  • 30. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 30/58 Bookinfo 4 separate microservices: Productpage Details Reviews Ratings 30 / 58
  • 31. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 31/58 Bookinfo 3 versions of the Reviews microservice: Version v1 doesn’t call the ratings service Version v2 calls the ratings service, and displays black stars Version v3 calls the ratings service, and displays red stars 31 / 58
  • 32. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 32/58 Deploy Enable automatic sidecar injection: $ kubectl label namespace default istio-injection=enabled Deploy the application using kubectl: $ kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml 32 / 58
  • 33. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 33/58 Resources Confirm all services and pods are running: $ kubectl get po,svc 33 / 58
  • 34. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 34/58 Define Ingress Gateway $ kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml $ kubectl get gateway NAME AGE bookinfo-gateway 17s 34 / 58
  • 35. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 35/58 Control Ingress Traffic 35 / 58
  • 36. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 36/58 Httpbin HTTP testing service that can be used for experimenting with all kinds of Istio features $ kubectl apply -f samples/httpbin/httpbin.yaml 36 / 58
  • 37. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 37/58 Set variables Set the ingress IP and ports: $ export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}') $ export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}') $ export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}') 37 / 58
  • 38. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 38/58 Create an Istio Gateway kubectl apply -f - <<EOF apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: httpbin-gateway spec: selector: istio: ingressgateway # use Istio default gateway implementation servers: - port: number: 80 name: http protocol: HTTP hosts: - "*" EOF 38 / 58
  • 39. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 39/58 Configure routes kubectl apply -f - <<EOF apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: httpbin spec: hosts: - "*" gateways: - httpbin-gateway http: - match: - uri: prefix: /headers route: - destination: port: number: 8000 host: httpbin EOF 39 / 58
  • 40. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 40/58 Virtual Service Contains the route rules that Allows traffic for path /headers All other external requests will be rejected $ export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT $ $ curl -I http://$GATEWAY_URL/headers HTTP/1.1 200 OK ... $ $ curl -I http://$GATEWAY_URL/status HTTP/1.1 404 Not Found ... 40 / 58
  • 41. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 41/58 Bookinfo Web Page http://$GATEWAY_URL/productpage 41 / 58
  • 42. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 42/58 Bookinfo Web Page If you refresh the page several times, you should see different versions of reviews shown in productpage, presented in a round robin style red stars black stars no stars since we haven’t yet used Istio to control the version routing. 42 / 58
  • 43. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 43/58 Apply default destination rules Create default destination rules for the Bookinfo services: $ kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml Display the destination rules: $ kubectl get destinationrules -o yaml 43 / 58
  • 44. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 44/58 Traffic Management 44 / 58
  • 45. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 45/58 Request routing Introduces the concept of a service version: Versions (v1, v2) Environment (staging, prod) Choose service version dynamically based on the routing rules that specified by using Pilot 45 / 58
  • 46. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 46/58 Request routing 46 / 58
  • 47. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 47/58 Request routing Route to v1: $ kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml Display the defined routes: $ kubectl get virtualservices -o yaml 47 / 58
  • 48. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 48/58 Discovery and load balancing HTTP traffic is automatically re-routed through Envoy 3 load balancing modes: Round robin Random Weighted least request Checks the health of each instance 48 / 58
  • 49. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 49/58 Discovery and load balancing 49 / 58
  • 50. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 50/58 Discovery and load balancing Apply weight-based routing: Transfer 50% of the traffic from reviews:v1 to reviews:v3 $ kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-50-v3.yaml Route based on user identity: $ kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml 50 / 58
  • 51. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 51/58 Handling failures Timeouts Bounded retries with timeout budgets and variable jitter between retries Limits on number of concurrent connections and requests to upstream services Active (periodic) health checks on each member of the load balancing pool Fine-grained circuit breakers (passive health checks) 51 / 58
  • 52. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 52/58 Fault injection Test the end-to-end failure recovery capability Protocol-specific fault injection into the network instead of deleting pods/ delaying/ corrupting packets 2 types of faults Delays: Timing failures (Increased network latency/ Overloaded upstream service) Aborts: Crash failures (HTTP error codes/ TCP connection failures) 52 / 58
  • 53. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 53/58 Canary rollout Introduce a new version of a service by first testing it using a small percentage of user traffic. Kubernetes provides features that support canary rollout: Uses instance scaling to manage the traffic distribution Only supports a simple (random percentage) canary rollout 53 / 58
  • 54. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 54/58 Canary rollout With Istio: The number of pods are orthogonal to the control of version traffic routing Control fine grain traffic percentages (e.g. route 1% of traffic without requiring 100 pods) Control traffic using other criteria (e.g. route traffic for specific users) 54 / 58
  • 55. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 55/58 Books 55 / 58
  • 56. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 56/58 Links Microservice Architecture https://microservices.io/index.html Istio.io https://istio.io/ Istio Solutions | Google Cloud https://cloud.google.com/istio/ Istioサービスメッシュ⼊⾨ https://www.slideshare.net/yokawasa/istio-114360124 56 / 58
  • 57. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 57/58 Links Installing Istio on GKE https://cloud.google.com/istio/docs/istio-on-gke/installing Install Istio on the Google Kubernetes Engine https://istio.io/docs/setup/kubernetes/install/platform/gke/ Bookinfo Application https://istio.io/docs/examples/bookinfo/ 57 / 58
  • 58. 2019/4/4 Istio Service Mesh Introduction 127.0.0.1:5500/#54 58/58 Thank You! 58 / 58