En esta publicación, hemos reunido consejos y trucos que vale la pena explorar antes de migrar sus aplicaciones a OpenShift Service Mesh (OSSM). Si nunca antes ha encontrado Service Mesh, puede comenzar echando un vistazo a la página de OSSM en el sitio web de Red Hat y leyendo sobre cómo se implementa Istio en la plataforma OpenShift .
Cuando empiece a explorar Istio, lo más probable es que se encuentre con la aplicación bookinfo , que se utiliza casi universalmente como ayuda visual, o la versión más avanzada de la aplicación Agencia de viajes . Al analizar estos y otros ejemplos, puede comprender mejor cómo funciona la malla y luego transferir sus aplicaciones a ella.
Lo primero es lo primero
Vale la pena comenzar con la documentaciĂłn oficial de OpenShift Service Mesh 2.0 (OSSM) , que contiene una tonelada de materiales Ăştiles, que incluyen:
Describe las diferencias entre OSSM y el proyecto principal de cĂłdigo abierto de Istio.
DescripciĂłn de cĂłmo instalar OSSM y
Pruébelo con la aplicación de muestra bookinfo .
Istio v1.6 ( versiones archivadas ).
Kiali v1.24 ( versiones archivadas ).
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, . , , .