Èske li fasil ak pratik pou prepare yon gwoup Kubernetes? Anonse addon-operatè

Èske li fasil ak pratik pou prepare yon gwoup Kubernetes? Anonse addon-operatè

Apre shell-operateur nou prezante gran frè li - addon-operatè. Sa a se yon pwojè Open Source ki itilize pou enstale eleman sistèm nan yon gwoup Kubernetes, ki ka rele add-ons.

Poukisa nenpòt adisyon nan tout?

Se pa sekrè ke Kubernetes se pa yon pwodwi tout-an-yon pare, epi pou konstwi yon gwoup "granmoun" w ap bezwen plizyè adisyon. Addon-operatè pral ede w enstale, konfigirasyon epi kenbe ajou sa yo ajou.

Bezwen pou eleman adisyonèl nan gwoup la divilge nan rapò Kolèg li yo driusha. Nan ti bout tan, sitiyasyon an ak Kubernetes nan moman sa a se konsa ke pou yon senp "jwe alantou" enstalasyon ou ka jwenn pa ak eleman yo soti nan bwat la, pou devlopè ak tès ou ka ajoute Ingress, men pou yon enstalasyon konplè, sou ki ou ka di "pwodiksyon ou a pare", ou bezwen ajoute ak yon douzèn adisyon diferan: yon bagay pou siveyans, yon bagay pou antre, pa bliye antre ak cert-manadjè, chwazi gwoup nœuds, ajoute politik rezo, sezon. ak sysctl ak pod autoscaler paramèt...

Èske li fasil ak pratik pou prepare yon gwoup Kubernetes? Anonse addon-operatè

Ki spesifik yo nan travay avèk yo?

Kòm pratik montre, pwoblèm nan pa limite a yon sèl enstalasyon. Pou travay alèz ak gwoup la, ajoute yo pral bezwen mete ajou, enfim (retire nan gwoup la), epi w ap vle teste kèk anvan enstale yo nan gwoup pwodiksyon an.

Se konsa, petèt Ansible pral ase isit la? Petèt. Men An jeneral, plen véritable ajoute-ons pa viv san paramètres. Anviwònman sa yo ka diferan selon varyant gwoup la (aws, gce, azure, bare-metal, do, ...). Gen kèk paramèt yo pa ka espesifye davans; yo dwe jwenn yo nan gwoup la. Ak gwoup la pa estatik: pou kèk paramèt ou pral oblije kontwole chanjman yo. Ak isit la Ansible deja manke: ou bezwen yon pwogram ki ap viv nan yon gwoup, i.e. Operatè Kubernetes.

Moun ki te eseye li nan travay la shell-operateur, yo pral di ke travay yo nan enstale ak mete ajou ajoute-ons ak anviwònman siveyans ka konplètman rezoud lè l sèvi avèk kwòk pou shell-operateur. Ou ka ekri yon script ki pral fè yon kondisyonèl kubectl apply epi kontwole, pou egzanp, ConfigMap, kote paramèt yo pral estoke. Sa a se apeprè sa ki aplike nan addon-operator.

Ki jan sa a òganize nan addon-operator?

Lè nou kreye yon nouvo solisyon, nou te soti nan prensip sa yo:

  • Enstalatè siplemantè a dwe sipòte modèl ak konfigirasyon deklarasyon. Nou pa fè scripts majik ki enstale add-ons. Addon-operatè itilize Helm pou enstale addons. Pou enstale, ou bezwen kreye yon tablo epi chwazi valè yo pral itilize pou konfigirasyon.
  • Anviwònman yo ka jenere sou enstalasyon, Yo kapab jwenn nan grapOswa resevwa mizajou, siveyans resous cluster. Operasyon sa yo ka aplike lè l sèvi avèk kwòk.
  • Anviwònman yo ka magazen nan yon grap. Pou estoke paramèt yo nan gwoup la, yo kreye yon ConfigMap/addon-operator epi Addon-operator la kontwole chanjman nan ConfigMap sa a. Addon-operatè bay kwòk aksè nan anviwònman lè l sèvi avèk konvansyon senp.
  • Anplis de sa depann de anviwònman yo. Si anviwònman yo chanje, Lè sa a, Addon-operatè a woule tablo Helm la ak nouvo valè. Nou rele konbinezon tablo Helm, valè pou li ak kwòk yon modil (gade anba a pou plis detay).
  • Etap. Pa gen okenn scripts lage majik. Mekanis aktyalizasyon a sanble ak yon aplikasyon regilye - kolekte adisyon ak operatè addon nan yon imaj, tag yo epi woule yo.
  • Kontwòl rezilta. Addon-operatè ka bay mezi pou Prometheus.

Ki sa ki padding nan addon-operatè?

Yon adisyon ka konsidere kòm nenpòt bagay ki ajoute nouvo fonksyon nan gwoup la. Pou egzanp, enstale Ingress se yon bon egzanp yon adisyon. Sa a ka nenpòt operatè oswa kontwolè ak pwòp CRD li yo: prometheus-operator, cert-manager, kube-controller-manager, elatriye. Oswa yon bagay ki piti, men ki pi fasil pou itilize - pou egzanp, kopye sekrè, ki kopye sekrè rejis nan nouvo espas non, oswa sysctl tuner, ki konfigirasyon paramèt sysctl sou nouvo nœuds.

Pou aplike add-ons, Addon-operatè bay plizyè konsèp:

  • Tablo Helm itilize pou enstale divès kalite lojisyèl nan gwoup la - pou egzanp, Prometheus, Grafana, nginx-ingress. Si eleman obligatwa a gen yon tablo Helm, Lè sa a, enstale li lè l sèvi avèk Addon-operatè pral trè senp.
  • Depo valè. Tablo Helm anjeneral gen anpil anviwònman diferan ki ka chanje sou tan. Addon-operatè sipòte estoke anviwònman sa yo epi li ka kontwole chanjman yo nan lòd yo reenstale tablo Helm la ak nouvo valè.
  • Kwòk se dosye ègzèkutabl ke Addon-operatè a kouri sou evènman ak ki gen aksè nan magazen an valè. Kwòk la ka kontwole chanjman nan gwoup la ak mete ajou valè yo nan magazen an valè. Moun sa yo. Sèvi ak kwòk, ou ka fè dekouvèt pou kolekte valè nan gwoup la nan demaraj oswa selon yon orè, oswa ou ka fè dekouvèt kontinyèl, kolekte valè nan gwoup la ki baze sou chanjman nan gwoup la.
  • Modil se yon konbinezon de yon tablo Helm, yon magazen valè ak kwòk. Modil yo ka aktive oswa enfim. Enfim yon modil vle di efase tout degaje tablo Helm. Modil yo ka pèmèt tèt yo dinamik, pou egzanp, si tout modil li bezwen yo aktive oswa si dekouvèt te jwenn paramèt ki nesesè yo nan kwòk yo - sa a se fè lè l sèvi avèk yon script oksilyè pèmèt.
  • Kwòk mondyal. Sa yo se kwòk "pou pwòp yo", yo pa enkli nan modil epi yo gen aksè a yon magazen valè mondyal, valè yo ki disponib nan tout kwòk nan modil.

Ki jan pati sa yo travay ansanm? Ann gade foto ki soti nan dokiman an:

Èske li fasil ak pratik pou prepare yon gwoup Kubernetes? Anonse addon-operatè

Gen de senaryo travay:

  1. Hook mondyal la deklanche pa yon evènman - pou egzanp, lè yon resous nan gwoup la chanje. Kwòk sa a trete chanjman yo epi ekri nouvo valè yo nan magazen valè mondyal la. Addon-operatè remake ke depo mondyal la chanje epi li kòmanse tout modil yo. Chak modil, lè l sèvi avèk kwòk li yo, detèmine si li bezwen yo dwe aktive epi mete ajou magazen valè li yo. Si modil la aktive, Addon-operatè a kòmanse enstalasyon tablo Helm la. Nan ka sa a, tablo Helm la gen aksè a valè ki soti nan depo modil la ak nan depo mondyal la.
  2. Dezyèm senaryo a se pi senp: yon zen modil deklanche pa yon evènman ak chanje valè nan magazen valè modil la. Addon-operatè remake sa epi lanse tablo Helm la ak valè mete ajou.

Anplis de sa a ka aplike kòm yon sèl zen, oswa kòm yon tablo Helm, oswa menm jan plizyè modil depandan - sa a depann de konpleksite nan eleman yo te enstale nan gwoup la ak sou nivo a vle nan fleksibilite konfigirasyon. Pou egzanp, nan depo a (/egzanp) gen yon sysctl-tuner add-on, ki aplike tou de kòm yon modil senp ak yon zen ak yon tablo Helm, ak lè l sèvi avèk magazen an valè, ki fè li posib ajoute anviwònman pa koreksyon ConfigMap.

Livrezon de mizajou

Yon kèk mo sou òganize mizajou eleman ke Addon-operatè enstale.

Pou kouri Addon-operator nan yon gwoup, ou bezwen bati yon imaj ak adisyon nan fòm zen ak dosye Helm tablo, ajoute yon dosye binè addon-operator ak tout sa ou bezwen pou kwòk: bash, kubectl, jq, python elatriye. Lè sa a, imaj sa a ka woule soti nan gwoup la kòm yon aplikasyon regilye, epi gen plis chans ou pral vle òganize youn oswa yon lòt konplo tagging. Si gen kèk grap, apwòch la menm jan ak aplikasyon yo ka apwopriye: nouvo lage, nouvo vèsyon, ale nan tout grap ak korije imaj la nan gous yo. Sepandan, nan ka a nan yon déploiement nan yon kantite siyifikatif nan grap, konsèp nan pwòp tèt ou aktyalizasyon soti nan yon chanèl te pi apwopriye pou nou.

Men ki jan nou fè li:

  • Yon kanal se esansyèlman yon idantifyan ki ka mete nan nenpòt bagay (pa egzanp, dev/stage/ea/stable).
  • Non chanèl la se tag imaj la. Lè ou bezwen woule mizajou nan yon chanèl, yo rasanble yon nouvo imaj epi make non chanèl la.
  • Lè yon nouvo imaj parèt nan rejis la, Addon-operatè rekòmanse ak lanse ak nouvo imaj la.

Sa a se pa pi bon pratik, jan sa ekri nan Dokiman Kubernetes. Li pa rekòmande fè sa, men nou ap pale de yon aplikasyon regilye ki abite nan menm gwoup la. Nan ka a nan Addon-operatè, yon aplikasyon se yon anpil nan Deplwaman gaye atravè grap, ak pwòp tèt ou-mizajou ede anpil ak fè lavi pi fasil.

Chanèl ede ak nan tès: si gen yon gwoup oksilyè, ou ka configured li nan kanal la stage epi woule mizajou nan li anvan woule li sou chanèl yo ea и stable. Si ak yon grap sou chanèl la ea yon erè te fèt, ou ka chanje li nan stable, pandan y ap envestige pwoblèm nan ak gwoup sa a. Si yo retire gwoup la nan sipò aktif, li chanje nan kanal "jele" li yo - pou egzanp, freeze-2019-03-20.

Anplis de ajou kwòk ak tablo Helm, ou ka bezwen aktyalizasyon ak eleman twazyèm pati. Pou egzanp, ou remake yon ensèk nan ekspòtatè a ne kondisyonèl e menm kalkile ki jan yo patch li. Apre sa, ou louvri PR a epi w ap tann nouvo lage a ale nan tout grap yo ak ogmante vèsyon an nan imaj la. Yo nan lòd yo pa rete tann endefiniman, ou ka bati ekspòtatè ne ou a epi chanje nan li anvan ou aksepte PR la.

An jeneral, sa ka fèt san Addon-operator, men ak Addon-operator modil la pou enstale node-exportater yo pral vizib nan yon sèl repozitwa, Dockerfile a pou bati imaj ou ka kenbe dwa la, li vin pi fasil pou tout patisipan yo nan. pwosesis la konprann sa k ap pase... Men, si gen plizyè grap, Lè sa a, li vin pi fasil tou de teste PR ou ak woule soti yon nouvo vèsyon!

Òganizasyon sa a nan ajou eleman travay avèk siksè pou nou, men nenpòt lòt konplo apwopriye ka aplike - apre tout nan ka sa a Addon-operatè se yon senp dosye binè.

Konklizyon

Prensip yo aplike nan Addon-operatè pèmèt ou bati yon pwosesis transparan pou kreye, teste, enstale ak mete ajou add-ons nan yon gwoup, menm jan ak pwosesis devlopman aplikasyon regilye yo.

Add-ons pou Addon-operatè nan fòma modil (Helm tablo + kwòk) ka disponib piblikman. Nou, konpayi Flant, planifye pou pibliye devlopman nou yo sou fòm adisyon sa yo pandan ete a. Antre nan devlopman sou GitHub (shell-operateur, addon-operatè), eseye fè adisyon pwòp ou a ki baze sou egzanp и dokiman, tann nouvèl sou Habré ak sou nou Chanèl YouTube!

PS

Li tou sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè