Whakataki
Kei roto tatou
В
Ma te Istio 1.1, ka pau te takawaenga tata ki te 0,6 vCPUs (matua mariko) mo ia 1000 tono mo ia hekona.
Mo te rohe tuatahi i roto i te mata o te ratonga (e rua nga takawaenga i ia taha o te hononga), ka 2 nga matua mo te takawaenga, mo te tere kotahi miriona tono mo ia hekona. E ai ki te tatauranga utu a Google, ka tata ki te $1200/marama/matua mo te whirihoranga. n1-standard-64
, ara, ko tenei rohe anake ka nui atu i te 50 mano taara ia marama mo te 1 miriona tono mo ia hekona.
Ivan Sim (
Ko te ahua, ko nga uara-istio-test.yaml ka tino whakanui i nga tono PTM. Mena kua tika taku mahi pangarau, me tata ki te 24 nga waahanga CPU mo te paewhiri mana me te 0,5 PTM mo ia takawaenga. Kaore au i te nui. Ka tukuna ano e ahau nga whakamatautau ka tohatohahia etahi atu rauemi ki ahau.
I pirangi au ki te kite i te ahua o te mahi a Istio ki tetahi atu mahanga ratonga puna tuwhera:
Te whakaurunga mata ratonga
Tuatahi, i whakauruhia e ahau ki roto i te kohinga
$ 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!
I whakamahia e ahau a SuperGloo na te mea ka ngawari ake te tarai i te kupenga ratonga. Kaore au i mahi nui. Kaore matou e whakamahi i te SuperGloo i roto i nga mahi hanga, engari he pai mo tera mahi. Me whakamahi au i nga whakahau e rua mo ia mata ratonga. I whakamahia e ahau nga tautau e rua mo te wehe - kotahi mo Istio me Linkerd.
I whakahaerehia te whakamatautau i runga i te Google Kubernetes Engine. I whakamahia e ahau nga Kubernetes 1.12.7-gke.7
me te poka wai node n1-standard-4
me te whakatauine node aunoa (te 4 iti rawa, te 16 teitei).
Na ka whakauruhia e ahau nga mata ratonga e rua mai i te raina whakahau.
Hononga Tuatahi:
$ 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 |
+---------+--------------+---------+---------------------------+
Katahi a 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 |
+---------+------------+---------+---------------------------+
He torutoru meneti te roa o te tukinga, katahi ka tau nga paewhiri mana.
(Tuhipoka: Ka tautoko noa a SuperGloo i a Istio 1.0.x mo tenei wa. I tukuna ano e ahau te whakamatautau me Istio 1.1.3, engari kaore i kitea he rereke rereke.)
Te whakatu Istio Tuku Aunoa
Hei whakauru i a Istio te Kaihoko taha, ka whakamahia e matou te injector sidecar − MutatingAdmissionWebhook
. E kore matou e korero i tenei tuhinga. Me kii noa ahau he kaiwhakahaere tenei e aro turuki ana i te urunga o nga putunga hou katoa me te taapiri hihiri i te motuka taha me te initContainer, kei a ia te kawenga mo nga mahi. iptables
.
I tuhia e matou i Shopify ta matou ake kaiwhakahaere uru ki te whakatinana i nga sidecars, engari mo tenei tohu tohu i whakamahia e ahau te kaiwhakahaere e haere mai ana me Istio. Ka werohia e te kaiwhakahaere nga waka taha taunoa ina he pokatata kei te waahi ingoa 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
Te whakatu i te tukunga Linkerd aunoa
Hei whakarite i te whakaurunga taha taha o Linkerd, ka whakamahia e matou nga korero (i taapirihia e au ma te ringa 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 Fault Tolerance Simulator
I hangaia e matou he simulator whakararu i te he e kiia nei ko Istio hei whakamatautau i nga waka motuhake ki te Shopify. I hiahiatia e matou he taputapu ki te hanga i tetahi topology e whakaatu ana i tetahi waahanga motuhake o to maatau kauwhata ratonga, i whirihora hihiri ki te whakatauira i nga taumahatanga mahi.
Ko te hangahanga a Shopify kei raro i nga kawenga taumaha i te wa e hoko ana nga rama. I te wa ano, Shopify
Ko ta matou i hiahia kia whakatauirahia e ta maatau simulator resiliency nga rerenga mahi e rite ana ki nga topologies me nga taumahatanga mahi i raru ai te hangahanga o Shopify i mua. Ko te kaupapa matua o te whakamahi i te mata ratonga ko te hiahia kia pono me te manawanui o te he i te taumata whatunga, a he mea nui ki a maatau kia pai te aro o te mata ratonga ki nga taumahatanga i pakaru nga ratonga i mua.
Kei te ngakau o te simulator whakaahuru he he node kaimahi, e mahi ana hei node mata ratonga. Ka taea te whirihora i te pona kaimahi i te tiimatanga, ma te hihiri ranei ma te REST API. Ka whakamahi matou i te whirihoranga hihiri o nga pona kaimahi ki te hanga rerengamahi i roto i te ahua o nga whakamatautau whakamuri.
Anei tetahi tauira o taua tukanga:
- Ka whakarewahia e matou nga kaitoro 10 hei
bar
ratonga e whakahoki mai ana i te whakautu200/OK
i muri i te 100 ms. - Ka whakarewahia e matou nga kaihoko 10 - ka tukuna e ia 100 tono mo ia hekona
bar
. - Ia 10 hēkona ka tangohia e matou 1 te tūmau me te aro turuki i nga hapa
5xx
i runga i te kiritaki.
I te mutunga o te rerenga mahi, ka tirotirohia e matou nga raarangi me nga inenga ka tirohia mena kua paahitia te whakamatautau. Ma tenei ka ako matou mo te mahi o ta maatau ratonga me te whakahaere i te whakamatautau whakamuri hei whakamatautau i o maatau whakaaro mo te whakaaheitanga he.
(Tuhipoka: Kei te whai whakaaro matou ki te whakatuwhera i te Istio fault tolerance simulator, engari kaore ano kia rite.)
Istio hapa katakí simulator mo te tohu tohu mata ratonga
I whakaturia e matou etahi waahanga mahi o te simulator:
irs-client-loadgen
: 3 nga tauira e tuku 100 tono mo ia hekona mo iairs-client
.irs-client
: 3 nga tauira ka whiwhi i te tono, tatari kia 100ms ka tuku atu te tono kiirs-server
.irs-server
: 3 nga tauira ka hoki mai200/OK
i muri i te 100 ms.
Ma tenei whirihoranga, ka taea e taatau te ine i te rere o nga waka i waenga i nga pito mutunga e 9. Sidecars i roto irs-client-loadgen
и irs-server
whiwhi 100 tono mo ia hekona, a irs-client
— 200 (taumai me te puta).
Ka aroturuki matou i te whakamahinga rauemi
Результаты
Paewhiri whakahaere
Tuatahi, i tirotirohia e matou te kohi CPU.
Paewhiri mana hono ~22 millicore
Paewhiri mana Istio: ~750 millicore
Ko te paewhiri mana Istio e whakamahi tata ana 35 nga wa nui ake nga rauemi CPUnui atu i a Linkerd. Ae ra, kua whakauruhia nga mea katoa ma te taunoa, a ka pau te maha o nga rauemi tukatuka kei konei (ka taea te whakakore ma te whakakore i etahi mahi). Mena ka tangohia e tatou tenei waahanga, ka nui ake i te 100 millicores, ara 4 nga taapiri akenui atu i a Linkerd.
Takawaenga waka taha
I whakamatauria e matou te whakamahinga o te takawaenga. Me noho he hononga raina me te maha o nga tono, engari mo ia motuka taha kei reira etahi o runga ka pa ki te pihi.
Linkerd: ~100 millicores mo irs-kiritaki, ~50 millicores mo irs-client-loadgen
He arorau te ahua o nga hua, na te mea ka whiwhi te takawaenga o te kiritaki e rua te nui ake o te hokohoko mai i te takawaenga utauta: mo ia tono puta mai i te loadgen, kotahi te taumai me te putanga mai.
Istio/Kaiwhakahaere: ~155 millicores mo irs-kiritaki, ~75 millicores mo irs-client-loadgen
Ka kite matou i nga hua rite mo Istio sidecars.
Engari i te nuinga o te waa, ka pau nga kaiwawao a Istio/Envoy tata ki te 50% atu nga rauemi CPUnui atu i a Linkerd.
Ka kite tatou i te kaupapa ano i te taha o te tūmau:
Linkerd: ~50 millicore mo te irs-server
Istio/Kaiwhakahaere: ~80 millicore mo te irs-server
I te taha tūmau, ka pau te sidecar Istio/Envoy tata ki te 60% atu nga rauemi CPUnui atu i a Linkerd.
mutunga
Ko te takawaenga Istio Envoy e pau ana i te 50+% te nui ake o te PTM atu i a Linkerd i runga i a maatau kawenga mahi. He iti ake nga rauemi a te paewhiri mana Linkerd i a Istio, ina koa mo nga waahanga matua.
Kei te whakaaro tonu matou me pehea te whakaiti i enei utu. Mena kei a koe nga whakaaro, tena koa tohatoha!
Source: will.com