Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes
E kōkua kēia ʻatikala iā ʻoe e hoʻomaopopo i ke ʻano o ka hana ʻana o ke kaupaona ʻana ma nā Kubernetes, ka mea e hana ana i ka wā e hoʻonui ai i nā pilina lōʻihi, a no ke aha ʻoe e noʻonoʻo ai i ke kaulike ʻaoʻao o ka mea kūʻai aku inā ʻoe e hoʻohana i ka HTTP/2, gRPC, RSockets, AMQP, a i ʻole nā ​​protocol lōʻihi. . 

He wahi liʻiliʻi e pili ana i ka hoʻohele ʻia ʻana o ke kaʻa ma Kubernetes 

Hāʻawi ʻo Kubernetes i ʻelua abstractions kūpono no ka lawe ʻana i nā noi: Nā lawelawe a me nā Deployments.

Hōʻike nā hoʻolālā pehea a me ka nui o nā kope o kāu noi e holo i kēlā me kēia manawa. Hoʻonohonoho ʻia kēlā me kēia noi ma ke ʻano he Pod a hāʻawi ʻia i kahi leka uila IP.

Ua like nā lawelawe i ka hana kaulike me ka load balancer. Hoʻolālā ʻia lākou e puʻunaue i nā kaʻa ma nā pods he nui.

E ʻike kākou i kona ʻano.

  1. Ma ke kiʻikuhi ma lalo nei hiki iā ʻoe ke ʻike i ʻekolu mau manawa o ka noi hoʻokahi a me kahi mea kaulike ukana:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  2. Ua kapa ʻia ka mea kau kaulike he Service a ua hāʻawi ʻia i kahi leka uila IP. Hoʻouna hou ʻia kēlā me kēia noi e komo mai ana i kekahi o nā pods:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  3. Hoʻoholo ka hiʻohiʻona hoʻolālā i ka helu o nā manawa o ka noi. ʻAʻole ʻoe e hoʻonui pololei ma lalo o:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  4. Hāʻawi ʻia kēlā me kēia pod i kāna helu IP ponoʻī:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

Pono e noʻonoʻo i nā lawelawe ma ke ʻano he hōʻuluʻulu o nā helu IP. I kēlā me kēia manawa ke komo ʻoe i ka lawelawe, koho ʻia kekahi o nā helu IP mai ka papa inoa a hoʻohana ʻia e like me ka helu wahi.

Ua like me keia.

  1. Loaʻa kahi noi curl 10.96.45.152 i ka lawelawe:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  2. Koho ka lawelawe i hoʻokahi o ʻekolu mau wahi helu pod ma ke ʻano he wahi:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  3. Hoʻihoʻi ʻia ke kaʻa i kahi pod kikoʻī:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

Inā loaʻa kāu noi i kahi frontend a me kahi hope, a laila e loaʻa iā ʻoe kahi lawelawe a me kahi hoʻolālā no kēlā me kēia.

Ke noi ka ʻaoʻao mua i ka ʻaoʻao hope, ʻaʻole pono e ʻike pono i ka nui o nā pods e lawelawe ʻia e ka ʻaoʻao hope: hoʻokahi, ʻumi, a i ʻole haneli.

Eia kekahi, ʻaʻole ʻike ka frontend i kekahi mea e pili ana i nā helu o nā pods e lawelawe ana i ka hope.

Ke noi ka frontend i ka hope, hoʻohana ia i ka IP address o ka lawelawe hope, ʻaʻole ia e loli.

Penei ke ʻano.

  1. Ma lalo o 1 e noi i ka ʻāpana hope o loko. Ma kahi o ke koho ʻana i kahi kikoʻī no ka backend, noi ia i ka lawelawe:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  2. Koho ka lawelawe i kekahi o nā pods hope e like me ka helu wahi e hele ai:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  3. Hele ka huakaʻi mai Pod 1 a i Pod 5, i koho ʻia e ka lawelawe:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  4. Ma lalo o 1 ʻaʻole maopopo i ka nui o nā pods e like me lalo o 5 i hūnā ʻia ma hope o ka lawelawe:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

Akā, pehea ka pololei o ka lawelawe ʻana i nā noi? Me he mea lā ua hoʻohana ʻia ke kaulike round-robin? E noʻonoʻo kākou. 

Ke kaulike ma nā lawelawe Kubernetes

ʻAʻole loaʻa nā lawelawe Kubernetes. ʻAʻohe kaʻina hana no ka lawelawe i hāʻawi ʻia i kahi helu IP a me ke awa.

Hiki iā ʻoe ke hōʻoia i kēia ma ke komo ʻana i loko o kekahi node i loko o ka pūʻulu a holo i ke kauoha netstat -ntlp.

ʻAʻole hiki iā ʻoe ke ʻike i ka helu IP i hāʻawi ʻia i ka lawelawe.

Aia ka IP address o ka lawelawe ma ka papa mana, ma ka mea hoʻoponopono, a hoʻopaʻa ʻia i loko o ka waihona - etcd. Hoʻohana ʻia ka helu helu like e kekahi mea - kube-proxy.
Loaʻa iā Kube-proxy kahi papa inoa o nā helu IP no nā lawelawe āpau a hana i kahi pūʻulu o nā lula iptables ma kēlā me kēia node o ka hui.

'Ōlelo kēia mau lula: "Inā ʻike mākou i ka IP address o ka lawelawe, pono mākou e hoʻololi i ka helu wahi o ka noi a hoʻouna aku i kekahi o nā pods."

Hoʻohana ʻia ka helu IP lawelawe ma ke ʻano he helu komo a ʻaʻole lawelawe ʻia e kekahi kaʻina hana e hoʻolohe ana i kēlā IP IP a me ke awa.

E nānā kākou i kēia

  1. E noʻonoʻo i kahi pūʻulu o ʻekolu node. Loaʻa i kēlā me kēia node nā pods:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  2. ʻO nā pahu i paʻi ʻia i pena ʻia he ʻāpana o ka lawelawe. No ka mea ʻaʻole i loaʻa ka lawelawe ma ke ʻano he kaʻina hana, hōʻike ʻia ia ma ka hina:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  3. Noi ka pod mua i lawelawe a pono e hele i kekahi o nā pods pili:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  4. Akā,ʻaʻole i loaʻa ka lawelawe,ʻaʻole i loaʻa ke kaʻina hana. Pehea e hana ai?

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  5. Ma mua o ka haʻalele ʻana o ka noi i ka node, hele ia i nā lula iptables:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  6. Ua ʻike nā lula iptables ʻaʻole i loaʻa ka lawelawe a hoʻololi i kāna IP address me kekahi o nā IP address o nā pods e pili ana i kēlā lawelawe:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  7. Loaʻa i ka noi kahi helu IP kūpono e like me ka helu wahi e hele ai a ua hana maʻamau:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  8. Ma muli o ka topology pūnaewele, hiki ke noi i ka pod:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

Hiki i nā iptables ke hoʻouka i ke kaulike?

ʻAʻole, hoʻohana ʻia nā iptables no ka kānana ʻana a ʻaʻole i hoʻolālā ʻia no ke kaulike.

Eia naʻe, hiki ke kākau i nā lula e hana like pseudo-balancer.

A ʻo kēia ka mea i hoʻokō ʻia ma Kubernetes.

Inā loaʻa iā ʻoe ʻekolu pods, e kākau ʻo kube-proxy i kēia mau lula:

  1. E koho i ka sub mua me 33% paha, a i ʻole e hele i ka lula aʻe.
  2. E koho i ka lua me ka likelika o 50%, i ole ia, e hele i ka rula aʻe.
  3. E koho i ke kolu ma lalo.

Loaʻa kēia ʻōnaehana i kēlā me kēia pod i koho ʻia me ka hiki ke 33%.

Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

A ʻaʻohe mea hōʻoia e koho ʻia ʻo Pod 2 ma hope o Pod 1.

i hoʻopuka: hoʻohana ʻo iptables i ka module helu helu me ka puʻunaue like ʻole. No laila, hoʻokumu ʻia ka algorithm balancing ma ke koho maʻamau.

I kēia manawa ua hoʻomaopopo ʻoe i ka hana ʻana o nā lawelawe, e nānā kāua i nā hiʻohiʻona lawelawe hoihoi.

ʻAʻole paʻamau nā pilina lōʻihi ma Kubernetes

Hāʻawi ʻia kēlā me kēia noi HTTP mai ka ʻaoʻao mua a i ka hope e kahi pilina TCP ʻokoʻa, i wehe ʻia a pani ʻia.

Inā hoʻouna ka frontend i 100 mau noi i kēlā me kēia kekona i ka hope, a laila wehe a pani ʻia nā pilina TCP ʻokoʻa 100.

Hiki iā ʻoe ke hōʻemi i ka manawa kaʻina noi a me ka hoʻouka ʻana ma ka wehe ʻana i kahi pilina TCP a hoʻohana iā ia no nā noi HTTP a pau.

Loaʻa i ka protocol HTTP kahi hiʻohiʻona i kapa ʻia ʻo HTTP keep-alive, a i ʻole ka hoʻohana hou ʻana i ka pilina. I kēia hihia, hoʻohana ʻia kahi pilina TCP e hoʻouna a loaʻa i nā noi HTTP he nui a me nā pane:

Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

ʻAʻole hiki ke hoʻohana ʻia kēia hiʻohiʻona ma ka paʻamau: pono e hoʻonohonoho pono ʻia ke kikowaena a me ka mea kūʻai aku.

He maʻalahi ka hoʻonohonoho ponoʻī a hiki ke loaʻa no ka hapa nui o nā ʻōlelo papahana a me nā kaiapuni.

Eia kekahi mau loulou i nā laʻana ma nā ʻōlelo like ʻole:

He aha ka hopena inā hoʻohana mākou i ka mālama ola ma kahi lawelawe Kubernetes?
E noʻonoʻo kākou ʻo ka frontend a me ka backend e kākoʻo i ke ola-ola.

Loaʻa iā mākou hoʻokahi kope o ka mua a me ʻekolu kope o ka hope. Hana ka frontend i ka noi mua a wehe i kahi pilina TCP i ka hope. Hiki ke noi i ka lawelawe, ua koho ʻia kekahi o nā pods hope e like me ka helu wahi. Hoʻouna ka hope i kahi pane, a loaʻa i ka frontend.

ʻAʻole like me ke kūlana maʻamau kahi i pani ʻia ai ka pilina TCP ma hope o ka loaʻa ʻana o kahi pane, ua wehe ʻia i kēia manawa no nā noi HTTP hou.

He aha ka hopena inā hoʻouna ka frontend i nā noi hou aku i ka hope?

No ka hoʻouna ʻana i kēia mau noi, e hoʻohana ʻia kahi pilina TCP wehe, e hele nā ​​noi āpau i ka hope like kahi i hele ai ka noi mua.

ʻAʻole pono nā iptables e puʻunaue hou i ke kaʻa?

ʻAʻole ma kēia hihia.

Ke hoʻokumu ʻia kahi pilina TCP, hele ia ma nā lula iptables, e koho i kahi hope kikoʻī kahi e hele ai ke kaʻa.

No ka mea aia nā noi a pau ma kahi pilina TCP i wehe mua ʻia, ʻaʻole kāhea ʻia nā lula iptables.

E ʻike kākou i kona ʻano.

  1. Hoʻouna ka pod mua i kahi noi i ka lawelawe:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  2. Ua ʻike mua ʻoe i ka mea e hiki mai ana. ʻAʻole i loaʻa ka lawelawe, akā aia nā lula iptables e hoʻoponopono i ka noi:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  3. E koho ʻia kekahi o nā pods hope ma ke ʻano he helu wahi:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  4. Hiki ke noi i ka pod. I kēia manawa, e hoʻokumu ʻia kahi pilina TCP mau ma waena o nā pods ʻelua:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  5. ʻO nā noi aʻe mai ka pod mua e hele i ka pilina i hoʻopaʻa ʻia:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

ʻO ka hopena ʻoi aku ka wikiwiki o ka pane ʻana a me ka throughput kiʻekiʻe, akā nalo ʻoe i ka hiki ke hoʻonui i ka hope.

ʻOiai inā loaʻa iā ʻoe ʻelua pods ma ka hope, me ka pilina mau, e hele mau ke kaʻa i kekahi o lākou.

Hiki ke hoʻopaʻa ʻia kēia?

No ka mea ʻaʻole ʻike ʻo Kubernetes i ke kaulike ʻana i nā pilina hoʻomau, hāʻule kēia hana iā ʻoe.

ʻO nā lawelawe he hōʻiliʻili o nā helu IP a me nā awa i kapa ʻia ʻo endpoints.

Hiki i kāu palapala noi ke loaʻa i kahi papa inoa o nā helu hope mai ka lawelawe a hoʻoholo pehea e puʻunaue ai i nā noi ma waena o lākou. Hiki iā ʻoe ke wehe i kahi pilina paʻa i kēlā me kēia pod a me nā noi kaulike ma waena o kēia mau pilina me ka hoʻohana ʻana i ka round-robin.

A i ʻole e noi hou aku nā algorithm kaulike paʻakikī.

ʻO ke code ʻaoʻao o ka mea kūʻai aku ke kuleana no ke kaulike ʻana e hahai i kēia loiloi:

  1. E kiʻi i ka papa inoa o nā helu hope mai ka lawelawe.
  2. E wehe i kahi pilina hoʻomau no kēlā me kēia wahi hope.
  3. Ke koi ʻia kahi noi, e hoʻohana i kekahi o nā pili wehe.
  4. Hoʻololi mau i ka papa inoa o nā helu hope, hana i nā mea hou a i ʻole e pani i nā pilina paʻa kahiko inā loli ka papa inoa.

Penei kona ano.

  1. Ma kahi o ka pod mua e hoʻouna i ka noi i ka lawelawe, hiki iā ʻoe ke kaulike i nā noi ma ka ʻaoʻao o ka mea kūʻai aku:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  2. Pono ʻoe e kākau i ke code e nīnau ana i nā pods i ʻāpana o ka lawelawe:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  3. Ke loaʻa iā ʻoe ka papa inoa, mālama iā ia ma ka ʻaoʻao o ka mea kūʻai aku a hoʻohana iā ia e hoʻopili i nā pods:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

  4. ʻO ʻoe ke kuleana no ka algorithm balancing load:

    Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

I kēia manawa ke kū nei ka nīnau: pili wale anei kēia pilikia iā HTTP mālama ola?

ʻO ka hoʻokau kaulike ʻana o nā mea kūʻai aku

ʻAʻole ʻo HTTP wale nō ka protocol hiki ke hoʻohana i nā pilina TCP mau.

Inā hoʻohana kāu noi i kahi waihona, a laila ʻaʻole wehe ʻia kahi pilina TCP i kēlā me kēia manawa āu e noi ai a kiʻi paha i kahi palapala mai ka waihona. 

Akā, wehe ʻia a hoʻohana ʻia kahi pilina TCP mau i ka waihona.

Inā kau ʻia kāu waihona ma nā Kubernetes a hāʻawi ʻia ke komo ma ke ʻano he lawelawe, a laila e hālāwai ʻoe i nā pilikia like i wehewehe ʻia ma ka pauku mua.

ʻOi aku ka hoʻouka ʻana o kekahi kope waihona ma mua o nā mea ʻē aʻe. ʻAʻole kōkua ʻo Kube-proxy a me Kubernetes i nā pilina kaulike. Pono ʻoe e mālama i ke kaulike o nā nīnau i kāu waihona.

Ma muli o ka waihona āu e hoʻohana ai no ka hoʻopili ʻana i ka waihona, loaʻa paha iā ʻoe nā koho ʻokoʻa no ka hoʻoponopono ʻana i kēia pilikia.

Aia ma lalo kahi hiʻohiʻona o ke komo ʻana i kahi pūʻulu waihona MySQL mai Node.js:

var mysql = require('mysql');
var poolCluster = mysql.createPoolCluster();

var endpoints = /* retrieve endpoints from the Service */

for (var [index, endpoint] of endpoints) {
  poolCluster.add(`mysql-replica-${index}`, endpoint);
}

// Make queries to the clustered MySQL database

Nui nā protocols ʻē aʻe e hoʻohana ana i nā pilina TCP mau loa:

  • WebSockets a me WebSockets paʻa
  • HTTP / 2
  • gRPC
  • RSockets
  • AMQP

Pono ʻoe e kamaʻāina i ka hapa nui o kēia mau protocols.

Akā inā kaulana loa kēia mau protocols, no ke aha i loaʻa ʻole ai kahi hoʻonā kaulike kaulike? No ke aha e hoʻololi ai ka loina o ka mea kūʻai aku? Aia kahi hoʻonā Kubernetes maoli?

Hoʻolālā ʻia ʻo Kube-proxy a me nā iptables e uhi i nā hihia hoʻohana maʻamau i ka wā e kau ai iā Kubernetes. No ka maʻalahi kēia.

Inā ʻoe e hoʻohana nei i kahi lawelawe pūnaewele e hōʻike ana i kahi REST API, ua laki ʻoe - i kēia hihia, ʻaʻole hoʻohana ʻia nā pilina TCP mau loa, hiki iā ʻoe ke hoʻohana i kekahi lawelawe Kubernetes.

Akā ke hoʻomaka ʻoe e hoʻohana i nā pilina TCP mau, pono ʻoe e noʻonoʻo pehea e puʻunaue like ai i ka ukana ma nā ʻaoʻao hope. ʻAʻole i loaʻa i nā Kubernetes nā hoʻonā i hana ʻia no kēia hihia.

Eia nō naʻe, aia kekahi mau koho e hiki ke kōkua.

Ke kaulike ʻana i nā pilina lōʻihi ma Kubernetes

ʻEhā ʻano lawelawe ma Kubernetes:

  1. ClusterIP
  2. NodePort
  3. LoadBalancer
  4. ʻAʻohe poʻomanaʻo

Hoʻohana ʻia nā lawelawe mua ʻekolu ma muli o kahi IP address virtual, i hoʻohana ʻia e kube-proxy e kūkulu i nā lula iptables. Akā ʻo ke kumu kumu o nā lawelawe āpau he lawelawe poʻo ʻole.

ʻAʻohe IP IP i pili i ka lawelawe poʻo ʻole a hāʻawi wale i kahi hana no ka hoʻihoʻi ʻana i kahi papa inoa o nā IP address a me nā awa o nā pods (endpoints) pili me ia.

Hoʻokumu ʻia nā lawelawe āpau ma ka lawelawe poʻo ʻole.

He lawelawe poʻo ʻole ka lawelawe ClusterIP me kekahi mau mea hoʻohui: 

  1. Hāʻawi ka papa hoʻokele iā ia i kahi leka uila IP.
  2. Hoʻopuka ʻo Kube-proxy i nā lula iptables pono.

Ma kēia ala hiki iā ʻoe ke haʻalele i ka kube-proxy a hoʻohana pololei i ka papa inoa o nā hopena i loaʻa mai ka lawelawe poʻo ʻole e hoʻouka i kāu noi.

Akā pehea e hiki ai iā mākou ke hoʻohui i nā loiloi like i nā noi āpau i kau ʻia i loko o ka pūpū?

Inā ua kau ʻia kāu noi, ʻaʻole hiki ʻole kēia hana. Eia naʻe, aia kahi koho ʻē aʻe.

E kōkua ʻo Service Mesh iā ʻoe

Ua ʻike mua paha ʻoe he maʻamau ka hoʻolālā hoʻohālikelike ukana ʻaoʻao.

Ke hoʻomaka ka noi, ʻo ia:

  1. Loaʻa i kahi papa inoa o nā helu IP mai ka lawelawe.
  2. Wehe a mālama i kahi pūnāwai pili.
  3. Hoʻohou i kēlā me kēia manawa i ka pūnāwai ma ka hoʻohui ʻana a i ʻole ka wehe ʻana i nā wahi hopena.

Ke makemake ka palapala noi e noi, ʻo ia:

  1. Koho i kahi pili i loaʻa me ka hoʻohana ʻana i kekahi loiloi (e laʻa me ka round-robin).
  2. Hoʻokō i ka noi.

Hana kēia mau ʻanuʻu no nā WebSockets, gRPC, a me nā pilina AMQP.

Hiki iā ʻoe ke hoʻokaʻawale i kēia loiloi i loko o kahi waihona ʻokoʻa a hoʻohana iā ia i kāu mau noi.

Eia nō naʻe, hiki iā ʻoe ke hoʻohana i nā meshes lawelawe e like me Istio a i ʻole Linkerd ma kahi.

Hoʻonui ka Service Mesh i kāu noi me kahi kaʻina hana e:

  1. Huli 'akomi i nā helu IP lawelawe.
  2. Hoʻāʻo i nā pilina e like me WebSockets a me gRPC.
  3. Hoʻohālikelike i nā noi me ka hoʻohana ʻana i ka protocol kūpono.

Kōkua ʻo Service Mesh i ka hoʻokele ʻana i nā kaʻa i loko o ka pūʻulu, akā ʻoi loa ka waiwai. Ke hoʻohana nei nā koho ʻē aʻe i nā hale waihona puke ʻaoʻao ʻekolu e like me Netflix Ribbon a i ʻole nā ​​​​proxies programmable e like me Envoy.

He aha ka hopena inā e haʻalele ʻoe i nā pilikia kaulike?

Hiki iā ʻoe ke koho ʻaʻole e hoʻohana i ka load balancing a ʻaʻole naʻe e ʻike i nā loli. E nānā kākou i kekahi mau hiʻohiʻona hana.

Inā ʻoi aku kāu mau mea kūʻai aku ma mua o nā kikowaena, ʻaʻole kēia he pilikia nui.

E ʻōlelo kākou he ʻelima mau mea kūʻai aku e pili ana i ʻelua mau kikowaena. ʻOiai inā ʻaʻohe kaulike, e hoʻohana ʻia nā kikowaena ʻelua:

Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

ʻAʻole hiki ke hoʻokaʻawale like ʻia nā pilina: ʻehā paha mau mea kūʻai aku i pili i ka server hoʻokahi, akā aia ka manawa kūpono e hoʻohana ʻia nā kikowaena ʻelua.

ʻO ka mea ʻoi aku ka pilikia ʻo ia ke ʻano kūʻē.

Inā he liʻiliʻi kāu mau mea kūʻai aku a ʻoi aku ka nui o nā kikowaena, hiki ke hoʻohana ʻole ʻia kāu mau kumuwaiwai a ʻike ʻia kahi bottleneck.

E ʻōlelo kākou ʻelua mau mea kūʻai aku a ʻelima mau kikowaena. Ma ka hihia maikaʻi loa, ʻelua mau pilina paʻa i ʻelua mau kikowaena mai ka ʻelima.

E hoʻohana ʻole nā ​​kikowaena i koe:

Hoʻopaʻa ʻana a hoʻonui i nā pilina lōʻihi ma Kubernetes

Inā ʻaʻole hiki i kēia mau kikowaena ʻelua ke mālama i nā noi o ka mea kūʻai aku, ʻaʻole kōkua ka scaling horizontal.

hopena

Hoʻolālā ʻia nā lawelawe Kubernetes e hana ma ka hapa nui o nā hiʻohiʻona noiʻi pūnaewele maʻamau.

Eia nō naʻe, ke hoʻomaka ʻoe e hana me nā protocols noi e hoʻohana i nā pilina TCP mau, e like me nā waihona, gRPC a i ʻole WebSockets, ʻaʻole kūpono nā lawelawe. ʻAʻole hāʻawi ʻo Kubernetes i nā mīkini kūloko no ke kaulike ʻana i nā pilina TCP mau.

'O ia ho'i, pono 'oe e kākau i nā noi me ke kaulike 'ao'ao o ka mea kū'ai.

Ua hoʻomākaukau ʻia ka unuhi e ka hui Kubernetes aaS mai Mail.ru.

He aha hou aʻe e heluhelu ai ma ke kumuhana:

  1. ʻEkolu pae o ka autoscaling ma Kubernetes a pehea e hoʻohana pono ai
  2. ʻO nā Kubernetes i ka ʻuhane o ka pōā me kahi hoʻohālike no ka hoʻokō.
  3. ʻO kā mākou pūnaewele Telegram e pili ana i ka hoʻololi kikohoʻe.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka