
Kubernetes Dideliu Mastu: Pamokos iš Gamybinių Diegimų
Kubernetes tapo numatytąja konteinerių orkestravimo platforma, tačiau gerai jį valdyti gamyboje yra iš esmės kitoks iššūkis nei paprasčiausiai paleisti klasterį. Atotrūkis tarp veikiančio demo ir gamybinio lygio diegimo yra ta vieta, kur dauguma komandų gauna skausmingų ir brangių pamokų. Valdžius Kubernetes klasterius keliose pramonės šakose, tam tikri modeliai nuosekliai pasirodo. Tai nėra teorinės geriausios praktikos — tai operacinės pamokos, išmoktos iš incidentų post-mortemų ir naktinės paslaptingų pod iškėlimų derinimo.
Išteklių Užklausos ir Ribos: Nustatykite Teisingai arba Mokėkite Kainą
Dažniausia gamybos problema, su kuria susiduriame, yra neteisingai sukonfigūruotos išteklių užklausos ir ribos. Kai CPU užklausos nustatytos per žemai, planuotojas supakuoja per daug pod į mazgą, kas sukelia CPU ribojimą, pasireiškiantį kaip paslaptingi vėlinimo šuoliai. Kai atminties ribos nustatytos per aukštai, švaistote brangius skaičiavimo išteklius. Teisingas metodas — pradėti nuo profiliavimo: paleiskite darbo krūvius esant realistinei apkrovai, stebėkite faktinį CPU ir atminties suvartojimą, tada nustatykite užklausas P95 lygyje ir ribas 1,5-2x tą reikšmę.
Pod Sutrikimų Biudžetai ir Sklandūs Diegimai
Pod Sutrikimų Biudžetai (PDB) yra vieni iš labiausiai ignoruojamų Kubernetes išteklių, tačiau jie yra kritiškai svarbūs prieinamumui palaikyti mazgų ištuštinimo, klasterio atnaujinimų ir spot egzempliorių atgavimo metu. PDB nurodo minimalų pod skaičių, kuris turi likti prieinamas savanoriškų sutrikimų metu. Be PDB, klasterio automatinis mastelio keitiklis arba kylantis atnaujinimas gali vienu metu sustabdyti visas paslaugos kopijas. Rekomenduojame kiekvienam gamybiniam Deployment su daugiau nei viena kopija turėti PDB su maxUnavailable nustatytu 1.
Horizontalus Pod Automatinis Mastelio Keitimas: Už CPU Metrikų Ribų
Numatytosios HPA konfigūracijos, pagrįstos vien CPU naudojimu, yra pradžios taškas, ne sprendimas. CPU pagrįstas mastelio keitimas dažnai reaguoja per lėtai piko darbo krūviams. Gamybinio lygio automatinis mastelio keitimas reikalauja pasirinktinių metrikų. HTTP paslaugoms keiskite mastelį pagal užklausų dažnį ar vėlinimo procentilius per Prometheus adapterį. Eilių vartotojams keiskite mastelį pagal eilės gylį. Nustatykite stabilizacijos langus, kad išvengtumėte svyravimų. Taip pat apsvarstykite KEDA darbo krūviams, kurie turi mažėti iki nulio.
Stebėjimas: Neginčijamas Pagrindas
Gamybinis Kubernetes diegimas reikalauja visapusiško stebėjimo steko, pastatyto ant trijų ramsčių:
- Metrikos — Prometheus su Grafana prietaisų skydeliais klasterio sveikatai, išteklių naudojimui, programų lygio SLI ir perspėjimams.
- Žurnalai — centralizuotas žurnalavimas su Loki, Elasticsearch ar valdoma paslauga. Užtikrinkite struktūrizuotą JSON žurnalavimą, įtraukite sekimo ID kiekvienoje žurnalo eilutėje.
- Pėdsakai — paskirstytas sekimas su OpenTelemetry, Jaeger ar Tempo. Mikroservisų aplinkoje pėdsakai yra vienintelis būdas suprasti užklausų srautą per paslaugų ribas.
Kubernetes valdymas gamyboje yra kelionė, ne tikslas. Platforma sparčiai vystosi, o modeliai, veikiantys esant 10 mazgų, gali sugesti esant 100. Sėkmingiausios komandos traktuoja savo Kubernetes platformą kaip produktą — su skirta nuosavybe, aiškiais SLO, reguliariomis peržiūromis ir nuolatiniu investavimu. OKINT Digital bendradarbiauja su inžinierių komandomis projektuojant, diegiant ir valdant atsparias, stebimas ir ekonomiškas gamybines Kubernetes aplinkas.
Norite aptarti šias temas nuodugniau?
Mūsų komanda pasiruošusi architektūros peržiūroms ir strateginėms sesijoms.
Suplanuoti konsultaciją →