Hawl-wadeennada Kubernetes: sida loo socodsiiyo codsiyada xaaladdaha leh

Dhibaatada codsiyada sharciga ah ee Kubernetes

Habaynta, bilaabista iyo kordhinta dheeraadka ah ee codsiyada iyo adeegyada waa sahlan tahay marka ay timaado kiisaska lagu sifeeyay inay yihiin bilaa wadan, i.. adoon keydin xogta. Way ku habboon tahay in lagu socodsiiyo adeegyadan oo kale gudaha Kubernetes, iyadoo la adeegsanayo API-yada caadiga ah, sababtoo ah wax walba waxay ka dhacaan "ka baxsan sanduuqa": marka loo eego qaabeynta caadiga ah, iyada oo aan ku lug lahayn wax gaar ah ama sixir.

Si fudud loo dhigo, si aad u bilawdo shan koobi oo dheeri ah oo ku yaal PHP/Ruby/Python oo ku jira koox weel ah, kaliya waxaad u baahan tahay inaad dejiso server cusub 5 jeer oo aad nuqul ka sameyso ilaha. Maadaama koodka isha iyo qoraalka init labaduba ay ku yaaliin sawirka, cabirida codsiga bilaa dal waxay noqotaa mid dhamaystiran. Sida taageerayaasha weelasha iyo qaab-dhismeedka microservice-ka ay si fiican u garanayaan, dhibtu waxay ku bilaabataa apps dawladeed, i.e. oo leh xog ku adkaysasho sida kaydka xogta iyo kaydinta (MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra...). Tani waxay khusaysaa labada software ee si madaxbanaan u fulisa kutlada kooramka (tusaale, Percona XtraDB iyo Cassandra), iyo software u baahan agabka maaraynta ee goonida ah (sida Redis, MySQL, PostgreSQL...).

Dhibaatooyin ayaa soo baxa sababtoo ah koodhka isha iyo bilaabista adeegga kuma filna - waxaad u baahan tahay inaad sameyso tallaabooyin dheeraad ah. Ugu yaraan, koobbi xogta iyo/ama ku biir kooxda Si sax ah, adeegyadani waxay u baahan yihiin fahamka sida habboon ee loo cabbiro, loo cusboonaysiiyo oo dib loogu habeeyo iyaga oo aan lumin xogta ama helitaan ku meel gaar ah. Marka la tixgeliyo baahiyahaas waxaa loo yaqaan "aqoon hawleed".

Hawlwadeenada CoreOS

Si loo "barnaamiyo" aqoonta hawlgalka, dabayaaqadii sanadkii hore mashruuca CoreOS soo bandhigay "Nooc cusub oo software ah" oo loogu talagalay madal Kubernetes - Hawl-wadeenada (laga bilaabo Ingiriisiga "hawlgalka", i.e. "hawlgalka").

Hawl-wadeennada isticmaalaya oo fidinaya awoodaha asaasiga ah ee Kubernetes (ay ku jiraan. StatefulSets, eeg farqiga hoose) u ogolow khabiirada DevOps inay ku daraan aqoonta hawlgalka code code.

Ujeedada Hawl-wadeenka - sii adeegsadaha API kaas oo kuu ogolaanaya inaad maamusho hay'ado badan oo codsi ah oo ku jira kutlada Kubernetes, adoon ka fikirin waxa ku jira daboolka (xogta iyo waxa lagu samaynayo, amarrada wali loo baahan yahay in la fuliyo si loo ilaaliyo kooxda ). Dhab ahaantii, Hawl-wadeenka waxa loogu talagalay in uu ku fududeeyo shaqada arjiga ku jira kutlada inta ugu badan ee suurtogalka ah, isaga oo si otomaatig ah u fulinaya hawlaha hawlgelinta ee markii hore ay ahayd in gacanta lagu xalliyo.

Sida Hawl-wadeenadu u Shaqeeyaan

Dib u habeynta Kubernetes wuxuu kuu ogolaanayaa inaad qeexdo tirada la rabo ee boodhadhka ordaya, iyo koontaroolayaashu waxay xaqiijiyaan in nambarkooda la hayo (iyaga oo abuuraya oo tirtiraya pods). Hawlwadeenku wuxuu u shaqeeyaa si la mid ah, isagoo ku daraya tiro aqoon hawleed ah ilaha caadiga ah ee Kubernetes iyo kantaroolaha kaas oo kuu ogolaanaya inaad samayso waxqabadyo dheeraad ah si aad u taageerto tirada loo baahan yahay ee hay'adaha codsiga.

Sidee tani uga duwan tahay StatefulSets, loogu talagalay codsiyada u baahan kooxdu si ay u siiso iyaga ilaha xogta sida kaydinta xogta ama IP-yada taagan? Codsiyada noocaan ah, Hawlwadeenada ayaa isticmaali kara StatefulSets (halkii Dib u habeynta) gundhig ahaan, wax u bixinta Automation dheeraad ahSamee ficilada lagama maarmaanka ah haddii ay dhacdo shilal, samee gurmad, cusboonaysii qaabeynta, iwm.

Sidaas Sidee waxaas oo dhami u shaqeeyaan? Hawlwadeenku waa maareeye daemon oo:

  1. ku biirto dhacdada API ee Kubernetes;
  2. waxay ka helaysaa xogta ku saabsan nidaamka (oo ku saabsan Dib u habeynta, qeybiyo, adeegyada iyo wixii la mid ah.);
  3. helaya xog ku saabsan Khayraadka Qaybta Saddexaad (eeg tusaalooyinka hoose);
  4. ka falceliya muuqaalka/isbeddelka Khayraadka Qaybta Saddexaad (tusaale ahaan, in la beddelo cabbirka, beddelka nooca, iyo wixii la mid ah);
  5. ka falcelisa isbeddelada ku yimi xaaladda nidaamka (ku saabsan keeda Dib u habeynta, qeybiyo, adeegyada iyo wixii la mid ah.);
  6. ugu muhiimsan:
    1. waxay ku baaqaysaa Kubernetes API si ay u abuurto wax kasta oo ay u baahan tahay (mar kale, iyadu Dib u habeynta, qeybiyo, adeegyada...),
    2. sameeya wax sixir ah (si loo fududeeyo, waxaad u malayn kartaa in Hawl-wadeenku laftiisa galo boholaha wuxuuna wacaa amarrada, tusaale ahaan, inuu ku biiro koox ama inuu cusboonaysiiyo qaabka xogta marka la cusboonaysiinayo nooca).

Hawl-wadeennada Kubernetes: sida loo socodsiiyo codsiyada xaaladdaha leh
Dhab ahaantii, sida laga arki karo sawirka, codsi gaar ah ayaa si fudud loogu daray Kubernetes (caadi ah Bixitaan с ReplicaSet), kaas oo loo yaqaan Operator. Waxay ku nooshahay baal caadi ah (sida caadiga ah hal kaliya) iyo, sida caadiga ah, waxay mas'uul ka tahay oo keliya Magaca Magaca. Codsigan hawlwadeenku waxa uu fuliyaa API-giisa - in kasta oo aanu si toos ah ahayn, balse loo marayo Khayraadka Qaybta Saddexaad ee Kubernetes.

Sidaa darteed, ka dib markii aynu samaynay Magaca Magaca Hawl-wadeen, waan ku dari karnaa Khayraadka Qaybta Saddexaad.

Tusaale iwm (hoos ka eeg faahfaahinta):

apiVersion: etcd.coreos.com/v1beta1
kind: Cluster
metadata:
  name: example-etcd-cluster
spec:
  size: 3
  version: 3.1.0

Tusaale Elasticsearch:

apiVersion: enterprises.upmc.com/v1
kind: ElasticsearchCluster
metadata:
  name: example-es-cluster
spec:
  client-node-replicas: 3
  master-node-replicas: 2
  data-node-replicas: 3
  zones:
  - us-east-1c
  - us-east-1d
  - us-east-1e
  data-volume-size: 10Gi
  java-options: "-Xms1024m -Xmx1024m"
  snapshot:
    scheduler-enabled: true
    bucket-name: elasticsnapshots99
    cron-schedule: "@every 2m"
  storage:
    type: gp2
    storage-class-provisioner: kubernetes.io/aws-ebs

Shuruudaha looga baahan yahay Hawl-wadeenada

CoreOS waxa ay dejisay qaababka ugu muhiimsan ee ay heleen injineeradu markii ay ka shaqaynayeen Hawl-wadeenada. In kasta oo xaqiiqda ah in dhammaan hawl-wadeennada ay yihiin shakhsi (loo sameeyay codsi gaar ah oo leh sifooyinkeeda iyo baahidooda), abuurkoodu waa inuu ku salaysan yahay nooc qaabayn ah oo soo rogaya shuruudaha soo socda:

  1. Rakibaadda waa in lagu sameeyaa hal mar Bixitaan: kubectl samee -f SAME_OPERATOR_URL/deployment.yaml - oo uma baahna ficillo dheeraad ah.
  2. Marka lagu rakibayo Operator gudaha Kubernetes, nooc cusub oo qolo saddexaad ah waa in la abuuraa (Ilaha Saddexaad). Si loo bilaabo tusaalooyinka arjiga (tusaalada kooxda) oo loo sii maareeyo (cusboonaysiinta noocyada, dib u habeynta, iwm.), isticmaaluhu wuxuu isticmaali doonaa noocaan.
  3. Mar kasta oo ay suurtagal tahay, waa inaad isticmaashaa waxyaabaha aasaasiga ah ee lagu dhisay Kubernetes, sida adeegyada ΠΈ Dib u habeyntasi aad u isticmaasho kood si fiican loo tijaabiyay oo la fahmi karo.
  4. Waxay u baahan tahay dib u waafaqid hawl-wadeenada iyo taageerada noocyada duuga ah ee agabka isticmaalaha-abuuray.
  5. Haddii hawlwadeenka meesha laga saaro, arjiga laftiisa waa inuu sii shaqeeyaa iyada oo aan isbedelin.
  6. Isticmaalayaashu waa inay awoodaan inay qeexaan nooca dalabka ee la doonayo iyo inay abaabulaan cusboonaysiinta nooca arjiga. La'aanta cusboonaysiinta software-ku waa isha caadiga ah ee dhibaatooyinka hawlgalka iyo amniga, sidaa darteed hawl-wadeenadu waa inay ka caawiyaan isticmaalayaasha arrintan.
  7. Hawl-wadeenada waa in lagu tijaabiyaa qalab sida daanyeer Chaos ah, kaas oo tilmaamaya guul-darrooyinka iman kara ee galalka, qaabaynta, iyo shabakadda.

iwm. Hawlwadeen

Tusaalaha Fulinta Hawl-wadeenka - iwm. Hawl-wadeen, diyaarisay maalinta lagu dhawaaqo fikraddan. Qaabeynta kooxda iwm waxay noqon kartaa mid adag sababta oo ah baahida loo qabo ilaalinta kooramka, baahida dib-u-habaynta xubinnimada kooxda, abuurista kaydin, iwm. Tusaale ahaan, gacanta oo lagu cabbiro kutlada iwm waxay ka dhigan tahay inaad u baahan tahay inaad magac DNS u samayso xubin kooxeed cusub, bilaw hay'ad cusub iwm, oo u dig kooxda ku saabsan xubinta cusub (etcdctl xubin ku dar). Xaaladda Operator, isticmaaluhu wuxuu kaliya u baahan doonaa inuu beddelo cabbirka kooxda - wax kasta oo kale ayaa si toos ah u dhacaya.

Iyo mar haddii etcd sidoo kale lagu abuuray CoreOS, waxay ahayd arrin macquul ah in la arko Hawl-galkeeda oo marka hore soo muuqda. Sidee ayuu u shaqeeyaa? Hawlwadeenka macquulka iwm waxaa lagu go'aamiyaa saddex qaybood:

  1. U fiirso. Hawlwadeenku waxa uu la socdaa xaaladda kooxda isagoo isticmaalaya Kubernetes API.
  2. Falanqaynta. Wuxuu helaa faraqa u dhexeeya heerka hadda jira iyo midka la doonayo (oo lagu qeexay qaabeynta isticmaale).
  3. Ficil Wuxuu xalliyaa kala duwanaanshaha la ogaaday iyadoo la adeegsanayo iwmd iyo/ama Kubernetes adeegga APIs.

Hawl-wadeennada Kubernetes: sida loo socodsiiyo codsiyada xaaladdaha leh

Si loo hirgeliyo caqli-galkan, hawl-wadeenka waxaa loo diyaariyay shaqooyin Abuur/burburin (abuurista iyo tirtiridda xubnaha kutlada iwm) iyo Dib u habeyn (isbeddelka tirada xubnaha kutlada). Saxnaanta hawlgalkeeda ayaa la hubiyay iyadoo la adeegsanayo tamar loo abuuray shabaha daanyeerka Chaos ee Netflix, i.e. dilida iwm si aan kala sooc lahayn.

Hawlgalka buuxa ee etcd, hawlwadeenku waxa uu bixiyaa sifooyin dheeraad ah: kaabta (si toos ah oo aan loo arki karin isticmaalayaasha abuurista nuqulo gurmad ah - qaabeynta waa ku filan tahay in la go'aamiyo inta jeer ee la sameeyo iyo inta la kaydinayo - iyo soo celinta xogta ku xigta) iyo casriyayn (cusbooneysiinta rakibaadda iwm iyada oo aan waqti-dhimis lahayn).

Sidee ayay u egtahay la shaqaynta Hawlwadeenka?

$ kubectl create -f https://coreos.com/operators/etcd/latest/deployment.yaml
$ kubectl create -f https://coreos.com/operators/etcd/latest/example-etcd-cluster.yaml
$ kubectl get pods
NAME                             READY     STATUS    RESTARTS   AGE
etcd-cluster-0000                1/1       Running   0          23s
etcd-cluster-0001                1/1       Running   0          16s
etcd-cluster-0002                1/1       Running   0          8s
etcd-cluster-backup-tool-rhygq   1/1       Running   0          18s

Xaaladda hadda ee Operator etcd waa nooca beta, oo u baahan Kubernetes 1.5.3+ iyo etcd 3.0+ si uu u shaqeeyo. Koodhka isha iyo dukumentiyada (ay ku jiraan tilmaamaha isticmaalka) ayaa laga heli karaa at GitHub.

Tusaale kale hirgelinta CoreOS ayaa la abuuray - Hawl-wadeenka Prometheus, laakiin wali waxay ku jirtaa nooca alfa (dhammaan sifooyinka la qorsheeyay lama hirgelin).

Xaalada iyo rajada

5 bilood ayaa ka soo wareegtay markii lagu dhawaaqay Hawl-wadeenada Kubernetes. Weli waxaa jira laba fulin oo keliya oo laga heli karo kaydka rasmiga ah ee CoreOS (ee etcd iyo Prometheus). Labaduba weli may gaadhin noocyadoodii degganaa, laakiin ballan-qaadyada waa la ilaaliyaa maalin kasta.

Horumariyayaashu waxay saadaaliyaan "mustaqbalka ay isticmaalayaashu ku rakibaan Hawl-wadeennada Postgres, Hawl-wadeennada Cassandra ama Redis Operators kooxahooda Kubernetes oo ay ula shaqeeyaan hay'adaha la cabbiri karo ee codsiyadan si fudud sida geynta nuqullada codsiyada shabakadda ee aan waddan lahayn maanta." Marka hore Hawl-wadeennada ka socda soo-saarayaasha dhinac saddexaad runtii bilaabay inuu soo muuqdo:

Shirkii ugu weynaa ee software-ka bilaashka ah ee Yurub FOSDEM, kaas oo dhacay Febraayo 2017 ee Brussels, Josh Wood oo ka socda CoreOS ayaa ku dhawaaqay Hawl-wadeennada warbixin (fiidiyow ayaa laga heli karaa isku xirka!), Kaas oo gacan ka geysanaya kobaca caannimada fikraddan ee bulshada Isha furan ee ballaaran.

PS Waad ku mahadsan tahay xiisahaada maqaalka! Subscribe dheh xuduntayada, si aysan u lumin agabka iyo cuntooyinka cusub ee DevOps iyo GNU/Linux maamulka nidaamka - waxaan si joogto ah u daabici doonaa!

Source: www.habr.com

Add a comment