ืืขืืจ
ืืืืจ ืืจืืฉืื ืฉืขืืื ืืจืืฉ ืขืืืจ ืืคืชืืื ืืื ืืื ืืขืจืืืช ืจืืื ืืฉืื ืฉืืืขืื ืืช ืืืืืื Service Mesh is tracing. ืืืื, ืื ื ืืืกืืคืื ืฉืจืช ืคืจืืงืกื ืืืืื ืืื ืฆืืืช ืจืฉืช ืฉืืจืื ืขืืืจืช ืื ืชืขืืืจืช ื-TCP. ื ืจืื ืื ืืขืช ื ืืชื ืืฉืืื ืืงืืืช ืืืืข ืขื ืื ืืื ืืจืืงืฆืืืช ืืจืฉืช ืืจืฉืช. ืืืจืื ืืฆืขืจ, ืืืฆืืืืช ืืฉ ืืจืื ื ืืืื ืกืื ืฉืฆืจืื ืืงืืช ืืืฉืืื. ืืืื ื ืกืชืื ืขืืืื.
ืชืคืืกื ืืืืขืืช ืืกืคืจ ืืืช: ืื ืื ื ืืืืืื ืืงืื ื ืชืื ื ืืืืืื ืืงืืื ืื ืืืื ื.
ืืืขืฉื, ืืืื ื ืืืกืืช, ื ืืื ืืงืื ืจืง ืืช ืืฆืืชืื ืฉื ืืืขืจืืช ืฉืื ื ืืืืืจืื ืืืฆืื ืืืช ืงืฆื ืื ืชืื ืื ืฉืขืืืจ ืืื ืฉืืจืืชืื (ืืืขืฉื, ืจืง ืืช ืืกืคืจ ืืืชืื ืืืืืืช ืืื). ืขื ืืืช, ืืจืื ืืืงืจืื, ืืฉืืจืืชืื ืฉืื ื ืืชืงืฉืจืื ืืืืฆืขืืช ืกืื ืืืฉืื ืฉื ืคืจืืืืงืื ืฉืืืช ืืืฉืืืื, ืืืื HTTP, gRPC, Redis ืืื ืืืื. ืืืืืื, ืื ืื ื ืจืืฆืื ืืจืืืช ืืืืข ืืขืงื ืกืคืฆืืคื ืขืืืจ ืืคืจืืืืงืืืื ืืืื; ืื ืื ื ืจืืฆืื ืืจืืืช ืืช ืงืฆื ืืืงืฉืืช, ืื ืืช ืงืฆื ืื ืชืื ืื. ืื ื ืจืืฆืื ืืืืื ืืช ืืื ืืืืืืจ ืฉื ืืงืฉืืช ืืืืฆืขืืช ืืคืจืืืืงืื ืฉืื ื. ืืืกืืฃ, ืื ื ืจืืฆืื ืืจืืืช ืืช ืืืจื ืืืืื ืฉืขืืืจืช ืืงืฉื ืืืื ืืกื ืืืขืจืืช ืฉืื ื ืืขื ืืงืืืช ืชืืืื ืืืืฉืชืืฉ. ืืืขืื ืืื ืืืจ ืื ืื ืื ืงืื ืืคืชืจืื.
ืจืืฉืืช, ืืืื ื ืกืชืื ืืืฆื ื ืจืืืช ืืืืื ืืขืงื ืฉื ืฉืืืืช ืื ืงืืืช ืืื ืืืจืืืืืช ืืืืกืืื. ืืืืืจ ืืืืืง ืืจืืฉืื, ืืืืกืืื ืืฉ ืจืืื ื ืคืจื ืืฉื Mixer ืืืืกืืฃ ืืืืืจืื. ืขื ืืืช, ืืืจืกื ืื ืืืืืช 1.0.*, ืืฉืืืื ืืชืืฆืขืช ืืฉืืจืืช ืืฉืจืชื ืคืจืืงืกื, ืืืืื ื, ืืฉืจืช proxy ืฉื ืฉืืื. Proxy ืฉื Envoy ืชืืื ืืฉืืืืช ืืืืื ืืขืงื ืืืืฆืขืืช ืคืจืืืืงืื zipkin ืืืืฅ ืืงืืคืกื. ืืคืฉืจ ืืืืจ ืคืจืืืืงืืืื ืืืจืื, ืืื ืจืง ืืืืฆืขืืช ืชืืกืฃ. ืขื Istio ืื ืื ื ืืงืืืื ืืื ืคืจืืงืกื ืฉื ืฉืืืืื ืืืจืื ืืืืืืจ, ืฉืชืืื ืจืง ืืคืจืืืืงืื zipkin. ืื ืื ืื ื ืจืืฆืื ืืืฉืชืืฉ, ืืืฉื, ืืคืจืืืืงืื Jaeger ืืืฉืืื ืืืืื ืืขืงื ืืจื UDP, ืื ื ืฆืืจื ืืื ืืช ืชืืื ืช istio-proxy ืืฉืื ื. ืืฉ ืชืืืื ืืชืืกืคืื ืืืชืืืื ืืืฉืืช ืขืืืจ istio-proxy, ืืื ืื ืขืืืื ืืืจืกืช ืืืืคื. ืืื, ืื ืืจืฆืื ื ื ืืืกืชืืจ ืืื ืืกืคืจ ืจื ืฉื ืืืืจืืช ืืืชืืืืช ืืืฉืืช, ืืืืื ืืืื ืืืืืืืช ืืืฉืืฉืืช ืืืืกืื ืืงืืืช ืืืืื ืืขืงื ืืฆืืืฆื. ืืืืขืจืืืช ืืขืืงืจืืืช, ืืืขืฉื, ืขืืฉืื ืืชื ืืืื ืืืฉืชืืฉ ื-Zipkin ืขืฆืื, ืื ื-Jaeger, ืืื ืืฉืืื ืืฉื ืืื ืืืืฆืขืืช ืคืจืืืืงืื ืชืืื zipkin (ืฉืืื ืืจืื ืคืืืช ืืขืื). ืคืจืืืืงืื zipkin ืขืฆืื ืืืื ืฉืืืืช ืื ืืืืข ืืืขืงื ืืืกืคื ืื ืืืืฆืขืืช ืคืจืืืืงืื ื-HTTP, ืฉืืื ืื ืืงืจ.
ืืคื ืฉืืืจ ืืืจืชื, ืื ืื ื ืจืืฆืื ืืืชืืงืืช ืืืจ ืคืจืืืืงืืืื ืืจืืช ืืืืฉืื. ืืืฉืืขืืช ืืื ืฉืฉืจืชื ื-proxy ืฉืขืืืืื ืืื ืื ืฉืืจืืช ืืืืืื ืืืืื ืืืื ืกืื ืฉื ืืื ืืจืืงืฆืื ืืชืจืืฉืช ืืขืช. ืืืจืืจืช ืืืื, Istio ืืืืืจ ืืช ืื ืืืฆืืืืช ืืืืืช TCP ืจืืื, ืื ืฉืืืืจ ืฉืื ืืืฉืืื ืขืงืืืช. ืขื ืื ืช ืฉืขืงืืืช ืืืฉืืื, ืจืืฉืืช ืขืืื ืืืคืขืื ืืช ืืืคืฉืจืืช ืืื ืืชืฆืืจืช ืืจืฉืช ืืจืืฉืืช, ืืื ืฉืืฉืื ืืืื, ืืชืช ืฉื ืืื ืืคืืจืืื ืฉื ืืฉืืืืช ืฉืืจืืช kubernetes ืืืชืื ืืคืจืืืืงืื ืืืฉืืฉ ืืฉืืจืืช. ืืืืืจ, ืืืฉื, ืื:
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
ports:
- port: 80
targetPort: 80
name: http
selector:
app: nginx
ืืชื ืืืื ืื ืืืฉืชืืฉ ืืฉืืืช ืืืจืืืื ืืื http-magic (Istio ืืจืื http ืืืืื ืืช ืืืฆืืื ืืื ืื ืงืืืช ืงืฆื http). ืืคืืจืื ืืื: ืคืจืืื-ืืงืกืืจื.
ืืื ืื ืืชืงื ืืกืคืจ ืขืฆืื ืฉื ืชืฆืืจืืช ืืื ืืงืืืข ืืช ืืคืจืืืืงืื, ืืชื ืืืื ืืืฉืชืืฉ ืืคืชืจืื ืืืืืื: ืชืงื ืืช ืจืืื ืืคืืืืื ืืจืืข ืฉืืื ืจืง
ืขื ืื ืช ืืืืื ืืื ืืคืจืืืืงืื ืืืืช ืืืืืจ ื ืืื, ืขืืืื ืืืืื ืก ืืื ืืื ืืืืืื ื-sidecar ืขื proxy ืฉื envoy ืืืืฆืข ืืงืฉื ืืคืืจื ืืื ืื ืฉื ืืืฉืง ื-envoy ืขื location /config_dump. ืืชืฆืืจื ืืืชืงืืืช, ืขืืื ืืืกืชืื ืขื ืฉืื ืืคืขืืื ืฉื ืืฉืืจืืช ืืจืฆืื. ืืื ืืฉืืฉ ื-Istio ืืืืื ืืืงืื ืฉืื ืืืืฉืช ืืืงืฉื. ืขื ืื ืช ืืืชืืื ืืืฉืืช ืืช ืืขืจื ืฉื ืคืจืืืจ ืื ื-Istio (ืืืืจ ืืื ื ืจืื ืืืชื ืืืขืจืืช ืืืขืงื ืฉืื ื), ืืฉ ืฆืืจื ืืฆืืื ืืช ืืื serviceCluster ืืฉืื ืืฉืงืช ืืืื ื-sidecar. ืืืืืื, ื ืืชื ืืืฉื ืืืชื ืื ืืืฉืชื ืื ืืืชืงืืืื ืืืืืฉืง ื-API ืฉื kubernetes ืืืคื ืืื:
--serviceCluster ${POD_NAMESPACE}.$(echo ${POD_NAME} | sed -e 's/-[a-z0-9]*-[a-z0-9]*$//g')
ืืืืื ืืืื ืืืืื ืืื ืืืขืงื ืขืืื ื-envoy ืืื
ืืฉ ืืฆืืื ืื ืืช ื ืงืืืช ืืงืฆื ืขืฆืื ืืฉืืืืช ืืืืื ืืขืงื ืืืืื ืืืฉืงื ืฉื ื-proxy ืฉื ืืฉืืื, ืืืืืื: --zipkinAddress tracing-collector.tracing:9411
ืชืคืืกื ืฉืืืื ืืกืคืจ ืฉืชืืื: ืื ื ืืืืืื ืืืฉืื ืืืื ืขืงืืืช ืืืืื ืฉื ืืงืฉืืช ืืจื ืืืขืจืืช ืืืืฅ ืืงืืคืกื
ืืืจืื ืืฆืขืจ, ืื ืื. ืืืืจืืืืช ืฉื ืืืืฉืื ืชืืืื ืืืืคื ืฉืื ืืืจ ืืืฉืืช ืืช ืืืื ืืจืืงืฆืื ืฉื ืืฉืืจืืชืื. ืืื?
ืืขืืืื ืืื ืฉืืื ืฉ-istio-proxy ืืืื ืืืืื ืืช ืืชืืชืืืช ืฉื ืืงืฉืืช ื ืื ืกืืช ืืฉืืจืืช ืขื ืืขืืืืื ืืช ืืืชื ืฉืืจืืช, ืื ืืกืคืืง ืคืฉืื ืืืืจื ืืช ืื ืืชืขืืืจื. ืืชื ืฆืจืื ืฉืืืื ืื ืืืืฉืื ืืืื ืชืงืฉืืจืช. ืคืจืืงืกื HTTP ืฉื ืฉืืืื HTTP ืืฉืชืืฉ ืืืืชืจืืช ืืืืืืืช, ืืคืืื ืืฉืืื ืืืื ืืืื ืืงืฉื ืกืคืฆืืคืืช ืืฉืืจืืช ืืืืฆืจืช ืืงืฉืืช ืกืคืฆืืคืืืช ืืฉืืจืืชืื ืืืจืื. ืจืฉืืื ืฉื ืืืชืจืืช ืืืื:
- x-request-id,
- x-b3-traceid,
- x-b3-spanid,
- x-b3-parentspanid,
- x-b3-sampled,
- x-b3-flags,
- x-ot-span-context.
ืื ืืฉ ืื ื ืงืืื ืืืืืช, ืืืฉื, ืืงืื ืืกืืกื, ืฉืื ืืชื ืืืื ืืืืกืืฃ ืืืืืื ืืื, ืื ืืื ืืกืืจ, ืืชื ืจืง ืฆืจืื ืืืืืช ืฉืืกืคืจืืื ืืื ืชืชืขืืื ืขืืืจ ืื ืืืงืืืืช. ืืื ืื ืืฉ ืื ืืขืจืืช ืืืื ืืืจืืื ืืช ืืืื ืืืืื ืืืขืืจ ืืฉืืจืืช ืืฉืืจืืช ืืจื ืืจืฉืช, ืกืืืจ ืืื ืื ืฉืื ืชืืื ืืขืื ืืืืื. ืืืื ืืืืกืืฃ ืืืืืื ืืื, ืื ืืืืข ืืืขืงื ืืืื ืจืง โโ"ืจืื ืืืช". ืืืืืจ, ื ืงืื ืืช ืื ืืืื ืืจืืงืฆืืืช ืืืื-ืฉืืจืืชืืืช, ืื ืื ืื ืืืืืงื ืืฉืจืฉืจืืืช ืืขืืจ ืืืืืืช ืืจืฉืช.
ืืกืงื ื
Istio ืืกืคืงืช ืืื ื ืื ืืืืกืืฃ ืืืืข ืืขืงื ืขื ืืื ืจืฉืช, ืื ืขืืืื ืืืืื ืื ืืฆืืจื ืืืืขื ืชืฆืืจืื ืืืชืืื ืืช ืืืขืจืืช ืฉืืื ืืืงืืช ืืืฉืืื ืืช ืืชืืื ืืช ืฉื ืืืืขืช Istio. ืืชืืฆืื ืืื ืืฉ ืฆืืจื ืืคืชืืจ ืฉืชื ื ืงืืืืช ืขืืงืจืืืช: ืืืืจืช ืคืจืืืืงืื ืืจืืช ืืืคืืืงืฆืื (ืฉืืฉ ืืชืืื ืขื ืืื ืคืจืืงืกื ืืฉืืื) ืืืืืจืช ืืขืืจืช ืืืืข ืขื ืืืืืจ ืืืงืฉืืช ืืฉืืจืืช ืืืงืฉืืช ืืืฉืืจืืช (ืืืืฆืขืืช ืืืชืจืืช , ืืืงืจื ืฉื ืคืจืืืืงืื HTTP). ืืืฉืจ ืืืขืืืช ืืืื ื ืคืชืจืืช, ืืฉ ืื ื ืืื ืจื ืขืืฆืื ืืืืคืฉืจ ืื ื ืืืกืืฃ ืืฉืงืืคืืช ืืืืข ืืืจืฉืช, ืืคืืื ืืืขืจืืืช ืืืจืืื ืืืช ืืืื ืืืชืืืืช ืืฉืคืืช ืืืืกืืจืืช ืฉืื ืืช.
ืืืืืจ ืืื ืขื Service Mesh, ื ืืื ืืช ืืืช ืืืขืืืช ืืืืืืืช ืืืืชืจ ืขื Istio - ืืฆืจืืื ืืืืืื ืฉื ืืืืจืื RAM ืขื ืืื ืื ืืืื Proxy Sidecar ืื ืืื ืืืฆื ืชืืื ืืืชืืืื ืืืชื.
ืืงืืจ: www.habr.com