In diesem Beitrag haben wir Tipps und Tricks zusammengestellt, die es wert sind, untersucht zu werden, bevor Sie Ihre Apps auf das OpenShift Service Mesh (OSSM) migrieren. Wenn Sie noch nie auf Service Mesh gestoĂen sind, können Sie zunĂ€chst auf der OSSM-Seite auf der Red Hat-Website nachlesen, wie Istio auf der OpenShift-Plattform implementiert ist .
Wenn Sie anfangen, Istio zu erkunden, werden Sie höchstwahrscheinlich auf die Bookinfo- Anwendung stoĂen , die fast ĂŒberall als visuelle Hilfe verwendet wird, oder auf die fortgeschrittenere Version der ReisebĂŒro- Anwendung . Wenn Sie diese und andere Beispiele analysieren, können Sie besser verstehen, wie das Mesh-Mesh funktioniert, und dann Ihre Anwendungen darauf ĂŒbertragen.
Das wichtigste zuerst
Es lohnt sich, mit der offiziellen Dokumentation zu OpenShift Service Mesh 2.0 (OSSM) zu beginnen , die eine Menge nĂŒtzlicher Materialien enthĂ€lt, darunter:
Beschreibt die Unterschiede zwischen OSSM und dem ĂŒbergeordneten Istio Open Source-Projekt.
Beschreibung der Installation von OSSM und
Testen Sie es mit der Beispielanwendung bookinfo .
Istio v1.6 ( archivierte Versionen ).
Kiali v1.24 ( archivierte Versionen ).
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. , :
â (label). Istio, Kiali, , , , - Bookinfo, « ».
app version â , , Istio Kiali Jaeger.
Kiali â , mesh-, , .
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
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- . , -. :
â () , , 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, . , , .