Istio рдФрд░ Linkerd рдХреЗ рд▓рд┐рдП рд╕реАрдкреАрдпреВ рдЦрдкрдд рдмреЗрдВрдЪрдорд╛рд░реНрдХ


рдкрд░рд┐рдЪрдп


Shopify рдкрд░ рд╣рдо рдПрдХ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рддреИрдирд╛рдд рдХрд░ рд░рд╣реЗ рдереЗред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЪреАрдЬ рдХреЛ рдЫреЛрдбрд╝рдХрд░: рдпрд╣ рдорд╣рдВрдЧрд╛ рд╣реИ ред


Istio рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдорд╛рдирдХ рдХрд╣рддреЗ рд╣реИрдВ:


рдЗрд╕реНрддрд┐рдпреЛ 1.1 рдХреЗ рд╕рд╛рде, рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1000 рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд▓рдЧрднрдЧ 0.6 vCPU (рд╡рд░реНрдЪреБрдЕрд▓ рдХреЛрд░) рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдореЗрдВ рдкрд╣рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП (рдХрдиреЗрдХреНрд╢рди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдХреНрд╖ рдкрд░ 2 рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ), рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдПрдХ рд▓рд╛рдЦ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рджрд░ рд╕реЗ, рдХреЗрд╡рд▓ рдкрд░рджреЗ рдХреЗ рд▓рд┐рдП 1200 рдХреЛрд░ рд╣реЛрдВрдЧреЗред Google рдХреЗ рд▓рд╛рдЧрдд рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ n1-standard-64 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ $ 40 / рдорд╣реАрдирд╛ / рдХреЛрд░ рдорд┐рд▓рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдХреНрд╖реЗрддреНрд░ рд╣рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1 рдорд┐рд▓рд┐рдпрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдорд╛рд╣ $ 50,000 рд╕реЗ рдЕрдзрд┐рдХ рдЦрд░реНрдЪ рдХрд░реЗрдЧрд╛ред


рдЗрд╡рд╛рди рд╕рд┐рдо ( рдЗрд╡рд╛рди рд╕рд┐рдо ) рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рджреЗрд░реА рдХреА рддреБрд▓рдирд╛ рдХреА рдФрд░ рдореЗрдореЛрд░реА рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╡рд╛рджрд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрд╕рдлрд▓ рд░рд╣рд╛:


рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдорд╛рди-istio-test.yaml рдкреНрд░реЛрд╕реЗрд╕рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдмрдврд╝рд╛рдПрдЧрд╛ред рдЕрдЧрд░ рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЧрдгрдирд╛ рдХреА, рддреЛ рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 24 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП 0.5 рд╕реАрдкреАрдпреВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореЗрд░реЗ рдкрд╛рд╕ рдЗрддрдирд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрди рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ рддреЛ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛ред

рдореИрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреИрд╕реЗ рдЗрд╕реНрддрд┐рдпреЛ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдПрдХ рдЕрдиреНрдп рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╖ рдХреЗ рд╕рдорд╛рди рд╣реИ: рд▓рд┐рдВрдХрд░рдб ред


рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рд╕реНрдерд╛рдкрдирд╛


рд╕реБрдкрд░рдЧреНрд▓реВ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реА рдЪреАрдЬрд╝ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдереА :


 $ supergloo init installing supergloo version 0.3.12 using chart uri https://storage.googleapis.com/supergloo-helm/charts/supergloo-0.3.12.tgz configmap/sidecar-injection-resources created serviceaccount/supergloo created serviceaccount/discovery created serviceaccount/mesh-discovery created clusterrole.rbac.authorization.k8s.io/discovery created clusterrole.rbac.authorization.k8s.io/mesh-discovery created clusterrolebinding.rbac.authorization.k8s.io/supergloo-role-binding created clusterrolebinding.rbac.authorization.k8s.io/discovery-role-binding created clusterrolebinding.rbac.authorization.k8s.io/mesh-discovery-role-binding created deployment.extensions/supergloo created deployment.extensions/discovery created deployment.extensions/mesh-discovery created install successful! 

рдореИрдВрдиреЗ SuperGloo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдХреЗ рдмреВрдЯ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ред рдЙрддреНрдкрд╛рджрди рдореЗрдВ, рд╣рдо рд╕реБрдкрд░рдЧреНрд▓реВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИред рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдореЗрдВ рдмрд╕ рдХреБрдЫ рд╣реА рдЖрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдереЗред рдореИрдВрдиреЗ рдЕрд▓рдЧрд╛рд╡ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ - рдПрдХ рдЗрд╕реНрддрд┐рдпреЛ рдФрд░ рд▓рд┐рдВрдХрд░рдб рдХреЗ рд▓рд┐рдПред


рдкреНрд░рдпреЛрдЧ Google рдХреБрдмреЗрд░рдиреЗрдЯ рдЗрдВрдЬрди рдкрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ Kubernetes 1.12.7-gke.7 рдФрд░ n1-standard-4 рдиреЛрдб рдкреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдиреЛрдб рд╕реНрдХреЗрд▓рд┐рдВрдЧ (рдиреНрдпреВрдирддрдо 4, рдЕрдзрд┐рдХрддрдо 16) рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ред


рдлрд┐рд░ рдореИрдВрдиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╖ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдПред


рд▓рд┐рдВрдХрд░рдб рдкрд╣рд▓реЗ:


 $ supergloo install linkerd --name linkerd +---------+--------------+---------+---------------------------+ | INSTALL | TYPE | STATUS | DETAILS | +---------+--------------+---------+---------------------------+ | linkerd | Linkerd Mesh | Pending | enabled: true | | | | | version: stable-2.3.0 | | | | | namespace: linkerd | | | | | mtls enabled: true | | | | | auto inject enabled: true | +---------+--------------+---------+---------------------------+ 

рддрдм рдЗрд╕реНрддрд┐рдпреЛ:


 $ supergloo install istio --name istio --installation-namespace istio-system --mtls=true --auto-inject=true +---------+------------+---------+---------------------------+ | INSTALL | TYPE | STATUS | DETAILS | +---------+------------+---------+---------------------------+ | istio | Istio Mesh | Pending | enabled: true | | | | | version: 1.0.6 | | | | | namespace: istio-system | | | | | mtls enabled: true | | | | | auto inject enabled: true | | | | | grafana enabled: true | | | | | prometheus enabled: true | | | | | jaeger enabled: true | +---------+------------+---------+---------------------------+ 

рдХреНрд░реИрд╢-рд▓реВрдк рдореЗрдВ рдХрдИ рдорд┐рдирдЯ рд▓рдЧреЗ, рдФрд░ рдлрд┐рд░ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рд╕реНрдерд┐рд░ рд╣реЛ рдЧрдПред


(рдиреЛрдЯ: рд╕реБрдкрд░рдЧреНрд▓реЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ Istio 1.0.x рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ Istio 1.1.3 рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдЕрдВрддрд░ рдирд╣реАрдВ рджреЗрдЦрд╛ред)


рдЗрд╕реНрддрд┐рдпреЛ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддреИрдирд╛рддреА рдХреА рд╕реНрдерд╛рдкрдирд╛


рдЗрд╕реНрддрд┐рдпреЛ рдореЗрдВ рд╕рд╛рдЗрдбрдХрд╛рд░ рдПрдирд╡реЙрдп рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд╛рдЗрдбрдХрд╛рд░ рдЗрдВрдЬреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - MutatingAdmissionWebhook ред рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ рдЬреЛ рд╕рднреА рдирдП рдкреЙрдбреНрд╕ рдХреА рдкрд╣реБрдВрдЪ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдФрд░ рдЗрдирдЯрд╛рдЗрдХреЛрдЯреЗрдирд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ iptables рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред


рд╢реЙрдХрд░рд╛рдЗрдЬрд╝ рдкрд░ рд╣рдордиреЗ рдлреБрдЯрдкрд╛рде рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рд▓рд┐рдЦрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рдореИрдВрдиреЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рд▓рд┐рдпрд╛ рдЬреЛ рдХрд┐ рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ istio-injection: enabled рд╣реЛрдиреЗ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╛рдЗрдбрдХрд╛рд░ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ: рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ istio-injection: enabled рд╢реЙрд░реНрдЯрдХрдЯ:


 $ kubectl label namespace irs-client-dev istio-injection=enabled namespace/irs-client-dev labeled $ kubectl label namespace irs-server-dev istio-injection=enabled namespace/irs-server-dev labeled 

рд▓рд┐рдВрдХрд░рдб рдСрдЯреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


Linkerd sidecar s рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ kubectl edit рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛):


 metadata: annotations: linkerd.io/inject: enabled 

 $ k edit ns irs-server-dev namespace/irs-server-dev edited $ k get ns irs-server-dev -o yaml apiVersion: v1 kind: Namespace metadata: annotations: linkerd.io/inject: enabled name: irs-server-dev spec: finalizers: - kubernetes status: phase: Active 

рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЗрд╕реНрддрд┐рдпреЛ


рд╣рдордиреЗ Shopify рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Istio рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдмрдирд╛рдпрд╛ред рд╣рдореЗрдВ рдПрдХ рдордирдорд╛рдирд╛ рдЯреЛрдкреЛрд▓реЙрдЬреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрднрд╛рд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреЗ рдЧреНрд░рд╛рдл рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░реЗрдЧрд╛ред


рдлреНрд▓реИрд╢ рдХреА рдмрд┐рдХреНрд░реА рдХреЗ рджреМрд░рд╛рди рд╢реЛрдкрд┐рд╕ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рднрд╛рд░реА рднрд╛рд░ рдореЗрдВ рд╣реИред рдЙрд╕реА рд╕рдордп, Shopify рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдХреНрд░реЗрддрд╛ рдРрд╕реА рдмрд┐рдХреНрд░реА рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ ред рдмрдбрд╝реЗ рдЧреНрд░рд╛рд╣рдХ рдХрднреА-рдХрднреА рдпреЛрдЬрдирд╛рдмрджреНрдз рдлреНрд▓реИрд╢ рдмрд┐рдХреНрд░реА рдХреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреЗ рд╣реИрдВред рдЕрдиреНрдп рд▓реЛрдЧ рджрд┐рди рдпрд╛ рд░рд╛рдд рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдордп рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВред


рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рд╣рдорд╛рд░реА рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдХреЛ рдореЙрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдЕрддреАрдд рдореЗрдВ рд╢реЛрдкрд┐рд╕ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреЛрдкреЛрд▓реЙрдЬреА рдФрд░ рд╡рд░реНрдХрд▓реЛрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрддрд░ рдкрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЙрди рднрд╛рд░реЛрдВ рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░реЗ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдмрд╛рдзрд╛ рдбрд╛рд▓рддреЗ рдереЗред


рдлреЗрд▓рдУрд╡рд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдПрдХ рдХрд╛рд░реНрдп рдиреЛрдб рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬреЛ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдиреЛрдб рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ REST API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдкреНрд░рддрд┐рдЧрдорди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдиреЛрдбреНрд╕ рдХреЗ рдбрд╛рдпрдиреЗрдорд┐рдХ рдЯреНрдпреВрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


  • рд╣рдо рдПрдХ bar рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ 10 рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ 100 рдПрдордПрд╕ рдХреЗ рдмрд╛рдж 200/OK рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИред
  • рд╣рдо 10 рдЧреНрд░рд╛рд╣рдХ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдкреНрд░рддреНрдпреЗрдХ bar рд▓рд┐рдП рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 100 рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред
  • рдкреНрд░рддреНрдпреЗрдХ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рд╣рдо 1 рд╕рд░реНрд╡рд░ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ, рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ 5xx рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВред

рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо рд▓реЙрдЧ рдФрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд╣реБрдЖ рд╣реИред рдЗрд╕реА рддрд░рд╣ рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрддреЗ рд╣реИрдВ рдФрд░ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реА рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред


(рдиреЛрдЯ: рд╣рдо Istio рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдЦреЛрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА рддрдХ рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред)


рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддрд┐рдпреЛ рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░


рд╣рдо рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рдХрдИ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ:


  • irs-client-loadgen : 3 рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЬреЛ irs-client-loadgen irs-client рдХреЛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 100 рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреА рд╣реИрдВред
  • irs-client : 3 рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЬреЛ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИрдВ рд╡реЗ 100 ms рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИрдВ рдФрд░ irs-server рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреА рд╣реИрдВред
  • irs-server : 3 рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЬреЛ 100 рдПрдордПрд╕ рдХреЗ рдмрд╛рдж 200/OK рд▓реМрдЯрд╛рддреА рд╣реИрдВред

рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде, рд╣рдо 9 рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдПрдХ рд╕реНрдерд┐рд░ рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдорд╛рдк рд╕рдХрддреЗ рд╣реИрдВред irs-client-loadgen рдФрд░ irs-client-loadgen irs-server рдХреЛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 100 рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд irs-client-loadgen рдФрд░ irs-client-loadgen irs-client - 200 (рдЗрдирдХрдорд┐рдВрдЧ рдФрд░ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ)ред


рд╣рдо рдбреЗрдЯрд╛рдбреЙрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдЙрдкрдпреЛрдЧ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдирд╣реАрдВ рд╣реИред


рдкрд░рд┐рдгрд╛рдо


рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рд╕реАрдкреАрдпреВ рдХреА рдЦрдкрдд рдХреА рдЬрд╛рдВрдЪ рдХреАред



рд▓рд┐рдВрдХрд░рдб рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ ~ 22M



рдЗрд╕реНрддрд┐рдпреЛ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓: ~ 750 рдорд┐рд▓рд┐рдпрди рдХреЛрд░


рдЗрд╕реНрддрд┐рдпреЛ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рд▓рд┐рдВрдХрд░рдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 35 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рд╕рдм рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ istio-telemetry рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдмрд╣реБрдд рдЦрдкрдд рдХрд░рддрд╛ рд╣реИ (рдЖрдк рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдпрджрд┐ рдЖрдк рдЗрд╕ рдШрдЯрдХ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрднреА рднреА 100 рд╕реЗ рдЕрдзрд┐рдХ рдорд▓реНрдЯреАрдХреЛрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд▓рд┐рдВрдХрд░рдб рд╕реЗ 4 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИред


рд╕рд┐рдбрдХрд░ рдкреНрд░реЙрдХреНрд╕реА


рдлрд┐рд░ рд╣рдордиреЗ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рдВрдЪрд╛ред рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдПрдХ рд░реЗрдЦреАрдп рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдУрд╡рд░рд╣реЗрдбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╡рдХреНрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред



рд▓рд┐рдВрдХрд░рдб: ~ 100Mnuclear for irs-client, ~ 50Mnuclear for irs-client-loadgen


рдкрд░рд┐рдгрд╛рдо рддрд░реНрдХрд╕рдВрдЧрдд рджрд┐рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЙрдХреНрд╕реА рд▓реЛрдбрдЬреЗрди рдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рджреЛрдЧреБрдирд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ: рд▓реЛрдбрдЬреЗрди рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЗрдирдХрдорд┐рдВрдЧ рдФрд░ рдПрдХ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рд╣реИред



рдЗрд╕реНрддрд┐рдпреЛ / рджреВрдд: ~ резрелрел рдХрд░реЛрдбрд╝рдкрддрд┐ рдЖрдИрдЖрд░рдПрд╕-рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП, sрел рдХрд░реЛрдбрд╝рдкрддрд┐ рдЖрдИрдЖрд░рдПрд╕-рдХреНрд▓рд╛рдЗрдВрдЯ-рд▓реЛрдбрдЧреЗрди рдХреЗ рд▓рд┐рдП


рд╣рдо Istio sidecar рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВред


рд▓реЗрдХрд┐рди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, Istio / Envoy рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ Linkerd рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 50% рдЕрдзрд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИред


рд╣рдо рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдПрдХ рд╣реА рд╕реНрдХреАрдо рджреЗрдЦрддреЗ рд╣реИрдВ:



Linkerd: irs-server рдХреЗ рд▓рд┐рдП ~ 50 рдорд▓реНрдЯреАрдХреЛрд░



рдЗрд╕реНрддрд┐рдпреЛ / рджреВрдд: ~ рдЖрдИрдЖрд░рдПрд╕-рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП 80 рдорд▓реНрдЯреАрдХреЛрд░


рд╕рд░реНрд╡рд░ рдХреА рдУрд░, рдЗрд╕реНрддрд┐рдпреЛ / рдПрдирд╡реЙрдп рд╕рд╛рдЗрдбрдХрд╛рд░ рд▓рд┐рдВрдХрд░рдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 60% рдЕрдзрд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИред


рдирд┐рд╖реНрдХрд░реНрд╖


Istio Envoy рдкреНрд░реЙрдХреНрд╕реА рд╣рдорд╛рд░реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рд╡рд░реНрдХрд▓реЛрдб рдкрд░ Linkerd рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 50 +% рдЕрдзрд┐рдХ CPU рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИред рд▓рд┐рдВрдХрд░рдб рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕реНрддрд┐рдпреЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИред


рд╣рдо рдЕрднреА рднреА рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЗрди рд▓рд╛рдЧрддреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ!

Source: https://habr.com/ru/post/hi452956/


All Articles