Ma amadekirina komek Kubernetes hêsan û hêsan e? Ragihandina addon-operator

Ma amadekirina komek Kubernetes hêsan û hêsan e? Ragihandina addon-operator

Piştî shell-operator em birayê wî yê mezin pêşkêşî dikin - addon-operator. Ev projeyek Çavkaniya Vekirî ye ku ji bo sazkirina pêkhateyên pergalê di nav komek Kubernetes de tê bikar anîn, ku dikare jê re pêvek were gotin.

Çima her zêdekirin?

Ne veşartî ye ku Kubernetes ne hilberek hemî-yek-amade ye, û ji bo avakirina komek "mezin" hûn ê hewceyê lêzêdekirinên cihêreng bin. Addon-operator dê ji we re bibe alîkar ku hûn van pêvekan saz bikin, mîheng bikin û nûve bikin.

Pêdiviya pêkhateyên din ên di komê de tê eşkere kirin nûçe Colleagues driusha. Bi kurtasî, rewşa Kubernetes di vê gavê de wusa ye ku ji bo sazkirinek hêsan a "li dora lîstin" hûn dikarin bi hêmanên ji qutîkê re derbas bibin, ji bo pêşdebiran û ceribandinê hûn dikarin Ingress lê zêde bikin, lê ji bo sazkirinek bêkêmasî, li ser kîjan hûn dikarin bibêjin "hilberîna we amade ye", hûn hewce ne ku bi dehan pêvekên cihêreng lê zêde bikin: tiştek ji bo şopandinê, tiştek ji bo têketinê, ketin û rêveberê belgeyê ji bîr nekin, komên girêkan hilbijêrin, polîtîkayên torê zêde bikin, demsal. bi mîhengên sysctl û pod autoscaler...

Ma amadekirina komek Kubernetes hêsan û hêsan e? Ragihandina addon-operator

Taybetmendiyên xebata bi wan re çi ne?

Wekî ku pratîk nîşan dide, mijar bi yek sazkirinê ve ne sînorkirî ye. Ji bo ku bi komê re bi rehetî bixebitin, pêdivî ye ku pêvek werin nûve kirin, neçalak kirin (ji komê werin derxistin), û hûn ê bixwazin ku hinan berî ku wan di koma hilberînê de saz bikin ceribandin.

Ji ber vê yekê, dibe ku Ansible li vir bes be? Belkî. Lebê Bi gelemperî, pêvekên bêkêmasî bêyî mîhengan najîn. Dibe ku ev mîheng li gorî guhertoya komê (aws, gce, azure, bare-metal, do, ...) cûda bibin. Hin mîhengan nikarin ji berê de bêne diyar kirin; Û kom ne statîk e: ji bo hin mîhengan hûn ê neçar bin ku guhartinan bişopînin. Û li vir Ansible jixwe wenda ye: hûn hewceyê bernameyek ku di komekê de dijî, ango. Operatorê Kubernetes.

Yên ku di kar de ceribandin shell-operator, ew ê bibêjin ku peywirên sazkirin û nûvekirina pêvekan û mîhengên çavdêriyê bi karanîna bi tevahî têne çareser kirin hooks ji bo shell-operator. Hûn dikarin skrîptek ku dê şertek bike binivîsin kubectl apply û çavdêrî bikin, ji bo nimûne, ConfigMap, ku mîhengên wê bêne hilanîn. Ev hema hema ya ku di addon-operatorê de tête bicîh kirin.

Ev di addon-operatorê de çawa tê organîze kirin?

Dema ku çareseriyek nû çêkir, em ji prensîbên jêrîn derketin:

  • Divê sazkerê pêvekê piştgirî bike şablonê û veavakirina daxuyanî. Em skrîptên sêrbaz ên ku pêvekan saz dikin çê nakin. Addon-operator Helm bikar tîne da ku pêvekan saz bike. Ji bo sazkirinê, hûn hewce ne ku nexşeyek biafirînin û nirxên ku dê ji bo veavakirinê werin bikar anîn hilbijêrin.
  • Mîheng dikarin bibin li ser sazkirinê çêbikin, ew dikarin bibin ji komê bistîninan jî nûvekirinan bistînin, Çavdêriya çavkaniyên komê. Van operasyonan dikarin bi karanîna hookan bêne bicîh kirin.
  • Mîheng dikarin bibin di komekê de hilînin. Ji bo hilanîna mîhengan di komê de, ConfigMap/operatorek pêvek tê afirandin û Addon-operator guheztinên vê ConfigMap-ê dişopîne. Addon-operator bi karanîna peymanên hêsan bi çengelan gihandina mîhengan dide.
  • Zêdebûn bi mîhengan ve girêdayî ye. Ger mîheng hatine guhertin, wê hingê Addon-operator nexşeya Helm bi nirxên nû derdixe. Me ji berhevoka nexşeya Helm, nirxên wê re û modulek girêdide (ji bo bêtir agahdarî li jêr binêre).
  • Staging. Skrîptên serbestberdana sêrbaz tune. Mekanîzmaya nûvekirinê dişibihe serîlêdanek birêkûpêk - pêvek û lêveger-operatoran di nav wêneyekê de berhev bike, wan etîket bike û wan derxe.
  • Kontrolkirina encam. Addon-operator dikare metrîkên Prometheus peyda bike.

Padding di addon-operatorê de çi ye?

Pêvek dikare her tiştê ku fonksiyonên nû li komê zêde dike were hesibandin. Mînakî, sazkirina Ingress mînakek mezin a pêvekek e. Ev dikare her operator an kontrolkerek bi CRD-ya xwe be: prometheus-operator, cert-rêveber, kube-kontroller-rêveber, hwd. An tiştek piçûk, lê karanîna wê hêsantir - mînakî, kopîkera veşartî, ku nehêniyên qeydê li cîhên navên nû kopî dike, an tuner sysctl, ku parametreyên sysctl li ser girêkên nû mîheng dike.

Ji bo bicihanîna pêvekan, Addon-operator çend têgehan peyda dike:

  • Helm chart ji bo sazkirina nermalava cihêreng di nav komê de tê bikar anîn - mînakî Prometheus, Grafana, nginx-ingress. Ger pêkhateya pêwîst nexşeyek Helm heye, wê hingê sazkirina wê bi karanîna Addon-operator dê pir hêsan be.
  • Depokirina nirxan. Nexşeyên Helm bi gelemperî gelek mîhengên cihêreng hene ku dikarin bi demê re biguhezin. Addon-operator piştgirî dide hilanîna van mîhengan û dikare guheztinên wan bişopîne da ku nexşeya Helm bi nirxên nû ji nû ve saz bike.
  • Hooks pelên îcrakar in ku Addon-operator li ser bûyeran dimeşîne û ku xwe bigihînin firoşgeha nirxan. Hook dikare guheztinên di komê de bişopîne û nirxan di firoşgeha nirxan de nûve bike. Ewan. Bi karanîna çengan, hûn dikarin keşfê bikin da ku di destpêkê de an li gorî nexşeyek nirxan ji komê berhev bikin, an jî hûn dikarin vedîtina domdar bikin, li ser bingeha guhertinên di komê de nirxan ji komê berhev bikin.
  • Modûl berhevokek nexşeyek Helm, firotgehek nirxan û çengan e. Modul dikarin werin çalak kirin an neçalak kirin. Neçalakkirina modulek tê wateya jêbirina hemî weşanên nexşeya Helm. Modul dikarin xwe bi dînamîk çalak bikin, mînakî, heke hemî modulên ku jê re hewce ne çalak bin an ger vedîtinê pîvanên pêwîst di çîçekan de dîtibe - ev bi karanîna skrîptek çalakkirî ya alîkar pêk tê.
  • Çêlikên gerdûnî. Ev çengel "bi serê xwe" ne, ew ne di modulan de ne û gihîştina firotgehek nirxên gerdûnî hene, ku nirxên wan ji hemî çengelên di modulan re peyda dibin.

Ev beş çawa bi hev re dixebitin? Ka em li wêneyê ji belgeyê binêrin:

Ma amadekirina komek Kubernetes hêsan û hêsan e? Ragihandina addon-operator

Du senaryoyên xebatê hene:

  1. Çêlika gerdûnî ji hêla bûyerek ve tê rêve kirin - mînakî, dema ku çavkaniyek di komê de diguhere. Ev hook guhertinan pêvajoyê dike û nirxên nû li firotgeha nirxên gerdûnî dinivîse. Addon-operator hay dike ku hilanîna gerdûnî guherî ye û hemî modulan dest pê dike. Her modul, bi karanîna çîpên xwe, diyar dike ka gelo pêdivî ye ku were çalak kirin û firoşgeha nirxên xwe nûve dike. Ger modul çalak be, Addon-operator dest bi sazkirina nexşeya Helm dike. Di vê rewşê de, nexşeya Helm gihîştina nirxên ji hilanîna modulê û ji hilanîna gerdûnî heye.
  2. Senaryoya duyemîn hêsantir e: çîçekek modulê ji hêla bûyerek ve tê rêve kirin û di hilanîna nirxên modulê de nirxan diguhezîne. Addon-operator vê yekê dibîne û nexşeya Helm bi nirxên nûvekirî dest pê dike.

Zêdekirin dikare wekî yek hookek yekane, an wekî yek nexşeya Helm, an jî were bicîh kirin tewra wekî çend modulên girêdayî - ev bi tevliheviya pêkhateya ku di komê de hatî saz kirin û bi asta xwestî ya nermbûna veavakirinê ve girêdayî ye. Mînakî, di depoyê de (/nimûne) pêvekek sysctl-tuner heye, ku hem wekî modulek sade ya bi hook û nexşeyek Helm ve tête bicîh kirin, hem jî bi karanîna firoşgeha nirxan ve tête bicîh kirin, ku ev gengaz dike ku hûn bi guherandina ConfigMap mîhengan zêde bikin.

Radestkirina nûvekirinan

Çend gotin di derbarê organîzekirina nûvekirinên pêkhateyê yên ku Addon-operator saz dike.

Ji bo ku hûn Addon-operatorê di komekê de bimeşînin, hûn hewce ne bi lêzêdekirinan wêneyek ava bikin di forma pelên nexşeya hook û Helm de, pelek binary lê zêde bikin addon-operator û her tiştê ku hûn ji bo çengan hewce ne: bash, kubectl, jq, python etc. Dûv re ev wêne dikare wekî serîlêdanek birêkûpêk li komê were rijandin, û bi îhtîmalek mezin hûn ê bixwazin ku yek an jî nexşeyek nîşankirinê organîze bikin. Ger çend kom hene, dibe ku heman nêzîkatiya bi serîlêdanan re guncan be: berdana nû, guhertoya nû, biçin hemî koman û wêneya Pods rast bikin. Lêbelê, di bûyera derxistina hejmareke girîng a koman de, têgeha xwe-nûvekirina ji kanalek ji me re maqûltir bû.

Li vir em çawa dikin:

  • Kanalek bi bingehîn nasnameyek e ku dikare li ser her tiştî were saz kirin (mînak, dev / qonax / ea / stabil).
  • Navê kanalê nîşana wêneyê ye. Dema ku hûn hewce ne ku nûvekirinên kanalek bixin, wêneyek nû tê berhev kirin û bi navê kanalê tê nîşankirin.
  • Dema ku wêneyek nû di qeydê de xuya dibe, Addon-operator ji nû ve tê destpêkirin û bi wêneya nû ve tê destpêkirin.

Ev ne pratîka çêtirîn e, wekî ku tê de hatî nivîsandin Belgekirina Kubernetes. Ji bo vê yekê nayê pêşniyar kirin, lê em li ser dipeyivin serîlêdanek birêkûpêk ku di heman komê de dijî. Di doza Addon-operatorê de, serîlêdanek gelek Sazkirinên ku li nav koman belav bûne, û xwe-nûvekirin pir arîkar dike û jiyanê hêsantir dike.

Kanal alîkarî û di ceribandinê de: heke komek alîkar hebe, hûn dikarin wê li kanalê mîheng bikin stage û berî ku wê ji kanalan re derxînin, nûvekirinan bixin nav wê ea и stable. Ger bi komek li ser kanalê ea xeletiyek çêbû, hûn dikarin wê biguherînin stable, dema ku pirsgirêka vê komê tê lêkolîn kirin. Ger kom ji piştgirîya çalak were derxistin, ew diguhezîne kanala xwe ya "qeşagirtî" - mînakî, freeze-2019-03-20.

Digel nûvekirina çengelan û nexşeyên Helmê, dibe ku hûn hewce bibin nûvekirin û pêkhateya partiya sêyemîn. Mînakî, we di derhênerê girêka şertî de xeletiyek dît û tewra fêhm kir ku meriv wê çawa pêça. Dûv re, we PR vekir û li benda berdana nû ne ku di nav hemî koman re derbas bibe û guhertoya wêneyê zêde bike. Ji bo ku hûn bêdawî li bendê nemînin, hûn dikarin berî ku PR-yê bipejirînin, node-exporter-ê xwe ava bikin û pê vebikin.

Bi gelemperî, ev dikare bêyî Addon-operatorê were kirin, lê bi Addon-operator re modula sazkirina node-exporter dê di yek depoyê de xuya bibe, Dockerfile ji bo avakirina wêneya we dikare li wir rast were hilanîn, ew ji hemî beşdaran re hêsantir dibe. Pêvajoya ku fêm bike ka çi diqewime... Û heke çend kom hebin, wê hingê hem ceribandina PR-ya xwe û hem jî derxistina guhertoyek nû hêsantir dibe!

Ev rêxistina nûvekirina hêmanan ji bo me bi serfirazî dixebite, lê her pileyek din a maqûl dikare were bicîh kirin - paşî di vê rewşê de Addon-operator pelek binary a hêsan e.

encamê

Prensîbên ku di Addon-operatorê de têne bicîh kirin dihêle hûn ji bo afirandina, ceribandin, sazkirin û nûvekirina pêvekan di komekê de pêvajoyek zelal ava bikin, mîna pêvajoyên pêşkeftinê yên serîlêdanên birêkûpêk.

Pêvekên ji bo Addon-operatorê di forma modulê de (Helm chart + hook) dikarin ji raya giştî re bêne peyda kirin. Em, pargîdaniya Flant, plan dikin ku di havîna havînê de pêşkeftinên xwe di forma zêdekirinan de biweşînin. Tevlî pêşveçûna li ser GitHub (shell-operator, addon-operator), hewl bidin ku li ser bingeha lêzêdekirina xwe çêbikin mînak и belgekirin, li benda nûçeyan li ser Habré û li ser me bin kanala YouTube!

PS

Li ser bloga me jî bixwînin:

Source: www.habr.com

Add a comment