Kubernetes: Whakaterehia o ratonga ma te tango i nga rohe CPU
Hoki mai i te tau 2016 kei te Buffer kua huri ki Kubernetes, a inaianei tata ki te 60 nga pona (kei runga i te AWS) me te 1500 nga ipu kei te mahi i runga i ta maatau huinga k8s e whakahaerehia ana e kopa. Heoi, i neke matou ki te microservices na roto i te whakamatautau me te hapa, a ahakoa i muri i nga tau maha o te mahi me nga k8s kei te raru tonu matou i nga raru hou. I tenei pou ka korerohia e matou whāititanga pūtukatuka: he aha matou i whakaaro ai he mahi pai ratou me te aha i mutu ai kaore i tino pai.
Te herenga pūtukatuka me te aukati
Pērā i ētahi atu kaiwhakamahi Kubernetes, Ka tino taunaki a Google ki te whakarite i nga rohe CPU. Ki te kore he tautuhinga pera, ka taea e nga ipu kei roto i te node te tango i te mana tukatuka katoa, na reira ka puta nga tikanga Kubernetes nui (hei tauira kubelet) ka mutu te whakautu ki nga tono. No reira, ko te whakatakoto i nga rohenga PTM he huarahi pai hei tiaki i o pona.
Ka tautuhia e nga tepe o te kai-tukatuka he ipu ki te morahi o te wa PTM ka taea e ia te whakamahi mo tetahi waa motuhake (ko te taunoa ko te 100ms), ka kore rawa te ipu e neke ake i tenei tepe. I Kubernetes mo te tarai ipu me te aukati i te nui o te rohe, ka whakamahia he taputapu motuhake Mounga CFS, engari ko enei tepe PTM horihori ka mutu ka kino te mahi me te whakanui ake i te wa whakautu o o ipu.
Ka ahatia mena karekau matou e whakarite i nga rohenga tukatuka?
Ko te mate, ko matou ano i pa ki tenei raru. Kei ia node he tukanga hei whakahaere i nga ipu kubelet, ka mutu tana whakautu ki nga tono. Ko te node, ka tupu tenei, ka haere ki te kawanatanga NotReady, ka tukuna ano nga ipu mai i a ia ki tetahi atu waahi ka puta nga raruraru i runga i nga waahanga hou. Ehara i te ahuatanga pai, ki te kii i te iti rawa.
Te whakaaturanga o te raruraru o te tarai me te whakautu
Ko te inenga matua mo te aroturuki ipu ko trottling, e whakaatu ana i te maha o nga wa i werohia to ipu. I kite matou i te aro nui ki te noho mai o te tarai i roto i etahi ipu, ahakoa he taumaha te uta o te tukatuka, kaore ranei. Hei tauira, me titiro ki tetahi o a maatau API matua:
Ka kite koe i raro nei, kua whakatauhia e matou te rohe ki 800m (0.8, 80% matua ranei), me nga uara teitei ka taea 200m (20% matua). Te ahua nei i mua i te tarai i te ratonga he nui tonu te mana o te tukatuka, heoi...
Kua kite pea koe ahakoa kei raro iho te uta o te kaitukatuka i nga rohe kua tohua - kei raro rawa - kei te haere tonu te pupuhi.
He aha tatou ka kite ai i te katereti i te iti o te uta CPU? Ko te putanga poto ko: "he pepeke kei roto i te kakano Linux e kore e tika te tarai i nga ipu me nga rohe tukatuka kua tohua." Mena kei te pirangi koe ki te ahua o te raru, ka taea e koe te panui i te whakaaturanga (видео и kuputuhi kōwhiringa) na Dave Chiluk.
Te tango i nga here PTM (me te tino tupato)
Whai muri i nga korerorero roa, i whakatau matou ki te tango i nga here o te tukatuka mai i nga ratonga katoa e pa ana ki nga mahi whakahirahira mo o maatau kaiwhakamahi.
Ehara i te mea ngawari te whakatau na te mea ka whakanuia e matou te pumau o ta matou roopu. I nga wa o mua, kua whakamatauria e matou te koretake o ta matou kahui, katahi ka pau rawa nga rauemi e nga ratonga, ka whakapoipoi i te mahi o to ratou node katoa. Inaianei kua rerekee nga mea katoa: kua marama to maatau mohio ki nga mea i tumanakohia mai i a maatau roopu, me te rautaki pai mo te whakatinana i nga huringa kua whakamaheretia.
Nga reta pakihi mo tetahi take nui.
Me pēhea te tiaki i ō kōpuku ina whakakorehia ngā here?
Wehenga o nga ratonga "kore herea":
I nga wa o mua, kua kite tatou i etahi pona ka uru ki roto i te ahua notReady, na nga ratonga i pau rawa nga rauemi.
I whakatau matou ki te tuu i aua ratonga ki nga waahanga motuhake (“kua tapaina”) kia kore ai e pokanoa ki nga ratonga “paanga”. Ko te mutunga mai, na te tohu i etahi node me te taapiri i te tawhā aro ki nga ratonga "kore hono", ka nui ake te mana whakahaere mo te kahui, ka ngawari ake ki a maatau te tautuhi i nga raru me nga node. Ki te whakahaere i nga tukanga rite, ka taea e koe te waia koe ki a koe tuhinga.
Te tautapa i te tukatuka tika me te tono mahara:
Ko ta matou tino wehi ka pau rawa atu nga rauemi a te tukanga, ka mutu te urupare ki nga tono. Mai i tenei wa (he mihi ki a Datadog) ka taea e maatau te aro turuki i nga ratonga katoa i runga i ta maatau roopu, i tirotirohia e au etahi marama o te mahi o era i whakamaherehia e maatau ki te tohu "kaore he hononga". Ka tautuhi noa ahau i te nui o te whakamahi CPU me te tawhē o te 20%, na reira ka tohatohahia te waahi i roto i te node mena ka ngana a k8s ki te tautapa i etahi atu ratonga ki te node.
Ka taea e koe te kite i te kauwhata, kua tae te kawenga morahi i runga i te tukatuka 242m Nga matua CPU (0.242 nga waahanga tukatuka). Mo te tono pūtukatuka, he nui noa te tango i tetahi tau nui ake i tenei uara. Kia mahara mai na te mea ko nga ratonga e aro nui ana ki nga kaiwhakamahi, ko nga uara kawenga teitei ka rite ki nga waka.
Me pena ano me te whakamahi mahara me nga patai, me te voila - kua rite katoa koe! Mo te haumarutanga ake, ka taea e koe te taapiri i te tauine-aunoa pod whakapae. No reira, i nga wa katoa ka nui te uta o nga rauemi, ka hangaia e te autoscaling nga putunga hou, ka tohatohahia e nga kubernetes ki nga pona me te waahi waatea. Mena karekau he waahi kei roto i te tautau, ka taea e koe te whakarite i a koe he matohi, te whirihora ranei i te taapiri o nga pona hou na roto i o raatau tohu.
Mo nga mea iti, me mahara kua ngaro tatou i roto i "kiato ipu", ara. te maha o nga ipu e rere ana i runga i te node kotahi. He maha ano pea o taatau "whakangawari" i te iti o nga waka waka, a he tupono ano ka eke koe ki te utaina nui o te kaitukatuka, engari me awhina nga nodes autoscaling ki nga mea o muri.
Результаты
E harikoa ana ahau ki te whakaputa i enei hua pai mai i nga whakamatautau i nga wiki kua pahure ake nei; kua kite matou i nga whakapainga nui mo te whakautu puta noa i nga ratonga whakarereke katoa:
I tutuki i a maatau nga hua pai i runga i ta maatau wharangi kaainga (buffer.com), i reira ka tere haere te ratonga rua tekau ma rua nga wa!
Heoi, i runga i te panui nga raruraru kubernetes i runga i te githubmo te tuarua o Hepetema 2020 kei te haere tonu matou ki nga korero mo etahi kaupapa Linux me te peera rite. E whakapono ana ahau kei etahi tohatoha Linux kei te mau tonu tenei pepeha a kei te mahi tonu ki te whakatika.
Mena he iti ake to putanga tohatoha i te 4.19, ka tūtohu ahau kia whakahōuhia ki te mea hou, engari ahakoa he aha me ngana koe ki te tango i nga here o te tukatuka me te kite mena ka mau tonu te tarai. Kei raro ka kite koe i tetahi rarangi waahanga o nga ratonga whakahaere Kubernetes me nga tohatoha Linux:
Debian: whakatika whakaurua ki te putanga hou o te tohatoha, Buster, me te ahua hou (Akuhata 2020). Ka taea hoki te whakatika etahi putanga o mua.
Kua whakatikahia ano a EKS i Hakihea 2019. Mena he iti ake to putanga i tenei, me whakahou e koe te AMI.
kopa: Mai Pipiri 2020 у kops 1.18+ Ko te ahua o te kaihautu matua ko Ubuntu 20.04. Mena he tawhito to putanga o te kops, me tatari koe mo te whakatika. Ko tatou ano kei te tatari inaianei.
Me aha mena ka whakatikahia e te whakatika te raru o te tarai?
Kaore au i te tino mohio kua whakatauhia te raru. Ka tae ki te putanga kernel me te whakatika, ka whakamatau ahau i te tautau me te whakahou i te pou. Mena kua whakahouhia e tetahi, ka hiahia ahau ki te panui i o hua.
mutunga
Mena ka mahi tahi koe me nga ipu Docker i raro i te Linux (ahakoa Kubernetes, Mesos, Swarm, etahi atu ranei), ka ngaro pea te mahi o au ipu na te katereti;
Whakamātauria te whakahōu ki te putanga hōu o tō tohatoha i runga i te tumanako kua oti kē te whakatika te iro;
Ko te tango i nga rohe o te tukatuka ka whakaoti i te raru, engari he tikanga kino tenei me tino tupato (he pai ke ki te whakahou tuatahi i te kernel me te whakataurite i nga hua);
Mēnā kua tangohia e koe ngā rohenga CPU, āta aroturuki i tō PTM me te whakamahi pūmahara me te whakarite kei te nui ake o rauemi CPU i to kai;
Ko te whiringa haumaru ko te hanga i nga poti-aunoa ki te hanga poti hou mena he nui te utaina o nga taputapu, na nga kubernetes e tautapa ki nga pona kore utu.
Ko taku tumanako ka awhina tenei panui ki a koe ki te whakapai ake i nga mahi o o punaha ipu.
PS ko te reira te kaituhi ki nga kaipānui me nga kaikorero (i te reo Ingarihi).