ืืืฉืจ ืื ื ืขืืืจืื ืืืืฉืื ืืื ืืืืื ืืืจืืืืงืืืจืช ืฉืืจืืชื ืืืงืจื, ืื ื ืขืืืืื ืืคื ื ืืชืืจืื ืืืฉืื.
ืืืืฉืื ืืื ืืืืื, ืืืจื ืืื ืื ืงื ืืงืืืข ืืืืื ืืืง ืฉื ืืืขืจืืช ืืชืจืืฉื ืืฉืืืื. ืกืืืจ ืืื ืื ืฉืืืขืื ืืื ืืงืื ืฉื ืืืื ืืืื ืขืฆืื, ืื ืืืกื ืื ืชืื ืื. ืืื ืืฉืื ืื ื ืืชืืืืื ืืืคืฉ ืืขืื ืืืจืืืืงืืืจืช ืืืงืจื-ืฉืืจืืชืื, ืืื ืืืจ ืื ืื ืื ืืจืืจ. ืขืืื ื ืืืฆืื ืืช ืื ืื ืชืื ืฉืืืงืฉื ืืงืื ืืชืืืืชื ืืขื ืกืืคื ืืืืืืจ ืืืชื ืืชืื ืืืืช ืฉืืจืืชื ืืืงืจื. ืืชืจื ืืื, ืืจืืื ืืื ืืฉ ืื ืืชืงื ื ืืืกืื ืืฉืืื, ืฉืขืืืืื ืืืจืื ืื ืืืขืืืืช ืืืืืืช, ืืื ืื ืืืขืืืช ืืืืฆืืขืื ืืืกืืืืืช ืืชืงืืืช.
ืืืคืฉืชื ืืจืื ืืื ืืืจ ืืื ืฉืืขืืืจ ืืืชืืืื ืขื ืืขืืืช ืืืื (ืืชืืชื ืขื ืื ื-Habrรฉ:
ืืขืงื ืืืืืจ ืืื ืคืชืจืื ื ืคืืฅ ืืืขืื ืฉื ืืฆืืืช ืฉืืืืืช ืืืขืจืืืช ืืืืืจืืช. ืืื ืื ืื ืืืืฉื ืืื ืืืืกืืฃ ืืืืข ืขื ืืื ืืจืืงืฆืืืช ืจืฉืช ืขืืืื ืื ืืืืืขื ืืืขืจืืช, ืื, ืืจืืข ืืื, ืืืืง ืืืืขืจืืช ืืื ืืืจ ืขืืืืช ืืื ืฉืฆืจืื, ืืื ืืืืงื ืื, ืืืืืื ืฉืืื ืื ื ืืกืคื ืืฉืืจืืชืื ืืฉื ืื ? ืืื ืืงืืืข ืืช ืืกืืื ืืืืืืงืช ืืืขืื, ืืฉ ืฆืืจื ืืงืื ืชืืื ื ืืืื ืฉื ืืืชืจืืฉ ืืืขืจืืช. ืืฉืื ืืืืืื ืืืืื ืืืื ืฉืืจืืชื ืืืงืจื ืืขืืจืืื ืื ืชืืืื ืงืจืืืืื ืืขืกืงืื ืืจืืืืื.
ืืื ืืืืื ืืืื ืืขืืจืชื ื ืืืฉืช ืจืฉืช ืืฉืืจืืช, ืฉืชืขืกืืง ืืื ืืืืื ืืช ืืืืกืืฃ ืืืืข ืจืฉืช ืืจืื ื ืืืื ืืื ืฉืืฉืืจืืชืื ืขืฆืื ืืคืขืืืื. ืืืฉื ืื ืืืคืฉืจืช ืื ื ืืืืจื ืืช ืื ืืชื ืืขื ืืื ืชื ืืืชื ืชืื ืืื ืชื ืืขื. ืืชืจ ืขื ืื, ืืืฉืืืื ืืคืืื ืื ืฆืจืืืื ืืืขืช ืฉืื ืืืจ ืขื ืื.
ืืืฉืช ืจืฉืช ืฉืืจืืช
ืืจืขืืื ืืืจืืื ืฉื ืืืฉืช ื-service mesh ืืื ืืืกืคืช ืฉืืืช ืชืฉืชืืช ื ืืกืคืช ืขื ืืื ืืจืฉืช, ืฉืชืืคืฉืจ ืื ื ืืขืฉืืช ืื ืืืจ ืขื ืืื ืืจืืงืฆืื ืืื-ืฉืืจืืชืืช. ืจืื ืืืืืขืืช ืคืืขืืืช ืืืืคื ืืื: ืืื ืืืงืจื-ืฉืืจืืช ืืชืืืกืฃ ืงืื ืืืื ืจ ืฆืืื ื ืืกืฃ ืขื ืคืจืืงืกื ืฉืงืืฃ, ืฉืืจืื ืืืขืืจืช ืื ืืชืขืืืจื ืื ืื ืกืช ืืืืืฆืืช ืฉื ืืฉืืจืืช. ืืื ืืืงืื ืฉืื ืื ืื ื ืืืืืื ืืขืฉืืช ืืืืื ืืงืืืืช, ืืืืื ืืืื ืืืช ืืืืื, ืืืืื ืืืืืืช ืขื ืืกืคืจ ืืืงืฉืืช ืืืืกืืฃ ืืืืข ืืฉืื ืขื ืืืื ืืจืืงืฆืื ืฉื ืฉืืจืืชืื ืืืืฆืืจ.
ืคืชืจืื ืืช
ืืฉ ืืืจ ืืื ืืืฉืืืื ืฉื ืืืฉื ืื:
ืืชืืฆืื ืืื, ืืืงื ื ืืืืืง ืืืื ืืืืืืช ืื ืื ื ืฆืจืืืื ืืจืืข, ืืืืืื ื ืฉืืกืืื ืืขืืงืจืืช ืฉืืืืื ืืชืืื ื ืืืืฉื ืคืชืจืื ืืช ืืืื ืืื ืืืืืืช ืืืกืืฃ ืืืืข ืืขืงื ืืื ืืืขืจืืช ืืฉืงืืคืืช. ืจืฆืื ื ืื ืืงืื ืฉืืืื ืขื ืืืื ืืจืืงืฆืื ืฉื ืืฉืืจืืชืื ืืืขืฉืืช ืื ืืคืืืฆืืืช ืฉืื ืืช ืขื ืืืืชืจืืช ืฉืืืขืืจืืช ืืื ืฉืืจืืชืื.
ืืชืืฆืื ืืื, ืืืขื ื ืืืืืืชื ื:โ
ื ืืจืืฉ
ืืืืจืืช ืืขืืงืจืืืช ืฉื ืืคืชืจืื ืืืืฉ ืืื ืชืงืืจื ื ืืืื ืฉื ืืฉืืืื ืืืืฆืืขืื ืืืืืื. ืืื ืืืืคืืื ืื ืืขืืงืจืืื, ืจืฆืื ื ืืื ืืืืืช ืืกืืืืื ืืฉืืื ืืืืื ืืขืงื ืืฉืงืืคืืช ืืืขืจืืช Jaeger ืฉืื ื.
ืืืื, ืจืื ืคืชืจืื ืืช ืืขื ื ืืืืฉืืื ืืืืื ื. ืืืืืื, ืืฉ ืืื ืกืืืืช. ืืชืืืช ืืืฉืืื ืจืฉืช ืืืืื ื ืฉืขืืืืื ืืืืคื ืืกืื ืืจืื ื ืขื I/O ืืืชืืจืืื ืขื ืคื ื ืืืืืืช ืืคื ืืฆืืจื ื ืืื ืืื ืคืฉืืื. ืืื ืฉืืฉืื ืืืื, ืืืืฆืืขืื ืืกืคืืงืื ืืื ืืคืชืืจ ืืขืื ืื. ืืื ืืืจื ื ืื ืืืืื ื.
ืคืจืืืืงืืืืืืช
ืืืงืื ื ืืช ืืืืฆืื ื ืืืฉืืช ืคืจืืืืงืืืืืืช ืืจืืืช. ืขืืืจ ืคืชืจืื ืฉื ืคืจืก ืืฆื ืื ืืืคืข ืฉื ืืฉืืจืืช, ื ืืจืฉืช ืฆืจืืื ืงืื ื ืฉื ืืื RAM ื-CPU. ืืืืืื, ืื ืขืืืื ืืชืืืื ืฆืจืื ืืืืืช ืงืื.
ืืื ื ืจืื ืืืื ืชืืฆืืืช ืงืืืื ื.
RAM
Netramesh ืฆืืจืืช ~10Mb ืืื ืชืขืืืจื ืืืงืกืืืื 50Mb ืขื ืขืืืก ืฉื ืขื 10000 RPS ืืื ืืืคืข.
Proxy ืฉื Istio ืฆืืจื ืชืืื ~300Mb ืืืฉืืืืืช ืฉืื ื ืขื ืืืคื ืืืคืขืื. ืื ืื ืืืคืฉืจ ืืืชืืื ืืืชื ืืื ืืืฉืืื.
ืขื Netramesh ืงืืืื ื ืืคืืชื ืฉื ~10x ืืฆืจืืืช ืืืืืจืื.
CPU
ืืฉืืืืฉ ืืืขืื ืฉืืื ืืืกืืช ืชืืช ืขืืืก. ืื ืชืืื ืืืกืคืจ ืืืงืฉืืช ืืืืืืช ืืื ืืจืื ืืฆื. ืขืจืืื ื-3000 ืืงืฉืืช ืืฉื ืืื ืืฉืื:
ืืฉ ืขืื ื ืงืืื ืืืช ืืฉืืื: Netramesh - ืคืชืจืื ืืื ืืืฉืืจ ืืงืจื ืืืื ืขืืืก ืื ืืืื ืืื CPU. ืขื Istio, ืจืืื ืฆื ืชืืื ืืขืืื ืื ืืช ื ืงืืืืช ืืงืฆื ืฉื ืืฉืืจืืช. ืืชืืฆืื ืืื, ืื ื ืืืืืื ืืจืืืช ืชืืื ื ืื ืืื ืขืืืก:
ืื ื ืืฉืชืืฉืื ื-HTTP/1 ืืชืงืฉืืจืช ืืื ืฉืืจืืชืื. ืืืืืื ืืืื ืืชืืืื ืขืืืจ Istio ืืขืช ืืืฆืืข ืคืจืืงืกื ืืจื ืฉืืื ืืื ืขื 5-10ms, ืืื ืื ืืจืื ืขืืืจ ืฉืืจืืชืื ืฉืืืื ืื ืืืืื ืชืื ืืืคืืช ืฉื ืืื. ืขื Netramesh ืืืื ืืื ืืจื ื-0.5-2ms.
ืืืจืืืืช
ืืืืช ืืืฉืืืื ืืงืื ื ืื ืฆืจืืช ืขื ืืื ืื ืคืจืืงืกื ืืืคืฉืจืช ืืืงื ืืืชื ืืื ืื ืฉืืจืืช. Netramesh ื ืืฆืจ ืืืืื ื ืืื ืจืืื ืืืืก ืืงืจื ืืื ืคืฉืื ืืฉืืืจ ืขื ืื ืงืจืฉ ืฆื ืงื ืืฉืงื. ืืขืชืื ืงืจืืืืช ืืคืชืจืื ืืช ืจืฉืช ืฉืืจืืช, ืืืืก ืืืงืจื ืืคืืฅ ืืืืข ืขื ืืืืื ืฉืืจืืช ืืื ืงืจืื ืืช ืฆื. ืืื ืืืชื ืืืืข ืืืืข ืขื ืคืกืงื ืืื ืืืืืจืืช ืืืืื. ืื ืื ืืืคืฉืจ ืื ืืขืฉืืช ืืจืื ืืืจืื ืฉืืืืฉืืื, ืืื, ืืืจืื ืืฆืขืจ, ืืื ืื ืคื ืงืจืื ืืช ืฆื ืืืืื.
ืืืืื ืฉืืจืืช
Netramesh ืื ืืืกืืคื ืื ืื ืื ืื ื ืืกืคืื ืืืืืื ืฉืืจืืช. ืื ืืชืขืืืจื ืืืขืืจืช ืืฉืงืืคืืช ืืจื ื-netra sidecar.
Netramesh ืชืืื ืืคืจืืืืงืื ืืืฉืืื HTTP/1. ืืื ืืืืืืจ ืืืชื, ื ืขืฉื ืฉืืืืฉ ืืจืฉืืื ืื ืืชื ืช ืืืืืจื ืฉื ืืฆืืืืช. ืืืจื ืืื, ืืืขืจืืช ืืฉ ืืกืคืจ ืืฆืืืืช ืืจืื ืืชืจืืฉืช ืชืงืฉืืจืช HTTP. ืืืืืื, ืื ื ืืฉืชืืฉืื ื-80, 8890, 8080 ืืืื ืืจืืงืฆืื ืืื ืฉืืจืืชืื ืืืงืฉืืช ืืืฆืื ืืืช. ืืืงืจื ืื, ื ืืชื ืืืืืืจ ืืืชื ืืืืฆืขืืช ืืฉืชื ื ืกืืืื NETRA_HTTP_PORTS
.
ืื ืืชื ืืฉืชืืฉ ื-Kubernetes ืืืชืืืจ ืืืื ืื ืื ืืฉืืช ืืฉืืจืืช ืฉืื ืืชืงืฉืืจืช ืชืื-ืืฉืืืืืช ืืื ืฉืืจืืชืื, ืืื ืืื ืื ืื ืืืฉืืจ ืืืืืง ืืื. ืจืืฉืืช, ืืืืงืจื-ืฉืืจืืช ืืฉืื ืืชืืืช IP ืฉื ืฉืืจืืช ืืืืฆืขืืช kube-dns ืืคืืชื ืืืื ืืืืืจ ืืืฉ. ืืืืืจ ืื ื ืืฆืจ ืืจืืฉืื ื ืขื ื-netra-sidecar ืืืงืืื ืืื ืื ืืช ื-TCP ืืืืขืืช ืืชืืืื ื-netra. ืืืืจ ืืื, netra-sidecar ืืืฆืจ ืงืฉืจ ืขื ืืืขื ืืืงืืจื. NAT ืขื Pod IP ืขื ืืฆืืืช ื ืฉืืจ ืืืืืง ืืื ืืื Netra.
ืืขืงื ืืืืืจ ืืืขืืจืช ืืงืฉืจ
Netramesh ืืกืคืงืช ืืช ืืคืื ืงืฆืืื ืืืืช ืืืจืืฉื ืืฉืืืืช ืืืืื ืืขืงื ืขื ืืื ืืจืืงืฆืืืช HTTP. Netra-sidecar ืื ืชื ืืช ืคืจืืืืงืื ื-HTTP, ืืืื ืขืืืืืื ืืืงืฉืืช ืืืืืฅ ืืช ืืืืืข ืืืจืืฉ ืืืืชืจืืช HTTP. ืืกืืคื ืฉื ืืืจ, ืื ืื ื ืืงืืืื ืืช ืื ืืขืงืืืช ืืืขืจืืช ืืืืจ ืืืช. ืขืืืจ ืชืฆืืจื ืขืืื ื, ืืชื ืืืื ืื ืืืฉืชืืฉ ืืืฉืชื ื ืืกืืืื ืฉืกืืคืงื ืขื ืืื ืืกืคืจืืื ืืจืฉืืืช
ืืื ืืฉ ืืขืื. ืขื ืฉืืฉืืจืืชืื ืืืฆืจื ืืืฉืืื ืืืชืจืช uber ืืืืืืช, ืื ื ืจืื ืืืืื ืืขืงื ืืืืืจืื ืืืขืจืืช. ืืื ืื ืฉืื ืื ื ืฆืจืืืื ืืื ืืืฆืื ืืืืืจืืช ืืช ืืืืจื ืืืขืืืช. ืื ืืื ื-Netramesh ืืฉ ืคืชืจืื. ืคืจืืงืกื ืงืืจืืื ืืืชืจืืช HTTP, ืืื ืื ืืื ื ืืืืืื ืืช ืืืื ืืืขืงื ืฉื Uber, ืืืฆืจืื ืืืช. Netramesh ืื ืืืืกื ืช ืืืืข ืขื ืืงืฉืืช ื ืื ืกืืช ืืืืฆืืืช ื-sidecar ืืืชืืืื ืืืชื ืขื ืืื ืืขืฉืจืชื ืืืืชืจืืช ืืืงืฉืืช ืืืืฆืืืช ืื ืืืฆืืช. ืื ืื ืฉืืชื ืฆืจืื ืืขืฉืืช ืืฉืืจืืชืื ืืื ืืฉืืื ืืืชืจืช ืืืช ืืืื X-Request-Id
, ืฉื ืืชื ืืืืืืจ ืืืืฆืขืืช ืืฉืชื ื ืกืืืื NETRA_HTTP_REQUEST_ID_HEADER_NAME
. ืืื ืืฉืืื ืืืืื ืืืงืฉืจ ื-Netramesh, ืืชื ืืืื ืืืืืืจ ืืช ืืฉืชื ื ืืกืืืื ืืืืื: NETRA_TRACING_CONTEXT_EXPIRATION_MILLISECONDS
(ืืืื ืฉืขืืืจื ืืืฉืืจ ืืืงืฉืจ) ื NETRA_TRACING_CONTEXT_CLEANUP_INTERVAL
(ืชืืืจืืช ื ืืงืื ืืืงืฉืจ).
ืืคืฉืจ ืื ืืฉืื ืืกืคืจ ื ืชืืืื ืืืขืจืืช ืฉืื ืขื ืืื ืกืืืื ืฉืืื ืขื ืืกืืืื ืืคืขืื ืืืืื. Netra ืืืคืฉืจืช ืื ืืืชืงืื HTTP_HEADER_TAG_MAP
ืืื ืืืคืื ืืืชืจืืช HTTP ืืชืืืืช ืืืื ืืขืงื ืชืืืืืช. ืื ืืืื ืืืืืช ืฉืืืืฉื ืืืืืื ืืืืืงื. ืืืืจ ืฉืขืืืจืื ืืช ืืืืื ืืคืื ืงืฆืืื ืื, ื ืืชื ืืจืืืช ืืืื ืืืง ืืืขืจืืช ืืืฉืคืข ืืกืื ืื ืขื ืืื ืืคืชื ืืืคืขืื ืืืชืืื.
ืงืืืขืช ืืงืืจ ืืืงืฉื
ืืื ืืงืืืข ืืืืื ืืืืขื ืืืงืฉื, ืชืืื ืืืฉืชืืฉ ืืคืื ืงืฆืืื ืืืืช ืฉื ืืืกืคืช ืืืชืจืช ืืืืืืืืช ืขื ืืืงืืจ. ืฉืืืืฉ ืืืฉืชื ื ืกืืืื NETRA_HTTP_X_SOURCE_HEADER_NAME
ืืชื ืืืื ืืฆืืื ืฉื ืืืชืจืช ืฉืืืชืงื ืืืืืืืืช. ืขื ืืื ืฉืืืืฉ ื NETRA_HTTP_X_SOURCE_VALUE
ืืชื ืืืื ืืืืืืจ ืืช ืืขืจื ืฉืืืื ืชืืืืจ ืืืชืจืช X-Source ืขืืืจ ืื ืืืงืฉืืช ืืืืฆืืืช.
ืื ืืืคืฉืจ ืืืคืืฅ ืืช ืืืืชืจืช ืืฉืืืืฉืืช ืืื ืืืืคื ืืืื ืืจืืื ืืจืฉืช. ืืืืจ ืืื ืชืืื ืืืฉืชืืฉ ืื ืืฉืืจืืชืื ืืืืืกืืฃ ืืืชื ืืืืื ืื ืืืืืื.
ื ืืชืื ืชื ืืขื ืืคื ืืื Netramesh
Netramesh ืืืจืื ืืฉื ื ืืจืืืืื ืขืืงืจืืื. ืืจืืฉืื, netra-init, ืืืืืจ ืืืื ืจืฉืช ืืืืจื ืชืขืืืจื. ืืื ืืฉืชืืฉ INBOUND_INTERCEPT_PORTS, OUTBOUND_INTERCEPT_PORTS
.
ืืืื ืืฉ ืื ืชืืื ื ืืขื ืืื ืช - ื ืืชืื ืืกืชืืจืืชื. ืื ืืชื ืืฉืชืืฉ ื-Netramesh ืืืืคื ืืืขืื ืืืืกืืฃ ืืืืื ืืขืงื, ืื ืืกืืืืช ืืืฆืืจ ืชืืื ืืืกืื ืืฉืืืื ืืืืคืฉืจ ื ืืชืื ืืกืชืืจืืชื ืืืืฆืขืืช ืืฉืชื ืื NETRA_INBOUND_PROBABILITY
ะธ NETRA_OUTBOUND_PROBABILITY
(ื-0 ืขื 1). ืขืจื ืืจืืจืช ืืืืื ืืื 1 (ืื ืืชืขืืืจื ืืืจืื).
ืืืืจ ืืืจืื ืืืฆืื, Netra Sidecar ืืงืื ืืช ืืืืืืจ ืืืฉืืืืฉืื ืืืืฉืื SO_ORIGINAL_DST
ืืคืฉืจืืช ืฉืงืข ืืื ืืงืื ืืช ืืืขื ืืืงืืจื. ืืืืจ ืืื ื ืืจื ืคืืชืืช ืืืืืจ ืืืฉ ืืืชืืืช ื-IP ืืืงืืจืืช ืืืงืืื ืชืงืฉืืจืช TCP ืื ืืืืื ืืช ืืื ืืฆืืืื, ืชืื ืืืื ื ืืื ืืชืขืืืจื ืืขืืืจืช ืืจืื. ืื ืืืฆืืื ืืืืืจืช ื-HTTP, Netra ืื ืกื ืื ืชื ืืืขืงืื ืืืจืื. ืื ื ืืชืื HTTP ื ืืฉื, Netra ื ืืคืืช ืืืืจื ื-TCP ืืืขืืืจื ืืช ืืืชืื ืืฉืงืืคืืช ืืคืจืืงืกื.
ืื ืืืช ืืจืฃ ืชืืืช
ืืืืจ ืงืืืช ืืืืช ืืืืื ืฉื ืืืืข ืืขืงื ื-Jaeger, ืื ื ืจืืฆื ืืงืื ืืจืฃ ืฉืื ืฉื ืืื ืืจืืงืฆืืืช ืืืขืจืืช. ืืื ืื ืืืขืจืืช ืฉืื ืื ืขืืืกื ืืืืืืืจืื ืืืืื ืืขืงื ืืฆืืืจืื ืืืื, ืฆืืืจืชื ืืืคืืช ืืืฉืืื ืื ืงืื ืื ืื. ืืฉ ืืจื ืจืฉืืืช ืืขืฉืืช ืืืช:
ืื ืืชื ืืฉืชืืฉ ื- Elasticsearch ืืืืกืื ืืืืื ืืขืงื, ืืชื ืืืื ืืืฉืชืืฉ
ืืืฆื ืืืฉืชืืฉ ื-Netramesh
ื ืืชื ืืืืกืืฃ ืืช Netra ืืงืืืช ืืื ืฉืืจืืช ืฉืืคืขืื ืื ืืชืืืจ. ืืชื ืืืื ืืจืืืช ืืืืื
ื ืืื ืืขืืฉืื, ืื ืืข ืืื ืืช ืืืืืืช ืืืืฉื ืืืืืืืืช ืกืืืืืช ืืฉืืจืืชืื, ืืื ืืฉ ืชืืื ืืืช ืืืืฉืื.
ืืขืชืื ืฉื ื ืืจืืฉ
ืืืืจื ืืขืืงืจืืช
ืืขืชืื, Netramesh ืืชืืื ืืคืจืืืืงืืื ืฉืืืช ืืืฉืืืื ืืืจืื ืืืื HTTP. ื ืืชืื L7 ืืืื ืืืื ืืขืชืื ืืงืจืื.
ืืฉืชืืฉ ื-Netramesh ืื ืืชื ื ืชืงื ืืืขืืืช ืืืืืช ืืืชืื ืื ื ืขื ืฉืืืืช ืืืฆืขืืช.
ืืงืืจ: www.habr.com