Chifukwa chiyani ndikofunikira kuganizira za kukula
Kubernetes - chida choyang'anira zida ndi kuyimba. Zachidziwikire, ndikwabwino kuyang'ana zinthu zabwino zoyika, kuyang'anira, ndi kuyang'anira ma pod (pod ndi gulu la zotengera zomwe zimayambitsidwa poyankha pempho).
Momwe mungayankhire kusintha kosasintha kwa ma code ndi kuchuluka kwa ntchito kuchokera kwa ogwiritsa ntchito?
Kukonza magulu a Kubernetes kuti azitha kulinganiza zinthu ndi magwiridwe antchito kumatha kukhala kovuta ndipo kumafuna chidziwitso chaukadaulo pakugwira ntchito kwamkati kwa Kubernetes. Kuchulukitsitsa kwa ntchito yanu kapena ntchito zanu kumatha kusinthasintha tsiku lonse kapena pakadutsa ola limodzi, kotero kulinganiza kumaganiziridwa bwino ngati njira yopitilira.
Kubernetes autoscaling milingo
Kuchita bwino kwa autoscaling kumafuna kulumikizana pakati pa magawo awiri:
Mulingo wa Pod, kuphatikiza yopingasa (Horizontal Pod Autoscaler, HPA) ndi vertical autoscaler (Vertical Pod Autoscaler, VPA). Uku ndikukulitsa zinthu zomwe zilipo pazotengera zanu.
Cluster level, yomwe imayendetsedwa ndi Cluster Autoscaler (CA), yomwe imachulukitsa kapena kuchepetsa chiwerengero cha node mkati mwa gululo.
Module ya Horizontal Autoscaler (HPA)
Monga momwe dzinalo likusonyezera, HPA imayesa kuchuluka kwa ma pod replicas. Ma devops ambiri amagwiritsa ntchito CPU ndi kukumbukira kukumbukira ngati zoyambitsa kusintha kuchuluka kwa zobwereza. Komabe, ndizotheka kukulitsa dongosolo motengera ma metrics okhazikikaawo kuphatikiza kapena ngakhale ma metric akunja.
Chithunzi chogwiritsira ntchito chapamwamba cha HPA:
HPA imayang'ana mosalekeza ma metric omwe amatchulidwa pakukhazikitsa pakanthawi kochepa kwa masekondi 30.
HPA ikuyesera kuonjezera chiwerengero cha ma modules ngati malo otchulidwawo afikira.
HPA imasintha kuchuluka kwa zofananira mkati mwazowongolera / zobwereza.
Wowongolera / wobwerezabwereza ndiye amatumiza ma module ena ofunikira.
HPA imayamba njira yotumizira ma module ikafika malire a metric
Mukamagwiritsa ntchito HPA, ganizirani izi:
Nthawi yowunika ya HPA ndi masekondi 30. Imayikidwa ndi mbendera horizontal-pod-autoscaler-sync-nthawi mu controller manager.
Cholakwika chachibale chokhazikika ndi 10%.
Pambuyo pakuwonjezeka komaliza kwa ma module, HPA ikuyembekeza kuti ma metric akhazikika mkati mwa mphindi zitatu. Nthawi imeneyi imayikidwa ndi mbendera horizontal-pod-autoscaler-upscale-deche.
Pambuyo pakuchepetsa komaliza kwa ma module, HPA imadikirira mphindi zisanu kuti ikhazikike. Nthawi imeneyi imayikidwa ndi mbendera horizontal-pod-autoscaler-downscale-deche.
HPA imagwira ntchito bwino ndi zinthu zotumizidwa m'malo mowongolera zobwereza. Horizontal autoscaling sagwirizana ndi kusintha kosinthika, komwe kumagwiritsa ntchito owongolera obwereza. Ndi kutumizidwa, chiwerengero cha replicas chimadalira mwachindunji zinthu zomwe zimatumizidwa.
Vertical autoscaling of pods
Vertical autoscaling (VPA) imagawira nthawi yochulukirapo (kapena yochepera) ya CPU kapena kukumbukira ma pod omwe alipo. Oyenera ma pod a boma kapena osawerengeka, koma makamaka amachitira ntchito za boma. Komabe, mutha kugwiritsanso ntchito VPA pama module opanda malire ngati mukufuna kusintha zokha kuchuluka kwazinthu zomwe munapatsidwa poyamba.
VPA imayankhanso ku zochitika za OOM (zosakumbukira). Kusintha nthawi ya CPU ndi kukumbukira kumafuna kuyambitsanso ma pod. Ikayambiranso, VPA imalemekeza bajeti yogawa (bajeti yogawa ma pod, PDB) kutsimikizira kuchuluka kwa ma module ofunikira.
Mutha kukhazikitsa zochepera komanso zochulukirapo pagawo lililonse. Chifukwa chake, mutha kuchepetsa kuchuluka kwa kukumbukira komwe kumaperekedwa ku 8 GB. Izi ndizothandiza ngati ma node apano sangathe kugawira kukumbukira kwa 8 GB pachidebe chilichonse. Mafotokozedwe atsatanetsatane ndi makina ogwiritsira ntchito akufotokozedwa mu official VPA wiki.
Kuphatikiza apo, VPA ili ndi ntchito yosangalatsa (VPA Recommender). Imayang'anira kagwiritsidwe ntchito kazinthu ndi zochitika za OOM zamamodule onse kuti ziwonetsere kukumbukira kwatsopano ndi nthawi ya CPU kutengera algorithm yanzeru yotengera ma metric akale. Palinso API yomwe imatenga chogwirira cha pod ndikubwezeretsanso zomwe zaperekedwa.
Ndizofunikira kudziwa kuti VPA Recommender samatsata "malire" azinthu. Izi zitha kupangitsa kuti ma module azikhala okhawo omwe ali mu node. Ndi bwino kuyika malire pamlingo wa namespace kuti mupewe kukumbukira kwakukulu kapena kugwiritsa ntchito CPU.
VPA idakali pachiyambi cha chitukuko. Khalani okonzeka kuti dongosololi likhoza kusintha zina posachedwa. Mutha kuwerenga za zolephera zodziwika ΠΈ mapulani a chitukuko. Choncho, pali ndondomeko zogwiritsira ntchito mgwirizano wa VPA ndi HPA, komanso kutumizira ma modules pamodzi ndi ndondomeko ya autoscaling yowongoka kwa iwo (mwachitsanzo, chizindikiro chapadera 'chimafunika VPA').
Autoscaling gulu la Kubernetes
Cluster Autoscaler (CA) imasintha kuchuluka kwa ma node kutengera kuchuluka kwa ma pod akudikirira. Dongosolo limayang'ana nthawi ndi nthawi ma module omwe akudikirira - ndikuwonjezera kukula kwa masango ngati zofunikira zambiri zikufunika komanso ngati gulu silikupitilira malire omwe adakhazikitsidwa. CA imalankhulana ndi wothandizira pamtambo, imapempha ma node ena kuchokera kwa iwo, kapena kumasula opanda pake. Mtundu woyamba wa CA womwe umapezeka nthawi zambiri udayambitsidwa Kubernetes 1.8.
Ndondomeko yapamwamba ya ntchito ya SA:
CA imayang'ana ma module omwe akudikirira panthawi yokhazikika ya masekondi 10.
Pamene wothandizira pamtambo agawira node yofunikira, imagwirizanitsa gululo ndipo ili wokonzeka kutumikira ma pod.
Wokonza Kubernetes amagawira ma pods omwe akudikirira kumalo atsopano. Ngati izi zitatha ma modules ena akadalibe podikirira, ndondomekoyi imabwerezedwa ndipo ma node atsopano amawonjezeredwa kumagulu.
Kupereka kwachangu kwa ma cluster node mumtambo
Ganizirani zotsatirazi mukamagwiritsa ntchito CA:
CA imawonetsetsa kuti ma pod onse omwe ali mgululi ali ndi malo oti ayendetse, mosasamala kanthu za kuchuluka kwa CPU. Imayesanso kuwonetsetsa kuti palibe node zosafunikira mgululi.
CA imalembetsa kufunikira kokulira pambuyo pa masekondi pafupifupi 30.
Node ikadzasowanso, CA imasintha kudikirira mphindi 10 isanatulutse dongosolo.
Dongosolo la autoscaling lili ndi lingaliro la zowonjezera. Izi ndi njira zosiyana posankha gulu la mfundo zomwe zatsopano zidzawonjezedwa.
Gwiritsani ntchito njirayo moyenera cluster-autoscaler.kubernetes.io/safe-to-evict (zoona). Mukayika ma pod ambiri, kapena ngati ambiri amwazikana m'malo onse, mudzataya mwayi wokulitsa masango.
Gwiritsani ntchito PodDisruptionBudgetskuteteza ma pod kuti achotsedwe, zomwe zingapangitse kuti magawo a pulogalamu yanu aphwanyike.
Momwe Kubernetes autoscalers amalumikizirana wina ndi mnzake
Kuti mugwirizane bwino, kuwerengetsa kwa autoscaling kuyenera kugwiritsidwa ntchito pamlingo wa pod (HPA/VPA) ndi mulingo wamagulu. Amalumikizana mophweka:
Ma HPA kapena ma VPA amasinthitsa ma pod kapena zinthu zomwe zaperekedwa ku ma pod omwe alipo.
Ngati palibe ma node okwanira pakukweza kokonzekera, CA imazindikira kukhalapo kwa ma pods akudikirira.
HPA ndi VPA zimadalira ma metrics ndi mbiri yakale. Ngati zinthu zosakwanira ziperekedwa, ma modules adzachepetsedwa ndipo sangathe kupanga ma metric. Pankhaniyi, autoscaling sichidzachitika.
Ntchito yokulitsa yokha imakhala yovuta nthawi. Tikufuna kuti ma module ndi magulu azikula mwachangu - ogwiritsa ntchito asanazindikire zovuta zilizonse ndi zolephera. Chifukwa chake, nthawi yapakati yokulitsa ma pod ndi tsango liyenera kuganiziridwa.
Nthawi yabwino - Mphindi 4:
30 masekondi. Sinthani ma metric omwe mukufuna: 30β60 masekondi.
30 masekondi. HPA imayang'ana ma metric values: 30 masekondi.
Pasanathe 2 masekondi. Ma pods amapangidwa ndikudikirira: 1 sekondi.
Pasanathe 2 masekondi. CA ikuwona ma module odikirira ndikutumiza mafoni ku ma node: 1 sekondi.
3 mphindi. Wopereka mtambo amagawa ma node. Ma K8 amadikirira mpaka atakonzeka: mpaka mphindi 10 (kutengera zinthu zingapo).
Zochitika zoyipa kwambiri (zowona) - mphindi 12:
30 masekondi. Sinthani ma metric omwe mukufuna.
30 masekondi. HPA imayang'ana ma metric values.
Pasanathe 2 masekondi. Ma pod amapangidwa ndikulowa mu standby state.
Pasanathe 2 masekondi. CA ikuwona ma module odikirira ndikuyimba foni kuti ipereke ma node.
Mphindi 10. Wopereka mtambo amagawa ma node. Ma K8 amadikirira mpaka atakonzeka. Nthawi yodikirira imadalira zinthu zingapo, monga kuchedwa kwa ogulitsa, kuchedwa kwa OS, ndi zida zothandizira.
Osasokoneza makulitsidwe a opereka mtambo ndi CA yathu. Zomalizazi zimayenda mkati mwa gulu la Kubernetes, pomwe injini yopereka mtambo imagwira ntchito mogawa node. Sichidziwa zomwe zikuchitika ndi ma pod kapena ntchito yanu. Machitidwewa amagwira ntchito limodzi.
Momwe mungasamalire makulitsidwe ku Kubernetes
Kubernetes ndi chida choyang'anira zida ndi orchestration. Ntchito zoyang'anira ma pod ndi zida zamagulu ndizofunikira kwambiri pakuzindikira Kubernetes.
Mvetsetsani malingaliro a pod scalability poganizira HPA ndi VPA.
CA iyenera kugwiritsidwa ntchito ngati mukumvetsetsa bwino zosowa za makoko anu ndi zotengera zanu.