Neste post, reunimos dicas e truques que vale a pena explorar antes de migrar seus aplicativos para o OpenShift Service Mesh (OSSM). Se vocĂȘ nunca encontrou o Service Mesh antes, pode começar dando uma olhada na pĂĄgina OSSM no site da Red Hat e lendo sobre como o Istio Ă© implementado na plataforma OpenShift .
Quando vocĂȘ começar a explorar o Istio, provavelmente encontrarĂĄ o aplicativo bookinfo , que Ă© quase universalmente usado como um auxĂlio visual, ou a versĂŁo mais avançada do aplicativo AgĂȘncia de viagens . Ao analisar esses e outros exemplos, vocĂȘ pode entender melhor como a malha-malha funciona e, em seguida, transferir seus aplicativos para ela.
Primeiras coisas primeiro
Vale a pena começar com a documentação oficial do OpenShift Service Mesh 2.0 (OSSM) , que contĂ©m uma tonelada de materiais Ășteis, incluindo:
Descreve as diferenças entre o OSSM e o projeto pai de código aberto do Istio.
Descrição de como instalar o OSSM e
Teste-o com o aplicativo de amostra bookinfo .
Istio v1.6 ( versÔes arquivadas ).
Kiali v1.24 ( versÔes arquivadas ).
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, . , , .