Soo bandhigida Kubernetes CCM (Maareeyaha Xakamaynta Daruuraha) ee Yandex.Cloud

Soo bandhigida Kubernetes CCM (Maareeyaha Xakamaynta Daruuraha) ee Yandex.Cloud

In la sii wado ilaa dhawaan Siideynta darawalka CSI Yandex.Cloud waxaan u daabacaynaa mashruuc kale oo Isha Furan ee daruurtan - Cloud Controller Manager. CCM looma baahna oo kaliya kooxda guud ahaan, laakiin sidoo kale darawalka CSI laftiisa. Faahfaahinta ku saabsan ujeeddadeeda iyo qaar ka mid ah sifooyinka fulinta ayaa hoos ku qoran.

Horudhac

Waa maxay sababta tani?

Ujeedooyinka nagu kallifay inaan u horumarino CCM ee Yandex.Cloud waxay si buuxda ula mid yihiin kuwii hore loogu sharraxay ogeysiis Darawalada CSI. Waxaan ilaalinaa kooxo badan oo Kubernetes ah oo ka socda bixiyeyaasha daruuraha kala duwan, kuwaas oo aan u isticmaalno hal qalab. Waxay fulisaa fudaydyo badan "iyaga oo dhaaftay" xalalka la maareeyay ee bixiyayaashan. Haa, waxaanu haynaa kiis iyo baahiyo gaar ah, laakiin horumarka la abuuray iyaga ayaa laga yaabaa inay faa'iido u yeeshaan isticmaalayaasha kale.

Waa maxay dhab ahaan CCM?

Caadi ahaan, waxaanu u diyaarinaa deegaanka nagu wareegsan kooxda dibadda ka yimid - tusaale ahaan, isticmaalka Terraform. Laakiin mararka qaarkood waxaa jirta baahi loo qabo in la maareeyo deegaanka daruuraha ee nagu wareegsan ka soo jeeda. Suurtagalnimadan waa la bixiyaa, waana tan la hirgeliyay TLC.

Gaar ahaan, Maareeyaha Xakamaynta Cloud wuxuu bixiyaa shan nooc oo is dhexgalka ah:

  1. dhacdooyin - Waxay fulisaa xiriirka 1: 1 ee ka dhexeeya shayga noode ee Kubernetes (Node) iyo mashiinka farsamada ee bixiyaha daruuraha. Taas awgeed waxaan:
    • buuxi garoonka spec.providerID shayga dhexdiisa Node. Tusaale ahaan, OpenStack CCM goobtani waxay leedahay qaabkan soo socda: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. Waxaad arki kartaa magaca bixiyaha daruuraha iyo UUID-ga gaarka ah ee server-ka (mashiinka Virtual ee OpenStack) ee shayga;
    • dhamaystirid nodeInfo shayga dhexdiisa Node macluumaadka ku saabsan mashiinka farsamada. Tusaale ahaan, waxaan ku qeexnaa nooca tusaale ahaan AWS;
    • Waxaan hubineynaa joogitaanka mashiinka farsamada ee daruuraha. Tusaale ahaan, haddii shay Node galay xaalad NotReady, waxaad ku hubin kartaa in mishiinka farsamada gacanta uu ku jiro gabi ahaanba bixiyaha daruuraha providerID. Haddii aysan meesha ku jirin, tirtir shayga Node, taasoo haddii kale ku sii jiri lahayd kooxda weligeed;
  2. Zones - waxay dejisaa bogga guuldarada ee shayga Node, si jadwalku uu u dooran karo noodhka Pod sida waafaqsan gobollada iyo aagagga bixiyaha daruuraha;
  3. LoadBalancer - marka la abuurayo shay Service nooc leh LoadBalancer abuuraa nooc dheeli tiran oo hagi doona taraafikada dibadda ilaa qanjidhada kooxda. Tusaale ahaan, Yandex.Cloud waxaad ku isticmaali kartaa NetworkLoadBalancer ΠΈ TargetGroup ujeedooyinkan;
  4. wadada - waxay dhistaa shabakad u dhaxaysa qanjidhada, sababtoo ah Marka loo eego shuruudaha Kubernetes, boodh kastaa waa inuu lahaadaa ciwaanka IP-ga u gaar ah oo uu awood u leeyahay inuu gaadho meel kasta oo kale. Ujeeddooyinkan, waxaad isticmaali kartaa shabakad dul-saaran (VXLAN, GENEVE) ama waxaad si toos ah u dejisan kartaa miis-wareejin gudaha shabakadda farsamada ee bixiyaha daruuraha:

    Soo bandhigida Kubernetes CCM (Maareeyaha Xakamaynta Daruuraha) ee Yandex.Cloud

  5. mugga -Waxay ogolaataa dalbashada firfircoon ee PV iyadoo la adeegsanayo PVC iyo SC. Markii hore, shaqadani waxay ahayd qayb ka mid ah CCM, laakiin kakanaanta weyn awgeed waxaa loo raray mashruuc gaar ah, Interface Kaydinta Kontaynarrada (CSI). Waxaan ka hadalnay CSI in ka badan hal mar qoray iyo, sidii horeba loo sheegay, xataa la sii daayay Darawalka CSI.

Markii hore, dhammaan koodka la falgalaya daruurta waxay ku yaalliin kaydka ugu weyn ee Git ee mashruuca Kubernetes k8s.io/kubernetes/pkg/cloudprovider/providers, laakiin waxay go'aansadeen in ay ka tanaasulaan tan sababtoo ah dhibta leh ee la shaqeynta saldhig weyn oo kood ah. Dhammaan hirgelintii hore ayaa loo raray kayd gooni ah. Si ay ugu habboonaato taageero iyo horumarin dheeraad ah, dhammaan qaybaha guud ayaa sidoo kale loo raray kayd gooni ah.

Sida CSI-da, bixiyeyaasha daruuraha waaweyn ee badan ayaa mar hore nashqadeeyay CCM-yadooda si ay uga faa'iidaystaan ​​daruuraha Kubernetes. Haddii alaab-qeybiyuhu uusan lahayn CCM, laakiin dhammaan howlaha lagama maarmaanka ah waxaa laga heli karaa API, markaa adiga ayaa hirgelin kara CCM laftaada.

Si aad u qorto fulintaada CCM, waa ku filan inaad hirgeliso loo baahan yahay Go interfaces.

И tani waa waxa aan helnay.

РСализация

Sidee ku timid tan

Waxaan bilownay horumarinta (ama halkii, xitaa isticmaal) leh diyaar (!) CCM Yandex.Cloud sanad ka hor.

Si kastaba ha ahaatee, hirgelintan waxa naga maqnayd:

  • aqoonsiga iyada oo loo marayo JWT IAM token;
  • Taageerada maamulaha adeegga.

Iyadoo la raacayo qoraaga (dlisin) Telegram-ka, waxaanu fargeeto maamulaha-yandex-cloud-controller oo aanu ku darnay hawlaha maqan.

Astaamaha furaha ah

Hadda, CCM waxay taageertaa is-dhexgalka soo socda:

  • dhacdooyin;
  • Zones;
  • LoadBalancer.

Mustaqbalka, marka Yandex.Cloud uu bilaabo inuu la shaqeeyo awoodaha VPC ee horumarsan, waxaan ku dari doonaa interface wadooyinka.

LoadBalanacer sida caqabadda ugu weyn

Markii hore, waxaan isku daynay, sida fulinta kale ee CCM, inaan abuurno labo ka mid ah LoadBalancer ΠΈ TargetGroup midkiiba Service nooc leh LoadBalancer. Si kastaba ha ahaatee, Yandex.Cloud waxay heshay hal xaddidan oo xiiso leh: ma isticmaali kartid TargetGroups isgoysyada leh Targets (labo SubnetID - IpAddress).

Soo bandhigida Kubernetes CCM (Maareeyaha Xakamaynta Daruuraha) ee Yandex.Cloud

Sidaa darteed, gudaha CCM-da la abuuray, koontarool ayaa la bilaabay, kaas oo, marka walxaha isbeddelaan Node ururiya macluumaadka ku saabsan dhammaan is-dhex-galka mishiin kasta, iyaga oo u kooxeeya sida ay u leeyihiin qaar ka mid ah NetworkID, abuurta by TargetGroup on NetworkID, iyo sidoo kale kormeero ku habboonaanta. Ka dib, marka la abuurayo shay Service nooc leh LoadBalanacer waxaanu si fudud ugu lifaaqnaa mid hore loo abuuray TargetGroup ku cusub NetworkLoadBalanacer'Aniga

Sidee loo bilaabo isticmaalka?

CCM waxa ay taageertaa nooca Kubernetes 1.15 iyo wixii ka sareeya. Kutlada, si ay u shaqeyso, waxay u baahan tahay in calanka --cloud-provider=external ayaa loo dhigay true loogu talagalay kube-apiserver, maamulaha-kube-controller, kube-scheduler iyo dhammaan kubelets.

Dhammaan tallaabooyinka lagama maarmaanka u ah rakibidda lafteeda ayaa lagu sharraxay README. Rakibaadda waxay hoos ugu dhacdaa abuurista walxaha Kubernetes ee muujinta.

Si aad u isticmaasho CCM waxaad sidoo kale u baahan doontaa:

  • tilmaan gudaha bayaanka aqoonsiga tusaha (folder-id) Yandex.Cloud;
  • koontada adeegga ee la falgalka Yandex.Cloud API. In manifesto Secret waa lagama maarmaan wareejinta furayaasha idman laga bilaabo xisaabta adeegga. Dukumentiyada lagu tilmaamay, sida loo sameeyo akoon adeeg oo loo helo furayaasha.

Waan ku farxi doonaa inaan helno jawaab celintaada iyo arimo cusubhaddii aad la kulanto wax dhibaato ah!

Natiijooyinka

Waxaanu isticmaalnay CCM-da la hirgaliyay ee shanta Kubernetes labadii todobaad ee la soo dhaafay waxaana qorshaynay inaanu tiradooda ku kordhino 20 bisha soo socota. Hadda kuma talineyno isticmaalka CCM ee rakibaadaha waaweyn iyo kuwa muhiimka ah ee K8s.

Sida kiiska CSI, waan ku farxi doonaa haddii horumarinta Yandex ay qaataan horumarinta iyo taageerada mashruucan - waxaan diyaar u nahay inaan ku wareejinno kaydka codsigooda si aan ula tacaalno hawlaha nagu habboon.

PS

Sidoo kale ka akhri boggayaga:

Source: www.habr.com

Add a comment