Nā hana maikaʻi loa o Kubernetes. Hoʻonohonoho i nā noi waiwai a me nā palena

Nā hana maikaʻi loa o Kubernetes. Ke hana ʻana i nā pahu liʻiliʻi
Nā hana maikaʻi loa o Kubernetes. Hoʻonohonoho i nā Kubernetes me ka inoa inoa
Nā hana maikaʻi loa o Kubernetes. Ke hōʻoia ʻana i ke ola o Kubernetes me nā hoʻāʻo mākaukau a me ke ola

No kēlā me kēia kumuwaiwai Kubernetes, hiki iā ʻoe ke hoʻonohonoho i ʻelua ʻano koi - Noi a me nā palena. ʻO ka mea mua e wehewehe i nā koi liʻiliʻi no ka loaʻa ʻana o nā kumu node manuahi e pono ai e holo i kahi pahu a i ʻole pod, ʻo ka lua e kaupalena pono i nā kumuwaiwai i loaʻa i ka ipu.

Ke hoʻonohonoho ʻo Kubernetes i nā pods, he mea nui ka loaʻa ʻana o nā kumu waiwai e hana pono ai nā ipu. Inā ʻoe e hoʻolālā ana e kau i kahi noi nui ma kahi node i kāohi ʻia i nā kumuwaiwai, ʻaʻole hiki ke holo no ka mea e holo haʻahaʻa ana ka node ma ka hoʻomanaʻo a i ʻole ka pau ʻana o ka mana CPU. Ma kēia ʻatikala, e nānā mākou pehea e hiki ai iā ʻoe ke hoʻoponopono i nā hemahema o ka mana kamepiula me ka hoʻohana ʻana i nā noi waiwai a me nā palena.

ʻO nā noi a me nā palena he mau hana a Kubernetes e hoʻohana ai e hoʻokele i nā kumuwaiwai e like me ka CPU a me ka hoʻomanaʻo. ʻO nā noi ka mea e hōʻoiaʻiʻo ai i ka loaʻa ʻana o ka ipu i ka waiwai i noi ʻia. Inā noi ka pahu i kahi kumuwaiwai, e hoʻonohonoho wale ʻo Kubernetes iā ia ma kahi node hiki ke hāʻawi iā ia. ʻAʻole i ʻoi aku ka nui o nā waiwai i noi ʻia e ka ipu.

Nā hana maikaʻi loa o Kubernetes. Hoʻonohonoho i nā noi waiwai a me nā palena

Hiki i kahi pahu ke hoʻonui i kona mana helu a hiki i kahi palena, a laila e kaupalena ʻia. E ʻike kākou pehea e hana ai. No laila, ʻelua ʻano kumu waiwai - processor a me ka hoʻomanaʻo. Hoʻohana ka mea hoʻonohonoho Kubernetes i ka ʻikepili e pili ana i kēia mau kumuwaiwai e ʻike i kahi e holo ai kāu pods. ʻO kahi kikoʻī kumu waiwai maʻamau no kahi pod e like me kēia.

Nā hana maikaʻi loa o Kubernetes. Hoʻonohonoho i nā noi waiwai a me nā palena

Hiki i kēlā me kēia pahu i loko o kahi pod ke hoʻonohonoho i kāna mau nīnau ponoʻī a me nā palena, he mea hoʻohui. Ua wehewehe ʻia nā kumuwaiwai mea hana i nā millicores. Inā makemake kāu pahu i ʻelua cores piha e holo, hoʻonoho ʻoe i ka waiwai i 2000m. Inā makemake ka ipu i ka mana o 1/4 o ke kumu, ʻo 250m ka waiwai. E hoʻomanaʻo inā hāʻawi ʻoe i kahi waiwai waiwai CPU ma mua o ka helu o nā cores o ka node nui loa, ʻaʻole e hoʻomaka ʻia kāu pod e hoʻomaka. Hiki ke ʻano like inā loaʻa iā ʻoe kahi Pod e pono ai ʻehā cores, a ʻo ka hui Kubernetes he ʻelua wale nō mīkini virtual nui.

Inā ʻaʻole i hoʻolālā ʻia kāu noi no ka hoʻohana pono ʻana i nā cores he nui (nā papahana e like me ka computing ʻepekema paʻakikī a me nā hana ʻikepili i hiki ke noʻonoʻo), a laila ʻo ka hoʻomaʻamaʻa maikaʻi loa ʻo ka hoʻonohonoho ʻana i nā noi CPU i ka 1 a i ʻole ka haʻahaʻa a laila e holo hou i nā replicas i scalability. E hāʻawi kēia hoʻonā i ka ʻōnaehana ʻoi aku ka maʻalahi a me ka hilinaʻi.

I ka hiki ʻana i nā palena CPU, ʻoi aku ka hoihoi o nā mea mai ka mea i manaʻo ʻia he kumuwaiwai compressible. Inā hoʻomaka kāu noi e hoʻokokoke i ka palena mana o ka mea hana, e hoʻomaka ana nā Kubernetes e hoʻolohi i kāu pahu me ka hoʻohana ʻana i ka CPU Throttling - e hōʻemi ana i ka alapine. ʻO ia ke ʻano o ka hoʻopili ʻia ʻana o ka CPU, e hāʻawi ana i ka noi i ʻoi aku ka maikaʻi o ka hana, akā ʻaʻole e hoʻopau ʻia ke kaʻina hana.

Ua wehewehe ʻia nā kumuwaiwai hoʻomanaʻo ma nā bytes. ʻO ka mea maʻamau ke ana ʻia ka waiwai ma nā hoʻonohonoho i nā mebibytes Mib, akā hiki iā ʻoe ke hoʻonohonoho i kekahi waiwai, mai nā bytes a i nā petabytes. Hoʻopili ʻia ke kūlana ma ʻaneʻi e like me ka CPU - inā ʻoe e waiho i kahi noi no ka nui o ka hoʻomanaʻo ma mua o ka nui o ka hoʻomanaʻo ma kāu mau nodes, ʻaʻole e hoʻonohonoho ʻia kēlā pod e hoʻokō. Akā ʻaʻole like me nā kumuwaiwai CPU, ʻaʻole i hoʻopaʻa ʻia ka hoʻomanaʻo no ka mea ʻaʻohe ala e kaupalena ai i kona hoʻohana ʻana. No laila, e hoʻopau ʻia ka hoʻokō ʻana o ka pahu i ka wā e hele ai ma mua o ka hoʻomanaʻo i hāʻawi ʻia iā ia.

Nā hana maikaʻi loa o Kubernetes. Hoʻonohonoho i nā noi waiwai a me nā palena

He mea nui e hoʻomanaʻo ʻaʻole hiki iā ʻoe ke hoʻonohonoho i nā noi i ʻoi aku ma mua o nā kumuwaiwai hiki i kāu mau nodes ke hāʻawi. Hiki ke ʻike ʻia nā kikoʻī kumu waiwai kaʻana like no nā mīkini virtual GKE ma nā loulou ma lalo o kēia wikiō.

Ma kahi honua maikaʻi, lawa nā hoʻonohonoho paʻamau o ka pahu e mālama pono i nā kahe hana. Akā ʻaʻole like ka honua maoli, hiki i nā poʻe ke poina maʻalahi i ka hoʻonohonoho ʻana i ka hoʻohana ʻana i nā kumuwaiwai, a i ʻole nā ​​​​hacker e hoʻonohonoho i nā noi a me nā palena i ʻoi aku ma mua o ka hiki maoli o ka ʻoihana. No ka pale ʻana i kēlā ʻano hiʻohiʻona, hiki iā ʻoe ke hoʻonohonoho i ka ResourceQuota a me LimitRange resource quotas.

Ke hana ʻia kahi inoa inoa, hiki ke ālai ʻia me nā quota. No ka laʻana, inā loaʻa iā ʻoe ka prod a me dev namespaces, ʻo ke kumu ʻaʻole loaʻa nā quotas hana a me nā quotas hoʻomohala koʻikoʻi loa. ʻAe kēia i ka prod, i ka wā o ka piʻi ʻana o ke kaʻa, e lawe i ka waiwai holoʻokoʻa i loaʻa, e kāohi loa i ka dev.

E like paha ke ʻano o ka quota waiwai. I kēia laʻana, aia nā ʻāpana 4 - ʻo ia nā laina lalo o 4 o ke code.

Nā hana maikaʻi loa o Kubernetes. Hoʻonohonoho i nā noi waiwai a me nā palena

E nānā kākou i kēlā me kēia o lākou. ʻO Requests.cpu ka helu kiʻekiʻe loa o nā noi CPU hui ʻia e hiki ke hele mai mai nā pahu āpau i ka inoa inoa. Ma kēia laʻana, hiki iā ʻoe ke loaʻa i 50 pahu me nā noi 10m, ʻelima pahu me nā noi 100m, a i ʻole hoʻokahi pahu me nā noi 500m. ʻOiai ʻoi aku ka liʻiliʻi o ka helu o nā noi.cpu o kahi inoa inoa i hāʻawi ʻia ma mua o 500m, e maikaʻi nā mea a pau.

ʻO nā noi noi hoʻomanaʻo.memory ka nui loa o nā noi hoʻomanaʻo i hui pū ʻia e loaʻa i nā pahu a pau i ka namespace. E like me ka hihia ma mua, hiki iā ʻoe ke loaʻa i nā ipu 50 2 mib, ʻelima mau pahu mib 20, a i ʻole kahi pahu 100 mib hoʻokahi i ka lōʻihi o ka nui o ka hoʻomanaʻo i noi ʻia ma ka namespace ma lalo o 100 mebibytes.

ʻO Limits.cpu ka nui i hui pū ʻia o ka mana CPU e hiki ke hoʻohana i nā pahu a pau i ka namespace. Hiki iā mākou ke noʻonoʻo i kēia ka palena o nā noi mana hana.

ʻO ka mea hope loa, ʻo ka limits.memory ka nui loa o ka hoʻomanaʻo like ʻana e hiki ai i nā pahu a pau i ka namespace ke hoʻohana. He palena kēia i ka nui o nā noi hoʻomanaʻo.
No laila, ma ke ʻano paʻamau, holo nā pahu i loko o kahi pūʻulu Kubernetes me nā kumuwaiwai helu palena ʻole. Me nā quota waiwai, hiki i nā luna hoʻomalu puʻupuʻu ke kaupalena i ka hoʻohana ʻana i nā kumuwaiwai a me ka hana ʻana i nā kumuwaiwai ma muli o ka inoa inoa. Ma kahi namespace, hiki i ka pod a i ʻole ka pahu ke hoʻopau i ka nui o ka mana CPU a me ka hoʻomanaʻo e like me ka hoʻoholo ʻana e ka quota punawai inoa. Eia nō naʻe, aia ka manaʻo e hoʻopololei paha kekahi pod a pahu paha i nā kumuwaiwai āpau. No ka pale ʻana i kēia kūlana, hoʻohana ʻia kahi palena palena - he kulekele no ka kaupalena ʻana i ka hoʻokaʻawale ʻana i nā kumuwaiwai (no nā pods a i ʻole nā ​​pahu) i ka inoa inoa.

Hāʻawi ka laulā palena i nā palena hiki ke:

  • E hōʻoia i ka liʻiliʻi a me ka nui o ka hoʻohana ʻana i nā kumuwaiwai computing no kēlā me kēia module a pahu paha i loko o ka inoa inoa;
  • e hoʻokō i nā noi waiho ʻana o Starage Request no kēlā me kēia PersistentVolumeClaim ma ka inoa inoa;
  • hoʻokō i kahi pilina ma waena o kahi Noi a me kahi palena no kahi kumuwaiwai ma kahi inoa inoa;
  • E hoʻonoho i nā Noi/Nā palena no ka helu ʻana i nā kumuwaiwai ma ka inoa inoa a hoʻokomo iā lākou i loko o nā pahu i ka wā holo.

Ma kēia ala hiki iā ʻoe ke hana i kahi palena palena i kāu inoa inoa. ʻAʻole like me ka quota, pili i ka inoa inoa holoʻokoʻa, hoʻohana ʻia ka Limit Range no nā pahu pākahi. Hiki i kēia ke pale i nā mea hoʻohana mai ka hana ʻana i nā ipu liʻiliʻi loa a i ʻole, nā ipu nui i loko o ka inoa inoa. Penei paha ka Limit Range.

Nā hana maikaʻi loa o Kubernetes. Hoʻonohonoho i nā noi waiwai a me nā palena

E like me ka hihia ma mua, hiki ke ʻike ʻia nā ʻāpana 4 ma aneʻi. E nānā kākou i kēlā me kēia.
Hoʻonohonoho ka ʻāpana paʻamau i nā palena paʻamau no ka ipu i loko o ka pod. Inā hoʻonoho ʻoe i kēia mau waiwai i ka palena kiʻekiʻe loa, a laila e hahai nā pahu i hoʻonohonoho ʻole ʻia kēia mau waiwai i nā waiwai paʻamau.

Hoʻonohonoho ka ʻāpana noi paʻamau defaultRequest i nā noi paʻamau no ka ipu i loko o ka pod. Eia hou, inā hoʻonoho ʻoe i kēia mau waiwai i ka pae kiʻekiʻe loa, a laila nā pahu i hoʻonohonoho ʻole i kēia mau koho e paʻa i kēia mau waiwai.

Hōʻike ka ʻāpana kiʻekiʻe i nā palena kiʻekiʻe i hiki ke hoʻonohonoho ʻia no kahi pahu i loko o ka pod. ʻAʻole hiki ke kau ʻia nā waiwai ma ka ʻāpana paʻamau a me nā palena pahu ma luna o kēia palena. He mea nui e hoʻomaopopo inā hoʻonohonoho ʻia ka waiwai i ka max a ʻaʻohe ʻāpana paʻamau, a laila lilo ka waiwai nui i ka waiwai paʻamau.

Hōʻike ka ʻāpana min i nā noi liʻiliʻi i hiki ke hoʻonohonoho ʻia no kahi pahu i loko o kahi pod. Eia naʻe, ʻaʻole hiki ke hoʻonohonoho ʻia nā waiwai ma ka ʻāpana paʻamau a me nā nīnau no ka ipu ma lalo o kēia palena.

Eia hou, he mea nui e hoʻomaopopo inā hoʻonohonoho ʻia kēia waiwai, ʻaʻole paʻamau, a laila lilo ka waiwai liʻiliʻi i ka wikiwiki paʻamau.

Hoʻohana hope ʻia kēia mau noi waiwai e ka mea hoʻonohonoho Kubernetes e hoʻokō i kāu mau hana. I mea e hiki ai iā ʻoe ke hoʻonohonoho pololei i kāu mau ipu, he mea nui e hoʻomaopopo i ka hana ʻana. E ʻōlelo mākou makemake ʻoe e holo i nā pods he nui i kāu pūʻulu. Ke manaʻo nei he kūpono nā kikoʻī pod, e hoʻohana ka papa kuhikuhi Kubernetes i ke kaulike round robin e koho i kahi node e holo ai i ka hana.

Nā hana maikaʻi loa o Kubernetes. Hoʻonohonoho i nā noi waiwai a me nā palena

E nānā ʻo Kubernetes inā lawa nā kumuwaiwai no ka Node 1 e hoʻokō ai i nā noi mai nā pahu pod, a inā ʻaʻole, e neʻe ia i ka node aʻe. Inā ʻaʻole hiki i kekahi o nā nodes i loko o ka ʻōnaehana ke hoʻokō i nā noi, e hele nā ​​pods i ka mokuʻāina Pending. Me ka hoʻohana ʻana i nā hiʻohiʻona ʻenekini Google Kubernetes e like me ka node autoscaling, hiki iā GKE ke ʻike aunoa i ke kūlana kali a hana i nā node hou aʻe.

Inā pau ʻoe i waho o ka mana node, e hōʻemi ka autoscaling i ka helu o nā nodes e mālama i ke kālā. ʻO ia ke kumu e hoʻonohonoho ai ʻo Kubernetes i nā pods e pili ana i nā noi. Eia nō naʻe, ʻoi aku ka kiʻekiʻe o ka palena ma mua o nā noi, a i kekahi mau manawa hiki i ka node ke pau i nā kumuwaiwai. Kapa mākou i kēia moku'āina overcommitment state.

Nā hana maikaʻi loa o Kubernetes. Hoʻonohonoho i nā noi waiwai a me nā palena

E like me kaʻu i ʻōlelo ai, i ka hiki ʻana i ka CPU, e hoʻomaka ʻo Kubernetes e kaupalena i nā pods. E loaʻa i kēlā me kēia pod e like me ka mea i noi ʻia, akā inā ʻaʻole i hiki i ka palena, e hoʻomaka ka throttling e hoʻopili.

I ka hiki ʻana i nā kumuwaiwai hoʻomanaʻo, koi ʻia ʻo Kubernetes e hoʻoholo i nā pods e holoi ai a mālama ʻia a hiki i kou hoʻokuʻu ʻana i nā kumuwaiwai ʻōnaehana a i ʻole e hāʻule ka ʻōnaehana holoʻokoʻa.

E noʻonoʻo kākou i kahi hiʻohiʻona kahi āu i pau ai ka hoʻomanaʻo ʻana o ka mīkini - pehea e hana ai ʻo Kubernetes i kēlā?

E ʻimi ʻo Kubernetes i nā pods e hoʻohana ana i nā kumuwaiwai ʻoi aku ma mua o kā lākou noi. No laila, inā ʻaʻohe noi o kāu mau pahu, ʻo ia ke ʻano o ka hoʻohana ʻana i nā mea ʻoi aku ma mua o kā lākou noi ʻana, no ka mea ʻaʻole lākou i noi i kekahi mea! Ua lilo ia mau ipu i mau moho nui no ka pani. ʻO nā moho aʻe he mau ipu i hoʻokō i kā lākou mau noi a pau naʻe ma lalo o ka palena kiʻekiʻe.

No laila, inā ʻike ʻo Kubernetes i nā pods i ʻoi aku ma mua o kā lākou mau palena noi, e hoʻokaʻawale iā lākou e ka mea nui a laila e wehe i nā pods haʻahaʻa haʻahaʻa. Inā like ka manaʻo o nā pods a pau, a laila e hoʻopau nā Kubernetes i nā pods i ʻoi aku ma mua o kā lākou mau noi ma mua o nā pods ʻē aʻe.

I nā hihia kakaʻikahi, hiki i nā Kubernetes ke hoʻopau i nā pods i loko o ka laulā o kā lākou noi. Hiki i kēia ke hana i ka wā e hoʻomaka ai nā ʻāpana ʻōnaehana koʻikoʻi e like me ka Kubelet agent a i ʻole Docker e ʻai i nā kumuwaiwai hou aʻe ma mua o ka mea i mālama ʻia no lākou.
No laila, i ka hoʻomaka ʻana o nā hui liʻiliʻi, hiki i kahi hui Kubernetes ke hana maikaʻi me ka ʻole o ka hoʻonohonoho ʻana i nā noi kumu a me nā kaohi, akā i ka hoʻomaka ʻana o kāu mau hui a me nā papahana e ulu i ka nui, hiki iā ʻoe ke pilikia i nā pilikia ma kēia wahi. ʻO ka hoʻohui ʻana i nā nīnau a me nā kaohi i kāu mau modula a me nā inoa inoa e pono ai ka hoʻoikaika liʻiliʻi a hiki ke mālama i ka pilikia.

Nā hana maikaʻi loa o Kubernetes. Hoʻopau pololei

Kekahi mau hoʻolaha 🙂

Mahalo no kou noho pū ʻana me mākou. Makemake ʻoe i kā mākou ʻatikala? Makemake ʻoe e ʻike i nā mea hoihoi hou aʻe? E kākoʻo iā mākou ma ke kau ʻana i kahi kauoha a i ʻole ka ʻōlelo ʻana i nā hoaaloha, cloud VPS no nā mea hoʻomohala mai $4.99, he analogue kū hoʻokahi o nā kikowaena hoʻokomo-level, i hana ʻia e mākou no ʻoe: ʻO ka ʻoiaʻiʻo holoʻokoʻa e pili ana iā VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mai $ 19 a pehea e kaʻana like ai i kahi kikowaena? (loaʻa me RAID1 a me RAID10, a hiki i 24 cores a hiki i 40GB DDR4).

ʻO Dell R730xd 2 mau manawa maʻalahi ma Equinix Tier IV kikowaena data ma Amsterdam? Eia wale nō 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mai $199 ma Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mai $99! Heluhelu e pili ana Pehea e kūkulu ai i ka ʻoihana ʻoihana. papa me ka hoʻohana 'ana o Dell R730xd E5-2650 v4 kikowaena waiwai 9000 euros no ka peni?

Source: www.habr.com

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