Dans cet article, nous avons rassemblé des trucs et astuces à explorer avant de migrer vos applications vers OpenShift Service Mesh (OSSM). Si vous n'avez jamais rencontré Service Mesh auparavant, vous pouvez commencer par consulter la page OSSM sur le site Web de Red Hat et découvrir comment Istio est implémenté sur la plate-forme OpenShift .
Lorsque vous commencez à explorer Istio, vous rencontrerez probablement l'application bookinfo , qui est presque universellement utilisée comme aide visuelle, ou la version plus avancée de l'application Agence de voyages . En analysant ces exemples et d'autres, vous pouvez mieux comprendre le fonctionnement du maillage, puis y transférer vos applications.
Tout d'abord
Cela vaut la peine de commencer par la documentation officielle d'OpenShift Service Mesh 2.0 (OSSM) , qui contient une tonne de matériaux utiles, notamment:
Décrit les différences entre OSSM et le projet open source Istio parent.
Description de la façon d' installer OSSM et
Testez-le avec l' exemple d'application bookinfo .
Istio v1.6 ( versions archivées ).
Kiali v1.24 ( versions archivées ).
Jaeger 1.20 .
mesh-, Istio. release notes , Red Hat OSSM.
, mesh- - Bookinfo. , .
, mesh- â , sidecarâ Envoy podâ . OSSM .
, , ingress- Bookinfo, , OpenShift, .
, Istio , . , Protocol Selection app and version labels Pods and Services.
. , sidecarâ Istio, Kiali. , (. ). ? Kiali Istio , , TCP, HTTP.

Istio , . Istio , (plain) TCP. - , Kubernetes Service . , Protocol Selection.
, , Kubernetes Service. spec -> ports -> name. "name: http" A, B C, HTTP.
Kiali
Kiali â , OpenShift Service Mesh. , , mesh-.
Kiali , Istio, , mesh-. Kiali.
Kiali , , mesh-. Istio , Kiali .
Kiali , FAQ. , :
sidecarâ
Kiali
â (label). Istio, Kiali, , , , - Bookinfo, « ».
app version â , , Istio Kiali Jaeger.
Istio , . , . , .
Kiali â , mesh-, , .
Kiali . , , .
Jaeger-
mesh- , , , 50%, , 100%, , . Jaeger Kiali , .
, , sample rate 100% ( : 10000 = 100%).
ServiceMeshControlPlane ( basic-install) Control Plane ( istio-system) :
spec:
tracing:
sampling: 10000 # 100%
, .
Jaeger , , (trace headers).
, ( ) mesh-. OSSM spanâ (trace). , . , span â (, «-»). â , , mesh-, , , , . â â OSSM.
, OSSM spanâ ( ) Istio, â . (distributed traces) , , trace- . , . , Envoy-, ( ingress-).
:
x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context
Jaeger, OpenTracing API.
trace- Java:
HttpHeaders upstreamHttpHeaders = new HttpHeaders();
if (downstreamHttpHeaders.getHeader(headerName: "x-request-id") != null)
upstreamHttpHeaders.set("x-request-id", downstreamHttpHeaders.getHeader( headerName: "x-request-id"));
: .
Kiali YAML
yaml- â , yaml , . , Kiali , .
Istio- Kiali-
, , Kiali, Services.
YAML-
Kiali YAML Istio , .
, Kiali ( ) . , Kiali . , , , . , "node=unknown" Kiali.
/ ( ) TLS , mesh- HTTP . Envoy-.
TLS, Istio Kiali TCP.
, HTTP, HTTPS.
mesh- (. « »).
.
Service Mesh , , - . , :
, HTTPS-.
.
.
, mesh- . , -. :
sidecarâ Envoy ( podâ).
sidecarâ sidecarâ Envoy, podâ .
, sidecarâ, , . , , , . .
â () , , mesh-.
Service
, Kubernetes Service, OpenShift Routes.
, OpenShift Routes ( ingress ) . mesh-, / , OpenShift Route Kubernetes Service.
(fallback)
, , -. Envoy- , , , . (fallback), , , Envoy- .
Envoy- , , mesh-.
, mesh-. mesh- , , ? . Service Mesh .
OSSM. , Istio Kiali, TLS origination egress-.
Istio, :
( , Mutual TLS).
.
Circuit breakerâ.
.
OpenShift Service Mesh , mesh-, , , , . OpenShift, , . â , , , , A/B- .. , OpenShift, . , , .