рдкрд░рд┐рдЪрдп
рдЖрдореНрд╣реА рдордзреНрдпреЗ рдЖрд╣реЛрдд
╨Т
Istio 1.1 рд╕рд╣, рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рдкреНрд░рддрд┐ 0,6 рд╡рд┐рдирдВрддреНрдпрд╛ рдЕрдВрджрд╛рдЬреЗ 1000 vCPUs (рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдХреЛрд░) рд╡рд╛рдкрд░рддреЗ.
рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢рдордзреАрд▓ рдкрд╣рд┐рд▓реНрдпрд╛ рдкреНрд░рджреЗрд╢рд╛рд╕рд╛рдареА (рдХрдиреЗрдХреНрд╢рдирдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЬреВрд▓рд╛ 2 рдкреНрд░реЙрдХреНрд╕реА), рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рдПрдХ рджрд╢рд▓рдХреНрд╖ рд╡рд┐рдирдВрддреНрдпрд╛ рджрд░рд╛рдиреЗ рдлрдХреНрдд рдкреНрд░реЙрдХреНрд╕реАрд╕рд╛рдареА 1200 рдХреЛрд░ рдЕрд╕рддреАрд▓. Google рдЪреНрдпрд╛ рдХреЙрд╕реНрдЯ рдХреЕрд▓реНрдХреНрдпреБрд▓реЗрдЯрд░рдиреБрд╕рд╛рд░, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╛рдареА рд╣реЗ рдЕрдВрджрд╛рдЬреЗ $40/рдорд╣рд┐рдирд╛/рдХреЛрд░ рдЖрд╣реЗ n1-standard-64
, рдореНрд╣рдгрдЬреЗ, рдПрдХрдЯреНрдпрд╛ рдпрд╛ рдкреНрд░рджреЗрд╢рд╛рд╕рд╛рдареА рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж 50 рджрд╢рд▓рдХреНрд╖ рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╛рдареА рджрд░рдорд╣рд╛ 1 рд╣рдЬрд╛рд░ рдбреЙрд▓рд░реНрд╕рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЦрд░реНрдЪ рдпреЗрдИрд▓.
рдЗрд╡реНрд╣рд╛рди рд╕рд┐рдо (
рд╡рд░рд╡рд░ рдкрд╛рд╣рддрд╛, values-istio-test.yaml CPU рд╡рд┐рдирдВрддреНрдпрд╛ рдЧрдВрднреАрд░рдкрдгреЗ рд╡рд╛рдврд╡реЗрд▓. рдореА рдорд╛рдЭреЗ рдЧрдгрд┐рдд рдмрд░реЛрдмрд░ рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ рдирд┐рдпрдВрддреНрд░рдг рдкреЕрдиреЗрд▓рд╕рд╛рдареА рдЕрдВрджрд╛рдЬреЗ 24 CPU рдХреЛрд░ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЙрдХреНрд╕реАрд╕рд╛рдареА 0,5 CPU рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рддреЗрд╡рдвреЗ рдХрд╛рд╣реА рдирд╛рд╣реА. рдЬреЗрд╡реНрд╣рд╛ рдорд▓рд╛ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдЯрдк рдХреЗрд▓реА рдЬрд╛рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рдореА рдЪрд╛рдЪрдгреНрдпрд╛рдВрдЪреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░реЗрди.
Istio рдЪреА рдХрд╛рдордЧрд┐рд░реА рджреБрд╕рд░реНтАНрдпрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢рд╢реА рдХрд┐рддреА рд╕рдорд╛рди рдЖрд╣реЗ рд╣реЗ рдорд▓рд╛ рд╕реНрд╡рддрдГрд▓рд╛ рдкрд╣рд╛рдпрдЪреЗ рд╣реЛрддреЗ:
рд╕реЗрд╡рд╛ рдЬрд╛рд│реА рд╕реНрдерд╛рдкрдирд╛
рд╕рд░реНрд╡ рдкреНрд░рдердо, рдореА рддреЗ рдПрдХрд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ
$ 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!
рдореА рд╕реБрдкрд░рдЧреНрд▓реВ рд╡рд╛рдкрд░рд▓рд╛ рдХрд╛рд░рдг рддреЗ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢рдЪреЗ рдмреВрдЯрд╕реНрдЯреНрд░реЕрдкрд┐рдВрдЧ рдЦреВрдк рд╕реЛрдкреЗ рдХрд░рддреЗ. рдорд▓рд╛ рдлрд╛рд░ рдХрд╛рд╣реА рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ рдирд╛рд╣реА. рдЖрдореНрд╣реА рдЙрддреНрдкрд╛рджрдирд╛рдд рд╕реБрдкрд░рдЧреНрд▓реВ рд╡рд╛рдкрд░рдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЕрд╢рд╛ рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рддреЗ рдЖрджрд░реНрд╢ рдЖрд╣реЗ. рдорд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢рд╕рд╛рдареА рдЕрдХреНрд╖рд░рд╢рдГ рджреЛрди рдХрдорд╛рдВрдбреНрд╕ рд╡рд╛рдкрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рдореА рдкреГрдердХреНрдХрд░рдгрд╛рд╕рд╛рдареА рджреЛрди рдХреНрд▓рд╕реНрдЯрд░ рд╡рд╛рдкрд░рд▓реЗ - рдкреНрд░рддреНрдпреЗрдХреА рдПрдХ Istio рдЖрдгрд┐ Linkerd рд╕рд╛рдареА.
Google Kubernetes Engine рд╡рд░ рд╣рд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛. рдореА 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 |
+---------+--------------+---------+---------------------------+
рдордЧ Istio:
$ 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 |
+---------+------------+---------+---------------------------+
рдХреНрд░реЕрд╢-рд▓реВрдкрд▓рд╛ рдХрд╛рд╣реА рдорд┐рдирд┐рдЯреЗ рд▓рд╛рдЧрд▓реА рдЖрдгрд┐ рдирдВрддрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреЕрдиреЗрд▓ рд╕реНрдерд┐рд░ рдЭрд╛рд▓реЗ.
(рдЯреАрдк: SuperGloo рдЖрддреНрддрд╛ рдлрдХреНрдд Istio 1.0.x рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ. рдореА Istio 1.1.3 рд╕рд╣ рдкреНрд░рдпреЛрдЧрд╛рдЪреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХреЗрд▓реА, рдкрд░рдВрддреБ рдХреЛрдгрддрд╛рд╣реА рд▓рдХреНрд╖рдгреАрдп рдлрд░рдХ рд▓рдХреНрд╖рд╛рдд рдЖрд▓рд╛ рдирд╛рд╣реА.)
Istio рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЙрдкрдпреЛрдЬрди рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ
Istio рд▓рд╛ рд╕рд╛рдЗрдбрдХрд╛рд░ рджреВрдд рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рд╕рд╛рдЗрдбрдХрд╛рд░ рдЗрдВрдЬреЗрдХреНрдЯрд░ - рд╡рд╛рдкрд░рддреЛ MutatingAdmissionWebhook
. рдЖрдореНрд╣реА рдпрд╛ рд▓реЗрдЦрд╛рдд рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓рдгрд╛рд░ рдирд╛рд╣реА. рдореА рдлрдХреНрдд рдЕрд╕реЗ рдореНрд╣рдгреВ рдЗрдЪреНрдЫрд┐рддреЛ рдХреА рд╣рд╛ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдЖрд╣реЗ рдЬреЛ рд╕рд░реНрд╡ рдирд╡реАрди рдкреЙрдбреНрд╕рдЪреНрдпрд╛ рдкреНрд░рд╡реЗрд╢рд╛рд╡рд░ рд▓рдХреНрд╖ рдареЗрд╡рддреЛ рдЖрдгрд┐ рдЧрддрд┐рдорд╛рдирдкрдгреЗ рд╕рд╛рдЗрдбрдХрд╛рд░ рдЖрдгрд┐ initContainer рдЬреЛрдбрддреЛ, рдЬреЛ рдХрд╛рд░реНрдпрд╛рдВрд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЕрд╕рддреЛ. iptables
.
Shopify рд╡рд░ рдЖрдореНрд╣реА рд╕рд╛рдЗрдбрдХрд╛рд░ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдордЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдНрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рд▓рд┐рд╣рд┐рд▓рд╛, рдкрд░рдВрддреБ рдпрд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд╕рд╛рдареА рдореА Istio рд╕рд╣ рдпреЗрдгрд╛рд░рд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╡рд╛рдкрд░рд▓рд╛. рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ рд╢реЙрд░реНрдЯрдХрдЯ рдЕрд╕рддрд╛рдирд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореБрд▓рднреВрддрд░рд┐рддреНрдпрд╛ рд╕рд╛рдЗрдбрдХрд╛рд░ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддреЛ 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 рд╕рд╛рдЗрдбрдХрд╛рд░ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рднрд╛рд╖реНрдпреЗ рд╡рд╛рдкрд░рддреЛ (рдореА рддреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдЬреЛрдбрд▓реЗ 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
Istio рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░
Shopify рд╕рд╛рдареА рдЕрдирдиреНрдп рдЯреНрд░реЕрдлрд┐рдХрдЪрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА Istio рдирд╛рд╡рд╛рдЪреЗ рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рд╕рд╛рдиреБрдХреВрд▓ рдЯреЛрдкреЛрд▓реЙрдЬреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХрд╛ рд╕рд╛рдзрдирд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рдЬреА рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡рд╛ рдЖрд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рдЧрд╛рдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░реЗрд▓, рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдХрд▓реЛрдб рдореЙрдбреЗрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд╛рдпрдиреЕрдорд┐рдХрд░рд┐рддреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.
рдлреНрд▓реЕрд╢ рд╡рд┐рдХреНрд░реА рджрд░рдореНрдпрд╛рди Shopify рдЪреНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдЪрд╛ рдкреНрд░рдЪрдВрдб рднрд╛рд░ рдЖрд╣реЗ. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, Shopify
рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреЗ рд▓рд╡рдЪрд┐рдХрддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд╡рд░реНрдХрдлреНрд▓реЛрдЪреЗ рдореЙрдбреЗрд▓ рдмрдирд╡рд╛рдпрдЪреЗ рд╣реЛрддреЗ рдЬреЗ рдЯреЛрдкреЛрд▓реЙрдЬреАрдЬ рдЖрдгрд┐ рд╡рд░реНрдХрд▓реЛрдбреНрд╕рд╢реА рдЬреБрд│рддрд╛рдд рдЬреНрдпрд╛рдиреЗ рднреВрддрдХрд╛рд│рд╛рдд Shopify рдЪреНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдирд╛ рдУрд╡реНрд╣рд░рд▓реЛрдб рдХреЗрд▓реЗ рд╣реЛрддреЗ. рд╕реЗрд╡рд╛ рдЬрд╛рд│реА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢ рд╣рд╛ рдЖрд╣реЗ рдХреА рдЖрдореНрд╣рд╛рд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрддрд░рд╛рд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддрд╛ рдЖрдгрд┐ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддреЗрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рд╕реЗрд╡рд╛ рдЬрд╛рд│реА рдкреВрд░реНрд╡реА рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ рд╡реНрдпрддреНрдпрдп рдЖрдгрдгрд╛рд▒реНрдпрд╛ рднрд╛рд░рд╛рдВрдЪрд╛ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рд╕рд╛рдордирд╛ рдХрд░рддреЗ.
рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░рдЪреНрдпрд╛ рдХреЗрдВрджреНрд░рд╕реНрдерд╛рдиреА рдПрдХ рд╡рд░реНрдХрд░ рдиреЛрдб рдЖрд╣реЗ, рдЬреЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢ рдиреЛрдб рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЛ. рд╡рд░реНрдХрд░ рдиреЛрдб рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд╡рд░ рд╕реНрдЯреЕрдЯрд┐рдХрд▓реА рдХрд┐рдВрд╡рд╛ REST API рджреНрд╡рд╛рд░реЗ рдбрд╛рдпрдиреЕрдорд┐рдХрд▓реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рд░рд┐рдЧреНрд░реЗрд╢рди рдЪрд╛рдЪрдгреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд╡рд░реНрдХрдлреНрд▓реЛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рд╡рд░реНрдХрд░ рдиреЛрдбреНрд╕рдЪреЗ рдбрд╛рдпрдиреЕрдорд┐рдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡рд╛рдкрд░рддреЛ.
рдЕрд╢рд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпреЗрдереЗ рдЖрд╣реЗ:
- рдЖрдореНрд╣реА 10 рд╕рд░реНрд╡реНрд╣рд░ рд▓рд╛рдБрдЪ рдХрд░рддреЛ
bar
рд╕реЗрд╡рд╛ рдЬреА рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрддреЗ200/OK
100 ms рдирдВрддрд░ - рдЖрдореНрд╣реА 10 рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдБрдЪ рдХрд░рддреЛ - рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж 100 рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рддрд╛рдд
bar
. - рдкреНрд░рддреНрдпреЗрдХ 10 рд╕реЗрдХрдВрджрд╛рдд рдЖрдореНрд╣реА 1 рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рдореЙрдирд┐рдЯрд░ рддреНрд░реБрдЯреА рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ
5xx
рдХреНрд▓рд╛рдпрдВрдЯ рд╡рд░.
рд╡рд░реНрдХрдлреНрд▓реЛрдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА, рдЖрдореНрд╣реА рд▓реЙрдЧ рдЖрдгрд┐ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рддрдкрд╛рд╕рддреЛ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдЙрддреНрддреАрд░реНрдг рдЭрд╛рд▓реА рдХреА рдирд╛рд╣реА рддреЗ рддрдкрд╛рд╕рддреЛ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡рд╛ рдЬрд╛рд│реАрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рдмрджреНрджрд▓ рд╢рд┐рдХрддреЛ рдЖрдгрд┐ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддреЗрдмрджреНрджрд▓рдЪреНрдпрд╛ рдЖрдордЪреНрдпрд╛ рдЧреГрд╣рд┐рддрдХрд╛рдВрдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд░реАрдЧреНрд░реЗрд╢рди рдЪрд╛рдЪрдгреА рдЪрд╛рд▓рд╡рддреЛ.
(рдЯреАрдк: рдЖрдореНрд╣реА Istio рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдУрдкрди рд╕реЛрд░реНрд╕рд┐рдВрдЧрдмрджреНрджрд▓ рд╡рд┐рдЪрд╛рд░ рдХрд░рдд рдЖрд╣реЛрдд, рдкрд░рдВрддреБ рдЕрджреНрдпрд╛рдк рддрд╕реЗ рдХрд░рдгреНрдпрд╛рд╕ рддрдпрд╛рд░ рдирд╛рд╣реА.)
рд╕реЗрд╡рд╛ рдЬрд╛рд│реА рдмреЗрдВрдЪрдорд╛рд░реНрдХрд╕рд╛рдареА Istio рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░
рдЖрдореНрд╣реА рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░рдЪреЗ рдЕрдиреЗрдХ рдХрд╛рд░реНрдпрд░рдд рдиреЛрдбреНрд╕ рд╕реЗрдЯ рдХреЗрд▓реЗ:
irs-client-loadgen
: 3 рдкреНрд░рддрд┐рдХреГрддреА рдЬреЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж 100 рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рддрд╛рддirs-client
.irs-client
: 3 рдкреНрд░рддрд┐рдХреГрддреА рдЬреНрдпрд╛рдВрдирд╛ рд╡рд┐рдирдВрддреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ, 100ms рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рд╛ рдЖрдгрд┐ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рд╛irs-server
.irs-server
: 3 рдкреНрд░рддрд┐рдХреГрддреА рдЬреНрдпрд╛ рдкрд░рдд рдХрд░рддрд╛рдд200/OK
100 ms рдирдВрддрд░
рдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣, рдЖрдореНрд╣реА 9 рдЕрдВрддреНрдпрдмрд┐рдВрджреВрдВрдордзреАрд▓ рд╕реНрдерд┐рд░ рд░рд╣рджрд╛рд░реА рдкреНрд░рд╡рд╛рд╣ рдореЛрдЬреВ рд╢рдХрддреЛ. рдордзреНрдпреЗ рд╕рд╛рдЗрдбрдХрд╛рд░ irs-client-loadgen
╨╕ irs-server
рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж 100 рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рд╛, рдЖрдгрд┐ irs-client
- 200 (рдЗрдирдХрдорд┐рдВрдЧ рдЖрдгрд┐ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ).
рдЖрдореНрд╣реА рдорд╛рдзреНрдпрдорд╛рддреВрди рд╕рдВрд╕рд╛рдзрди рд╡рд╛рдкрд░ рдЯреНрд░реЕрдХ
рдирд┐рдХрд╛рд▓
рдирд┐рдпрдВрддреНрд░рдг рдкреЕрдиреЗрд▓
рдкреНрд░рдердо, рдЖрдореНрд╣реА CPU рд╡рд╛рдкрд░ рддрдкрд╛рд╕рд▓рд╛.
рд▓рд┐рдВрдХрд░реНрдб рдХрдВрдЯреНрд░реЛрд▓ рдкреЕрдирд▓ ~22 рдорд┐рд▓реАрдХреЛрд░
Istio рдирд┐рдпрдВрддреНрд░рдг рдкреЕрдиреЗрд▓: ~750 рдорд┐рд▓реАрдХреЛрд░
Istio рдирд┐рдпрдВрддреНрд░рдг рдкреЕрдиреЗрд▓ рдЕрдВрджрд╛рдЬреЗ рд╡рд╛рдкрд░рддреЗ 35 рдкрдЯ рдЕрдзрд┐рдХ CPU рд╕рдВрд╕рд╛рдзрдиреЗLinkerd рдкреЗрдХреНрд╖рд╛. рдЕрд░реНрдерд╛рдд, рд╕рд░реНрд╡рдХрд╛рд╣реА рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЖрдгрд┐ istio-telemetry рдпреЗрдереЗ рднрд░рдкреВрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рддрд╛рдд (рдХрд╛рд╣реА рдлрдВрдХреНрд╢рдиреНрд╕ рдЕрдХреНрд╖рдо рдХрд░реВрди рддреЗ рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ). рдЖрдореНрд╣реА рд╣рд╛ рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реНрдпрд╛рд╕, рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдЬреВрдирд╣реА 100 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдорд┐рд▓рд┐рдХреЛрдЕрд░ рдорд┐рд│рддреАрд▓, рдореНрд╣рдгрдЬреЗрдЪ 4 рдкрдЯ рдЬрд╛рд╕реНрддLinkerd рдкреЗрдХреНрд╖рд╛.
рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА
рддреНрдпрд╛рдирдВрддрд░ рдЖрдореНрд╣реА рдкреНрд░реЙрдХреНрд╕реАрдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдЪреА рдЪрд╛рдЪрдгреА рдШреЗрддрд▓реА. рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрд╢реА рдПрдХ рд░реЗрд╖реАрдп рд╕рдВрдмрдВрдз рдЕрд╕рд╛рд╡рд╛, рдкрд░рдВрддреБ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдбрдХрд╛рд░рд╕рд╛рдареА рдХрд╛рд╣реА рдУрд╡реНрд╣рд░рд╣реЗрдб рдЖрд╣реЗ рдЬреЗ рд╡рдХреНрд░ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ.
рд▓рд┐рдВрдХрд░реНрдб: рдЖрдпрдЖрд░рдПрд╕-рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА ~100 рдорд┐рд▓рд┐рдХреЛрдЕрд░, рдЖрдпрдЖрд░рдПрд╕-рдХреНрд▓рд╛рдпрдВрдЯ-рд▓реЛрдбрдЬрдирд╕рд╛рдареА ~50 рдорд┐рд▓рд┐рдХреЛрдЕрд░
рдкрд░рд┐рдгрд╛рдо рддрд╛рд░реНрдХрд┐рдХ рджрд┐рд╕рддрд╛рдд, рдХрд╛рд░рдг рдХреНрд▓рд╛рдпрдВрдЯ рдкреНрд░реЙрдХреНрд╕реАрд▓рд╛ рд▓реЛрдбрдЬрди рдкреНрд░реЙрдХреНрд╕реАрдкреЗрдХреНрд╖рд╛ рджреБрдкреНрдкрдЯ рдЯреНрд░реЕрдлрд┐рдХ рдорд┐рд│рддреЗ: рд▓реЛрдбрдЬрдирдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рд╡рд┐рдирдВрддреАрд╕рд╛рдареА, рдХреНрд▓рд╛рдпрдВрдЯрдХрдбреЗ рдПрдХ рдЗрдирдХрдорд┐рдВрдЧ рдЖрдгрд┐ рдПрдХ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЕрд╕рддреЗ.
Istio/рджреВрдд: irs-рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА ~155 рдорд┐рд▓рд┐рдХреЛрдЕрд░, ~75 рдорд┐рд▓рд┐рдХреЛрдЕрд░ irs-рдХреНрд▓рд╛рдпрдВрдЯ-рд▓реЛрдбрдЬрдирд╕рд╛рдареА
рдЖрдореНрд╣рд╛рд▓рд╛ Istio sidecars рд╕рд╛рдареА рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджрд┐рд╕рдд рдЖрд╣реЗрдд.
рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, Istio/Envoy рдкреНрд░реЙрдХреНрд╕реА рд╡рд╛рдкрд░рддрд╛рдд рдЕрдВрджрд╛рдЬреЗ 50% рдЕрдзрд┐рдХ CPU рд╕рдВрд╕рд╛рдзрдиреЗLinkerd рдкреЗрдХреНрд╖рд╛.
рдЖрдореНрд╣реА рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрд▓рд╛ рд╕рдорд╛рди рдпреЛрдЬрдирд╛ рдкрд╛рд╣рддреЛ:
рд▓рд┐рдВрдХрд░реНрдб: irs-рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА ~50 рдорд┐рд▓реАрдХреЛрд░
Istio/рджреВрдд: irs-рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА ~80 рдорд┐рд▓реАрдХреЛрдЕрд░
рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ, рд╕рд╛рдЗрдбрдХрд╛рд░ Istio/Envoy рд╡рд╛рдкрд░рддрд╛рдд рдЕрдВрджрд╛рдЬреЗ 60% рдЕрдзрд┐рдХ CPU рд╕рдВрд╕рд╛рдзрдиреЗLinkerd рдкреЗрдХреНрд╖рд╛.
рдирд┐рд╖реНрдХрд░реНрд╖
Istio Envoy рдкреНрд░реЙрдХреНрд╕реА рдЖрдордЪреНрдпрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рд╡рд░реНрдХрд▓реЛрдбрд╡рд░ Linkerd рдкреЗрдХреНрд╖рд╛ 50+% рдЕрдзрд┐рдХ CPU рд╡рд╛рдкрд░рддреЗ. Linkerd рдирд┐рдпрдВрддреНрд░рдг рдкреЕрдиреЗрд▓ Istio рдкреЗрдХреНрд╖рд╛ рдЦреВрдкрдЪ рдХрдореА рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рддреЗ, рд╡рд┐рд╢реЗрд╖рдд: рдореБрдЦреНрдп рдШрдЯрдХрд╛рдВрд╕рд╛рдареА.
рд╣реЗ рдЦрд░реНрдЪ рдХрд╕реЗ рдХрдореА рдХрд░рддрд╛ рдпреЗрддреАрд▓ рдпрд╛рд╡рд░ рдЖрдореНрд╣реА рдЕрдЬреВрдирд╣реА рд╡рд┐рдЪрд╛рд░ рдХрд░рдд рдЖрд╣реЛрдд. рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рдХрд▓реНрдкрдирд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рдХреГрдкрдпрд╛ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рд╛!
рд╕реНрддреНрд░реЛрдд: www.habr.com