ืืืื
ืื ืื ื ืืคื ืื
ะ
ืขื Istio 1.1, ื-proxy ืฆืืจื ื-0,6 vCPUs (ืืืืืช ืืืจืืืืืืืช) ืืื 1000 ืืงืฉืืช ืืฉื ืืื.
ืขืืืจ ืืืืืจ ืืจืืฉืื ืืจืฉืช ืืฉืืจืืช (2 ืคืจืืงืกื ืืื ืฆื ืฉื ืืืืืืจ), ืืืื ืื ื 1200 ืืืืืช ืจืง ืขืืืจ ื-proxy, ืืงืฆื ืฉื ืืืืืื ืืงืฉืืช ืืฉื ืืื. ืืคื ืืืฉืืื ืืขืืืืืช ืฉื ืืืื, ืื ืืกืชืืจ ืืืืืช ื-$40 ืืืืืฉ/ืืืื ืขืืืจ ืชืฆืืจื n1-standard-64
ืืืืืจ, ืืืืืจ ืืื ืืืื ืืขืื ืื ื ืืืชืจ ื-50 ืืืฃ ืืืืจ ืืืืืฉ ืขืืืจ ืืืืืื ืืงืฉืืช ืืฉื ืืื.
ืืืืื ืกืื (
ืืื ืื ืจืื, values-istio-test.yaml ืืืืื ืืจืฆืื ืืช ืืช ืืงืฉืืช ืืืขืื. ืื ืืืฆืขืชื ืืช ืืืืฉืื ื ืืื, ืืชื ืฆืจืื ื-24 ืืืืืช ืืขืื ืขืืืจ ืืื ืืืงืจื ื-0,5 ืืขืื ืขืืืจ ืื ืคืจืืงืกื. ืืื ืื ืื ืื ืืจืื. ืืืืืจ ืขื ืืืืืงืืช ืืืฉืจ ืืืงืฆื ืื ืืฉืืืื ื ืืกืคืื.
ืจืฆืืชื ืืจืืืช ืืขืฆืื ืขื ืืื ืืืืฆืืขืื ืฉื 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!
ืืฉืชืืฉืชื ื-SuperGloo ืื ืื ืืืคื ืืช ืืืชืืื ืฉื ืจืฉืช ืืฉืืจืืช ืืืจืื ืืืชืจ ืงืื. ืื ืืืืชื ืฆืจืื ืืขืฉืืช ืืจืื. ืื ืื ื ืื ืืฉืชืืฉืื ื-SuperGloo ืืืืฆืืจ, ืืื ืืื ืืืืืืื ืืืฉืืื ืืื. ืืืืชื ืฆืจืื ืืืฉืชืืฉ ืืืฉ ืืืื ืคืงืืืืช ืขืืืจ ืื ืจืฉืช ืฉืืจืืช. ืืฉืชืืฉืชื ืืฉื ื ืืฉืืืืืช ืืืืืื - ืืื ืื ืืื ืขืืืจ 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 |
+---------+--------------+---------+---------------------------+
ืืื ืืืกืืื:
$ 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 ืืืชืงืื ืืช ืืงืจืื ืืฆืืื Envoy, ืื ื ืืฉืชืืฉืื ืืืืจืง ืืงืจืื ืืฆืืื - 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
ืืื ืืืืืืจ ืืืืขื ืฆืืืืช ืฉื 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
ืื ืื ื ืกืืืืืืืจ ืกืืืื ืืช ืชืงืืืช ืืฉื Istio ืืื ืืืชื ืกืืช ืืชื ืืขื ืืืืืืืช ื- Shopify. ืืืื ื ืฆืจืืืื ืืื ืืืฆืืจืช ืืืคืืืืืื ืืืชืืืช ืืืฉืืช ืฉืชืืืฆื ืืืง ืืกืืื ืืืจืฃ ืืฉืืจืืช ืฉืื ื, ืืืืืืจ ืืืืคื ืืื ืื ืืืืื ืฉื ืขืืืกื ืขืืืื ืกืคืฆืืคืืื.
ืืชืฉืชืืช ืฉื Shopify ื ืืฆืืช ืชืืช ืขืืืก ืืื ืืืืื ืืืืจืืช ืืืืง. ืืืงืืื, Shopify
ืจืฆืื ื ืฉืกืืืืืืืจ ืืืืกื ืฉืื ื ืืืืื ืืจืืืืช ืขืืืื ืืชืืืืืช ืืช ืืืืคืืืืืืืช ืืขืืืกื ืืขืืืื ืฉืืืจืืขื ืืช ืืชืฉืชืืช ืฉื Shopify ืืขืืจ. ืืืืจื ืืขืืงืจืืช ืฉื ืฉืืืืฉ ืืจืฉืช ืฉืืจืืช ืืื ืฉืื ื ืืงืืงืื ืืืืื ืืช ืืกืืืื ืืช ืชืงืืืช ืืจืืช ืืจืฉืช, ืืืฉืื ืื ื ืฉืจืฉืช ืืฉืืจืืช ืชืชืืืื ืืืขืืืืช ืขื ืขืืืกืื ืฉืืขืืจ ืฉืืืฉื ืฉืืจืืชืื.
ืืืืื ืฉื ืกืืืืืืืจ ืกืืืื ืืช ืชืงืืืช ื ืืฆื ืฆืืืช ืขืืื, ืืคืืขื ืืฆืืืช ืจืฉืช ืฉืืจืืช. ื ืืชื ืืืืืืจ ืืช ืฆืืืช ืืขืืื ืืืืคื ืกืืื ืืขืช ืืืคืขืื ืื ืืืืคื ืืื ืื ืืืืฆืขืืช REST API. ืื ื ืืฉืชืืฉืื ืืชืฆืืจื ืืื ืืืช ืฉื ืฆืืชื ืขืืืืื ืืื ืืืฆืืจ ืืจืืืืช ืขืืืื ืืฆืืจื ืฉื ืืืื ื ืจืืจืกืื.
ืื ื ืืืืื ืืชืืืื ืืื:
- ืื ื ืืฉืืงืื 10 ืฉืจืชืื ื
bar
ืฉืืจืืช ืฉืืืืืจ ืชืืืื200/OK
ืืืืจ 100 ืืืคืืืช ืืฉื ืืื - ืื ื ืืฉืืงืื 10 ืืงืืืืช - ืื ืืื ืฉืืื ืืืืื 100 ืืงืฉืืช ืืฉื ืืื
bar
. - ืื 10 ืฉื ืืืช ืื ื ืืกืืจืื ืฉืจืช ืืื ืืื ืืจืื ืฉืืืืืช
5xx
ืขื ืืืงืื.
ืืกืืื ืชืืืื ืืขืืืื ืื ื ืืืื ืื ืืช ืืืืื ืื ืืืืืืื ืืืืืงืื ืืื ืืืืื ืขืืจ. ืืืจื ืื ืื ื ืืืืืื ืขื ืืืืฆืืขืื ืฉื ืจืฉืช ืืฉืืจืืช ืฉืื ื ืืืจืืฆืื ืืืื ืจืืจืกืื ืืื ืืืืื ืืช ืืื ืืืช ืฉืื ื ืืืื ืกืืืื ืืช ืชืงืืืช.
(ืืขืจื: ืื ืื ื ืืืฉืืื ืขื ืืงืืจืืช ืคืชืืืื ืืกืืืืืืืจ ืกืืืื ืืช ืืชืงืืืช ืฉื Istio, ืืื ืขืืืื ืื ืืืื ืื ืืขืฉืืช ืืืช.)
ืกืืืืืืืจ ืกืืืื ืืช ืชืงืืืช ืฉื Istio ืืืืื ืจืฉืช ืฉืืจืืช
ืืืืจื ื ืืกืคืจ ืฆืืชืื ืขืืืื ืฉื ืืกืืืืืืืจ:
irs-client-loadgen
: 3 ืืขืชืงืื ืฉืฉืืืืื 100 ืืงืฉืืช ืืฉื ืืื ืืืirs-client
.irs-client
: 3 ืืขืชืงืื ืฉืืงืืืื ืืช ืืืงืฉื, ืืืชืื ืื 100ms ืืืขืืืจืื ืืช ืืืงืฉื ืirs-server
.irs-server
: 3 ืืขืชืงืื ืฉืืืืจืื200/OK
ืืืืจ 100 ืืืคืืืช ืืฉื ืืื
ืขื ืชืฆืืจื ืื, ืื ื ืืืืืื ืืืืื ืืจืืืช ืชื ืืขื ืืฆืืื ืืื 9 ื ืงืืืืช ืงืฆื. ืงืจืื ืืช ืฆื ืคื ืืื irs-client-loadgen
ะธ irs-server
ืืงืื 100 ืืงืฉืืช ืืฉื ืืื, ืืื irs-client
- 200 (ื ืื ืกืื ืืืืฆืืื).
ืื ื ืขืืงืืื ืืืจ ืืฉืืืืฉ ืืืฉืืืื ืืืืฆืขืืช
ืืืฆืืื
ืืืืืช ืืงืจื
ืจืืฉืืช, ืืืงื ื ืืช ืฆืจืืืช ืืืขืื.
ืืื ืืงืจื Linkerd ~22 ืืืื ืืืืืช
ืืื ืืืงืจื ืฉื Istio: ~750 ืืืืืืืงืืจ
ืืื ืืืงืจื ืฉื Istio ืืฉืชืืฉ ืืขืจื ืคื 35 ืืฉืืื ืืขืืืืืฉืจ ืืื ืงืจื. ืืืืื, ืืื ืืืชืงื ืืืจืืจืช ืืืื, ืื-istio-telemetry ืฆืืจืืช ืืื ืืฉืืื ืืขืื ืจืืื (ื ืืชื ืื ืืจื ืืืชื ืขื ืืื ืืฉืืชืช ืคืื ืงืฆืืืช ืืกืืืืืช). ืื ื ืกืืจ ืืช ืืจืืื ืืื, ืขืืืื ื ืงืื ืืืชืจ ื-100 ืืืืืงืืจืื, ืืืืืจ 4 ืคืขืืื ื ืืกืคืืชืืืฉืจ ืืื ืงืจื.
Proxy Sidecar
ืืืืจ ืืื ืืืงื ื ืืช ืืฉืืืืฉ ืืคืจืืงืกื. ืฆืจืื ืืืืืช ืงืฉืจ ืืื ืืืจื ืขื ืืกืคืจ ืืืงืฉืืช, ืืื ืขืืืจ ืื ืฆืืื ืืฉ ืชืงืืจื ืืืฉืื ืฉืืฉืคืืขื ืขื ืืขืงืืื.
Linkerd: ~100 ืืืืืืืืืืช ืขืืืจ irs-client, ~50 ืืืืืืืืืืช ืขืืืจ irs-client-loadgen
ืืชืืฆืืืช ื ืจืืืช ืืืืื ืืืช, ืืืืืื ืฉืคืจืืงืกื ืืืงืื ืืงืื ืชืขืืืจื ืืคืืื ืืื ืฉื ืคืจืืงืกื ื-loadgen: ืขืืืจ ืื ืืงืฉื ืืืฆืืช ื-loadgen, ืืืงืื ืืฉ ืืื ื ืื ืก ืืืื ืืืฆื.
Istio/Envoy: ~155 ืืืืืืืืืืช ืขืืืจ irs-client, ~75 ืืืืืืืืืืช ืขืืืจ irs-client-loadgen
ืื ื ืจืืืื ืชืืฆืืืช ืืืืืช ืขืืืจ ืืืื ืืืช ืฆื ืฉื Istio.
ืืื ืืืืคื ืืืื, ืคืจืืงืกื Istio/Envoy ืฆืืจืืื ื-50% ืืืชืจ ืืฉืืื ืืขืืืืืฉืจ ืืื ืงืจื.
ืื ื ืจืืืื ืืช ืืืชื ืกืืืื ืืฆื ืืฉืจืช:
Linkerd: ~50 ืืืื-ืงืืจืืช ืขืืืจ ืฉืจืช irs
Istio/Envoy: ~80 ืืืื-ืงืืจืืช ืขืืืจ irs-server
ืืฆื ืืฉืจืช, Sidecar Istio/Envoy ืฆืืจื ื-60% ืืืชืจ ืืฉืืื ืืขืืืืืฉืจ ืืื ืงืจื.
ืืกืงื ื
ื-proxy ืฉื Istio Envoy ืฆืืจื 50+% ืืืชืจ ืืขืื ื-Linkerd ืืขืืืก ืืขืืืื ืืืืืื ืฉืื ื. ืืื ืืืงืจื ืฉื Linkerd ืฆืืจื ืืจืื ืคืืืช ืืฉืืืื ืืืฉืจ Istio, ืืืืืื ืขืืืจ ืจืืืื ืืืืื.
ืื ืื ื ืขืืืื ืืืฉืืื ืืืฆื ืืืคืืืช ืืช ืืขืืืืืช ืืืื. ืื ืืฉ ืืื ืจืขืืื ืืช, ืื ื ืฉืชืคื!
ืืงืืจ: www.habr.com