Li ser Înternetê gelek wêjeya referansê hene, lê carinan şîreta herî hêsan ya herî hêja ye. Kom Kubernetes aaS ji Mail.ru wergerandin hilbijartina deh tricks û tips, ku nivîskarê gotarê piştî salek xebata bi Kubernetes re berhev kir. Serişteyên ji hêla girîngiyê ve têne rêve kirin, lê em difikirin ku her kes dê ji bo xwe tiştek kêrhatî bibîne.
Fermana herî hêsan a ku bi Kubernetes re dixebite
Ji bo destpêkê, dibe ku di xebata bi Kubernetes re çalakiya herî hêsan û herî kêrhatî. Fermana jêrîn temamkirina fermanê dike kubectl li bash shell:
Autofill kubectl dê di pelê .bashrc de were nivîsandin û her gava ku şêlê dest pê dike dê bixweber were çalak kirin. Ev leza nivîsandina fermanên dirêj û parametreyên wek all-namespaces. Zêdetir bixwînin Alîkariya Kubernetes bash.
Sînorên bîra xwerû û CPU di nav cîhek navekî de
Ger serîlêdan bi xeletî were nivîsandin, mînakî, ew her saniye pêwendiyek nû bi databasê re vedike lê qet wê nagire, wê hingê komxebatek bîranînek heye. Û heke serîlêdanê di dema sazkirinê de sînorek bîranînê nebe, ev dikare bibe sedema têkçûna nodê.
Ji bo pêşîlêgirtina vê yekê, Kubernetes dihêle hûn li ser bingehek cîhê navekî sînorkirinên xwerû destnîşan bikin. Ew di pelê yaml de ji bo navekî taybetî têne nivîsandin. Li vir mînakek pelek weha ye:
Yamlek wusa biafirînin û li her cîhê navan bicîh bikin. Mînakî, li cîhê navan limit-example. Naha her konteynerek ku di vê cîhê navan de hatî bicîh kirin dê xwedan sînorek 512Mi be, heya ku ji bo vê konteynerê sînorek kesane ya din neyê danîn.
Di guhertoyên kevntir ên Kubernetes de berhevkirina çopê
Kubelet ji hêla xwerû dema ku dest bi berhevkirina çopê dike var/lib/docker 90% ji cîhê dîskê berdest digire. Lêbelê, ev pir xweş e, heya Kubernetes 1.7 li ser hejmara inode-ên ku têne bikar anîn, ku bi hejmara pelên di pergala pelan de têkildar in, ti sînorek xwerû tune bû.
Potansiyel konteynera we var/lib/docker dibe ku tenê 50% ji cîhê dîskê bikar bîne, lê dibe ku inode biqede, ku dê bibe sedema pirsgirêkan ji bo karkeran.
Di guhertoyên kevntir ên kubelet de ji 1.4 heta 1.6 divê hûn vê ala zêde bikin:
Xefet ev e ku meriv çawa serîlêdanê ava dike û wê li ser wê komê li herêmî dimeşîne. Heya ku bi taybetî nehatiye rêve kirin, wêneya Docker dê li ser komputera we û ne li ser komê were çêkirin.
Ji bo ku Docker neçar bike ku wêneyê berbi koma Kubernetes ya herêmî veke, ji makîneya dockerê fermana jêrîn tê dayîn:
eval $(minikube docker-env)
Naha em dikarin serîlêdanan li ser komek Kubernetes ya herêmî ava bikin.
Kubectl nedin her kesî
Ev eşkere xuya dike, lê heke gelek tîm ji bo serîlêdanên xwe heman komê bikar tînin (ya ku Kubernetes ji bo wê hatî afirandin), divê hûn ne tenê bidin her kesî kubectl. Çêtir e ku emran ji hev veqetînin, her yek ji wan cîhê navên xwe veqetînin û gihîştina bi karanîna polîtîkayên RBAC sînordar bikin.
Hûn dikarin bi destnîşankirina mafên gihîştin, xwendin, afirandin, jêbirin û karûbarên din ên ji bo her podê tevlihev bibin. Lê ya sereke ev e ku meriv gihîştina razan sînordar bike, ku destûrê bide wê tenê ji rêvebiran re. Bi vî rengî em ê di navbera yên ku dikarin komê bi rêve bibin û yên ku bi hêsanî dikarin li ser wê bicîh bikin ji hev cuda bikin.
Budçeyên Pod Birêvebirin
Meriv çawa ji bo serîlêdanek di komikek Kubernetes de wextê dakêşanê peyda nake? PodDisruptionBudget û dîsa PodDisruptionBudget.
Kom bi periyodîk têne nûve kirin û girêk têne vala kirin. Tiştek nesekine, ew rastî ye. Pêdivî ye ku her vekêşana bi zêdetirî yek mînakî PDB (PodDisruptionBudget) hebe. Ew di pelek yaml a sade ya ku li komê tê sepandin de hatî çêkirin. Qada vegirtinê ya PDB-ya taybetî ji hêla hilbijêrên labelê ve tê destnîşankirin.
Têbînî: Butçeya PDB tenê dema ku binpêkirina budçeyê vegere tê hesibandin (astengkirina dilxwazî). Di rewşên wekî têkçûna hardware de, PDB dê nexebite.
Du pîvanên sereke ne matchLabels и minAvailable. Parametreya yekem diyar dike ku budce li ser kîjan sepanan derbas dibe. Mînakî, heke bi etîketan veqetandinên min hebin app: app-a и app: app-b, wê demê ev PDB dê tenê ji bo ya yekem derbas bibe.
Parîsê minAvailable dema valakirina (paqijkirina) girêk tê girtin. Mînakî, di mînaka me de, di dema valakirinê de, hemî mînak têne derxistin app: app-a, ji bilî du.
Ev dihêle hûn kontrol bikin ka çend mînakên serîlêdanê divê di her kêliyê de werin xebitandin.
Çavdêriya tenduristiya serîlêdanê
Çavdêriya bi vî rengî bi du awayan mimkun e: bi karanîna testên Amadebûn an jîndarbûnê.
Lêkolîna yekem (amadebûn) amadebûna konteynerê ji bo wergirtina trafîkê diyar dike.
Ya duyemîn (livîn) nîşan dide ka konteynir saxlem e an pêdivî ye ku ji nû ve were destpêkirin.
Veavakirinên têkildar bi tenê ji bo bicîhkirinê li yaml têne zêdekirin. Li wir hûn dikarin demaran, demên derengmayînê û hejmara ceribandinan diyar bikin. Zêdetir hûrgulî li ser wan bibînin Belgekirina Kubernetes.
Etîket li her derê ne
Etîket di Kubernetes de yek ji têgehên bingehîn in. Ew dihêle ku tişt bi serbestî bi hevûdu re têkilî daynin, û hem jî li ser bingeha nîşanan pirsan biafirînin. Li Kubernetes, hûn dikarin herin ser xerîdar û ji bo nîşaneyên taybetî bûyeran temaşe bikin.
Hûn dikarin hema hema her tiştî bi etîketan bikin, lê mînakek baş dê çêkirina pir hawîrdoran be ku bernameyan li ser heman komê bimeşînin.
Ka em bibêjin hûn ji bo heman komê bikar tînin dev и qa. Ev tê vê wateyê ku hûn dikarin serîlêdanek hebe app-a, di her du hawîrdoran de hevdem dixebitin qa и dev. Di vê rewşê de, em dikarin bi destnîşankirina pîvana guncan ve ji hev veqetînin mînaka serîlêdanê li hawîrdorek taybetî environment. Mînakî app: app-a и environment: dev ji bo yek jîngehê, û app: app-a и environment: qa ji bo duyemîn.
Ev dihêle hûn bigihîjin her du mînakên serîlêdanê, mînakî, ku hûn bi hevdemî ceribandinê bikin.
Birêxistin bibin
Kubernetes pergalek pir bi hêz e, lê her pergalek dikare di dawiyê de bi pir pêvajoyan re têk bibe. Kubelet hemî pêvajoyan dimeşîne û kontrol dike ku hûn diyar dikin, û hem jî ya xwe.
Bê guman, yek karûbarê sêwî dê pergalê hêdî neke, û Kubernetes ji bo pîvandina ji erdê ve hatî çêkirin. Lê eger li şûna yek xizmetê mîlyonek xuya bibe, kubelet dest pê dike.
Ger ji ber hin sedeman hûn veqetandinek jêbirin (konteyner, wêne, çi be), tenê pê ewle bin ku hûn paqijiyek bêkêmasî bikin.
Meet Go
Me şîreta sereke ji bo paşîn xilas kir. Zimanê bernamesaziyê Go fêr bibin.
Kubernetes di Go-yê de hatî pêşve xistin, hemî pêvekirin di Go-yê de têne nivîsandin, û pirtûkxaneya xerîdar-go jî bi fermî tê piştgirî kirin.
Ew dikare ji bo tiştên cûda û balkêş were bikar anîn. Mînakî, ji bo berfirehkirina pergala Kubernetes li gorî kêfa xwe. Ji ber vê yekê, hûn dikarin bernameyên xwe bikar bînin da ku daneyan berhev bikin, serîlêdanan bicîh bikin, an tenê konteyneran paqij bikin.
Fêrbûna zimanê bernamesaziyê Go û serweriya xerîdar-go dibe ku şîreta herî girîng a ku hûn dikarin ji bikarhênerên nû yên Kubernetes re bidin.