Dalam posting ini, kami telah mengumpulkan tip dan trik yang perlu ditelusuri sebelum memigrasi aplikasi Anda ke OpenShift Service Mesh (OSSM). Jika Anda belum pernah menemukan Service Mesh sebelumnya, Anda dapat memulai dengan melihat halaman OSSM di situs Red Hat dan membaca tentang bagaimana Istio diimplementasikan pada platform OpenShift .
Saat Anda mulai menjelajahi Istio, kemungkinan besar Anda akan menemukan aplikasi bookinfo , yang hampir secara universal digunakan sebagai alat bantu visual, atau versi yang lebih canggih dari aplikasi Agen Perjalanan . Dengan menganalisis ini dan contoh lainnya, Anda dapat lebih memahami cara kerja mesh-mesh, lalu mentransfer aplikasi Anda ke sana.
Hal pertama yang pertama
Ada baiknya memulai dengan dokumentasi resmi untuk OpenShift Service Mesh 2.0 (OSSM) , yang berisi banyak materi berguna, termasuk:
Menjelaskan perbedaan antara OSSM dan proyek sumber terbuka Istio induk.
Deskripsi tentang cara menginstal OSSM dan
Uji dengan aplikasi contoh bookinfo .
Istio v1.6 ( versi yang diarsipkan ).
Kiali v1.24 ( versi yang diarsipkan ).
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, . , , .