当前位置:网站首页>10 exemples les plus courants de gestion du trafic istio, que savez - vous?
10 exemples les plus courants de gestion du trafic istio, que savez - vous?
2022-07-06 04:04:00 【Wanmao Academy】
10 - Oui. Istio Gestion du trafic Les exemples les plus courants,Il est fortement recommandé queCollectionLève - toi.,En cas de besoin.
Pour faciliter la compréhension,ParIstioOfficially providedBookinfoExemple d'application,Exportation Istio Exemples courants de gestion du trafic.
BookinfoLe schéma appliqué est le suivant::

Parmi eux,Contient quatre microservices distincts:
productpage:AppelezdetailsEtreviewsDeux services,Utilisé pour générer des pages.details:Contient des informations sur le livre.reviews:Contient des commentaires sur les livres.Il appelle aussi ratings Microservices.rating:Contient des informations sur la notation des livres.
Parmi eux,reviews Services disponibles 3 Versions:
- v1 La version n'appelle pas
ratingsServices. - v2 La version appelle
ratingsServices,Et utiliser 1 À 5 - Oui.NoirIcône stellaire pour afficher les informations de notation. - v3 La version appelle
ratingsServices,Et utiliser 1 À 5 - Oui.RougeIcône stellaire pour afficher les informations de notation.
Transfert de trafic
Objectifs1:Prends ça.
reviewsTout le trafic du service est acheminé vers v1Version.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- labels:
version: v1
name: v1
- labels:
version: v2
name: v2
- labels:
version: v3
name: v3
Objectifs2:Prends ça.
reviewsServices50% Transfert de trafic vers v3Version.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v1
weight: 50
- destination:
host: reviews
subset: v3
weight: 50
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- labels:
version: v1
name: v1
- labels:
version: v2
name: v2
- labels:
version: v3
name: v3
Objectifs3:Prends ça.
reviewsTout le trafic du service est acheminé vers v3Version.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v3
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- labels:
version: v1
name: v1
- labels:
version: v2
name: v2
- labels:
version: v3
name: v3
Routage basé sur l'identité de l'utilisateur
Objectifs:Du nom OneMore Tout le trafic des utilisateurs est acheminé vers v2Version, Tout le trafic est acheminé vers v1Version.
Istio Il n'y a pas de mécanisme spécial intégré pour l'identité de l'utilisateur. Dans l'exemple d'application ,productpageLe service est disponible dans tous les reviews Services HTTP Une personnalisation a été ajoutée à la demande end-user En - tête de la demande, Sa valeur est le nom d'utilisateur .
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: OneMore
route:
- destination:
host: reviews
subset: v2
- route:
- destination:
host: reviews
subset: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- labels:
version: v1
name: v1
- labels:
version: v2
name: v2
- labels:
version: v3
name: v3
Injection HTTP Défaut de retard
Objectifs:Utilisateurs OneMore Au moment de la visite,
ratingsLe Service injecte un 2 Délai de quelques secondes,productpageLa page est à environ 2 Le chargement des secondes est terminé sans erreur .
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: ratings
spec:
hosts:
- ratings
http:
- match:
- headers:
end-user:
exact: OneMore
fault:
delay:
percentage:
value: 100.0
fixedDelay: 2s
route:
- destination:
host: ratings
subset: v1
- route:
- destination:
host: ratings
subset: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: ratings
spec:
host: ratings
subsets:
- labels:
version: v1
name: v1
Injection HTTP Interrompre la faute
Objectifs:Utilisateurs OneMore Au moment de la visite,
ratingsLe Service injecte un 503 Échec de l'interruption de ,productpageLa page peut être chargée immédiatement ,Affichage simultané “Ratings service is currently unavailable” De telles nouvelles.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: ratings
spec:
hosts:
- ratings
http:
- fault:
abort:
httpStatus: 503
percentage:
value: 100
match:
- headers:
end-user:
exact: OneMore
route:
- destination:
host: ratings
subset: v1
- route:
- destination:
host: ratings
subset: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: ratings
spec:
host: ratings
subsets:
- labels:
version: v1
name: v1
Définir le délai de demande
Tout d'abord,,Utilisateurs OneMore Au moment de la visite, ratings Le Service injecte un 2 Délai de quelques secondes,productpage La page est à environ 2 Le chargement des secondes est terminé sans erreur .
Comme indiqué ci - dessusInjection HTTP Défaut de retard Exécution des opérations,Plus de détails..
Objectifs:Utilisateurs OneMore Au moment de la visite,
reviewsLe délai de demande pour le service est fixé à 1 Secondes,Affichage simultané “Sorry, product reviews are currently unavailable for this book.” De telles nouvelles.
kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: OneMore
route:
- destination:
host: reviews
subset: v2
timeout: 1s
- route:
- destination:
host: reviews
subset: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- labels:
version: v1
name: v1
- labels:
version: v2
name: v2
- labels:
version: v3
name: v3
InJaeger Vous pouvez voir les chaînes d'appels spécifiques ci - dessous :

Set request retry
Tout d'abord,,Utilisateurs OneMore Au moment de la visite, ratings Le Service injecte un 2 Délai de quelques secondes,productpage La page est à environ 2 Le chargement des secondes est terminé sans erreur .
Comme indiqué ci - dessusInjection HTTP Défaut de retard Exécution des opérations,Plus de détails..
Objectifs:Utilisateurs OneMore Au moment de la visite,
reviewsLe nombre de demandes de service réessayées est 2Une fois, Le délai de retry est 0.5 Secondes,Affichage simultané “Sorry, product reviews are currently unavailable for this book.” Un tel message d'erreur .
kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: OneMore
route:
- destination:
host: reviews
subset: v2
retries:
attempts: 2
perTryTimeout: 0.5s
- route:
- destination:
host: reviews
subset: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- labels:
version: v1
name: v1
- labels:
version: v2
name: v2
- labels:
version: v3
name: v3
Rejeter la cible IPDemandes
Objectifs:Sauf queIPPour
10.201.240.131Les clients de/api/v1/products/1, D'autres clients ont refusé la demande .
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: deny-by-ip
spec:
selector:
matchLabels:
app: productpage
action: DENY
rules:
- to:
- operation:
paths: ["/api/v1/products/1"]
when:
- key: remote.ip
notValues: ["10.201.240.131"]
Fusible
Objectifs:Paramètres
detailsLa concurrence maximale pour les services est de 1.
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: details
spec:
host: details
trafficPolicy:
connectionPool:
tcp:
maxConnections: 1
http:
http1MaxPendingRequests: 1
maxRequestsPerConnection: 1
Peut être utilisé Fortio Effectuer un essai de charge,Le nombre de transmissions simultanées est 2 Connexion à(-c 2),Demande 20 Une fois(-n 20):
kubectl exec fortio-deploy-684b6b47f8-tzsg8 -c fortio -- /usr/bin/fortio load -c 3 -qps 0 -n 20 -loglevel Warning http://details:9080/details/0
Parmi eux,fortio-deploy-684b6b47f8-tzsg8- Oui.FortioDePodNom,Les effets sont les suivants:

Miroir de flux
Objectifs: Acheminer tout le trafic vers reviewsServices v2 Version, Et miroir tout le trafic à v3 Version.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v2
mirror:
host: reviews
subset: v3
mirrorPercentage:
value: 100.0
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- labels:
version: v1
name: v1
- labels:
version: v2
name: v2
- labels:
version: v3
name: v3
Exécutez la commande suivante pour voirreviewsServices v3 Version Envoy Journal d'accès:
kubectl logs -l app=reviews,version=v3 -c istio-proxy
Je vois.reviewsServices v3 Version du Journal appelée :
{
"authority": "reviews-shadow:9080",
"bytes_received": 0,
"bytes_sent": 375,
"connection_termination_details": null,
"downstream_local_address": "10.1.1.64:9080",
"downstream_remote_address": "10.1.1.59:0",
"duration": 1914,
"method": "GET",
"path": "/reviews/0",
"protocol": "HTTP/1.1",
"request_id": "b79cefe6-1277-9c39-b398-f94a704840cc",
"requested_server_name": "outbound_.9080_.v3_.reviews.default.svc.cluster.local",
"response_code": 200,
"response_code_details": "via_upstream",
"response_flags": "-",
"route_name": "default",
"start_time": "2022-06-27T07:34:19.129Z",
"upstream_cluster": "inbound|9080||",
"upstream_host": "10.1.1.64:9080",
"upstream_local_address": "127.0.0.6:59837",
"upstream_service_time": "1913",
"upstream_transport_failure_reason": null,
"user_agent": "curl/7.79.1",
"x_forwarded_for": "10.1.1.59"
}
IngressLe routage de
Objectifs:En - tête de la demande
app-idPourdetailsTout le trafic est acheminé versdetailsEn service.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
spec:
hosts:
- '*'
gateways:
- bookinfo-gateway
http:
- match:
- uri:
exact: /productpage
- uri:
prefix: /static
- uri:
exact: /login
- uri:
exact: /logout
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
- match:
- headers:
app-id:
exact: details
route:
- destination:
host: details
port:
number: 9080
UtilisercurlVérifiez les commandes.:
curl -H "app-id: details" -v http://127.0.0.1/details/2
Les résultats sont les suivants:
* Trying 127.0.0.1:80...
* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
> GET /details/2 HTTP/1.1
> Host: 127.0.0.1
> User-Agent: curl/7.79.1
> Accept: */*
> app-id: details
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< content-type: application/json
< server: istio-envoy
< date: Tue, 28 Jun 2022 07:14:40 GMT
< content-length: 178
< x-envoy-upstream-service-time: 4
<
{"id":2,"author":"William Shakespeare","year":1595,"type":"paperback","pages":200,"publisher":"PublisherA","language":"English","ISBN-10":"1234567890","ISBN-13":"123-1234567890"}
* Connection #0 to host 127.0.0.1 left intact
Retour aux résultats comme vous pouvez le voir ,Visited bydetailsServices.
Enfin,Merci d'être si beau,Rends - le - moi.- Oui..
边栏推荐
- 2.13 weekly report
- Differential GPS RTK thousand search
- Custom event of C (31)
- Web components series (VII) -- life cycle of custom components
- 【PSO】基于PSO粒子群优化的物料点货物运输成本最低值计算matlab仿真,包括运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
- 脚本生命周期
- MySql數據庫root賬戶無法遠程登陸解决辦法
- STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
- Codeforces Round #770 (Div. 2) B. Fortune Telling
- [Massey] Massey font format and typesetting requirements
猜你喜欢
![[disassembly] a visual air fryer. By the way, analyze the internal circuit](/img/73/29553d60f47deadfff420be40b7f77.jpg)
[disassembly] a visual air fryer. By the way, analyze the internal circuit

Facebook等大廠超十億用戶數據遭泄露,早該關注DID了

Class A, B, C networks and subnet masks in IPv4

Record the pit of NETCORE's memory surge
![[Key shake elimination] development of key shake elimination module based on FPGA](/img/47/c3833c077ad89d4906e425ced945bb.png)
[Key shake elimination] development of key shake elimination module based on FPGA

简易博客系统

Ks003 mall system based on JSP and Servlet

【按键消抖】基于FPGA的按键消抖模块开发

MySQL master-slave replication

Ethernet port &arm & MOS &push-pull open drain &up and down &high and low sides &time domain and frequency domain Fourier
随机推荐
[analysis of variance] single factor analysis and multi factor analysis
Global and Chinese markets for endoscopic drying storage cabinets 2022-2028: Research Report on technology, participants, trends, market size and share
Detailed explanation of serialization and deserialization
lora网关以太网传输
[Massey] Massey font format and typesetting requirements
Facebook and other large companies have leaked more than one billion user data, and it is time to pay attention to did
Determine which week of the month the day is
Stc8h development (XII): I2C drive AT24C08, at24c32 series EEPROM storage
Fundamentals of SQL database operation
Développement d'un module d'élimination des bavardages à clé basé sur la FPGA
【按键消抖】基于FPGA的按键消抖模块开发
判断当天是当月的第几周
How does technology have the ability to solve problems perfectly
[optimization model] Monte Carlo method of optimization calculation
Global and Chinese market of rubber wheel wedges 2022-2028: Research Report on technology, participants, trends, market size and share
Unity中几个重要类
C#(二十七)之C#窗体应用
综合能力测评系统
Introduction to data types in MySQL
Yyds dry goods inventory web components series (VII) -- life cycle of custom components