ProHoster > Blag > Riarachán > Kubernetes CCM (Bainisteoir Rialaithe Cloud) a thabhairt isteach do Yandex.Cloud
Kubernetes CCM (Bainisteoir Rialaithe Cloud) a thabhairt isteach do Yandex.Cloud
Ar aghaidh leis an gceann deireanach CSI scaoileadh tiománaí le haghaidh Yandex.Cloud tá tionscadal Foinse Oscailte eile á fhoilsiú againn don scamall seo - Bainisteoir rialtóir scamall. Tá CCM ag teastáil ní hamháin don bhraisle ina iomláine, ach freisin don tiománaí CSI féin. Tá sonraí faoina chuspóir agus roinnt gnéithe cur chun feidhme á ghearradh.
Réamhrá
Cén fáth é seo?
Tá na cúiseanna a spreag sinn chun CCM a fhorbairt do Yandex.Cloud ag teacht go hiomlán leis na cinn a bhfuil cur síos déanta orthu cheana féin fógraí Tiománaithe do CSI. Coinnímid go leor braislí Kubernetes ó sholáthraithe scamall éagsúla, agus úsáidimid uirlis amháin ina leith. Cuireann sé áiseanna iomadúla i bhfeidhm “ag seachaint” réitigh bhainistithe na soláthraithe seo. Sea, tá cás agus riachtanais sách sonrach againn, ach d'fhéadfadh na forbairtí a cruthaíodh mar gheall orthu a bheith úsáideach d'úsáideoirí eile.
Cad é go díreach CCM?
Go hiondúil, ullmhaímid an timpeallacht thart orainn don bhraisle ón taobh amuigh - mar shampla, ag baint úsáide as Terraform. Ach uaireanta is gá an timpeallacht scamall timpeall orainn a bhainistiú ó bhraisle. Cuirtear an fhéidearthacht seo ar fáil, agus is í a chuirtear i bhfeidhm TLC.
Go sonrach, soláthraíonn Cloud Controller Manager cúig phríomhchineál idirghníomhaíochta:
Imeachtaí – cuireann sé caidreamh 1:1 i bhfeidhm idir réad nód in Kubernetes (Node) agus meaisín fíorúil sa scamall soláthraí. Chun seo táimid:
líon isteach an réimse spec.providerID sa réad Node. Mar shampla, le haghaidh OpenStack CCM tá an fhormáid seo a leanas ag an réimse seo: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. Is féidir leat ainm an tsoláthraí néil agus UUID uathúil an fhreastalaí (meaisín fíorúil in OpenStack) an oibiachta a fheiceáil;
comhlánú nodeInfo sa réad Node Eolas faoin meaisín fíorúil. Mar shampla, sonraímid cineál mar shampla in AWS;
Déanaimid seiceáil ar láithreacht meaisín fíorúil sa scamall. Mar shampla, más rud é Node chuaigh isteach i stát NotReady, is féidir leat a sheiceáil cibé an bhfuil an meaisín fíorúil ann ar chor ar bith sa soláthraí scamall trí providerID. Mura bhfuil sé ann, scrios an réad Node, a d’fhanfadh sa bhraisle go deo murach sin;
Criosanna – socraíonn sé an fearann teip don réad Node, ionas gur féidir leis an sceidealóir nód a roghnú don Pod de réir na réigiún agus na gcriosanna sa soláthraí scamall;
Luchtaigh Cothromóir – agus réad á chruthú Service le cineál LoadBalancer cruthaíonn sé cineál cothromóir a dhíreoidh trácht ón taobh amuigh go dtí na nóid bhraisle. Mar shampla, i Yandex.Cloud is féidir leat é a úsáid NetworkLoadBalancer и TargetGroup chun na gcríoch sin;
Bealach – go dtógann sé líonra idir nóid, toisc De réir riachtanais Kubernetes, caithfidh gach pod a sheoladh IP féin agus a bheith in ann teacht ar aon pod eile. Chun na gcríoch sin, is féidir leat líonra forleagan a úsáid (VXLAN, GENEVE) nó tábla ródaithe a shocrú go díreach i líonra fíorúil an tsoláthraí néil:
Imleabhar – Ceadaíonn sé ordú dinimiciúil PV ag baint úsáide as PVC agus SC. Ar dtús, bhí an fheidhmiúlacht seo mar chuid de CCM, ach mar gheall ar a chastacht mhór aistríodh é chuig tionscadal ar leith, Comhéadan Stórála Coimeádán (CSI). Táimid tar éis labhairt faoi CSI níos mó ná uair amháin scríobh agus, mar a luadh cheana, fiú scaoileadh Tiománaí do CSI.
Roimhe seo, bhí an cód ar fad a bhí ag idirghníomhú leis an scamall lonnaithe i bpríomh-stór Git an tionscadail Kubernetes ag k8s.io/kubernetes/pkg/cloudprovider/providers, ach shocraigh siad é seo a thréigean mar gheall ar an míchaoithiúlacht a bhaineann le bheith ag obair le bonn cód mór. Aistríodh gach sean-fheidhmiú go stór ar leith. Ar mhaithe le tuilleadh tacaíochta agus forbartha a éascú, aistríodh go dtí na comhchodanna uile freisin stór ar leith.
Mar is amhlaidh le CSI, tá go leor soláthraithe scamall mór deartha cheana féin a gcuid CCManna chun scamaill a ghiaráil ar Kubernetes. Mura bhfuil CCM ag an soláthraí, ach go bhfuil na feidhmeanna riachtanacha go léir ar fáil trí API, is féidir leat CCM a chur i bhfeidhm duit féin.
Thosaigh muid ag forbairt (nó in áit, fiú úsáid) le réidh(!) CCM do Yandex.Cloud bliain ó shin.
Mar sin féin, sa chur i bhfeidhm seo bhí muid in easnamh:
fíordheimhniú trí chomhartha JWT IAM;
Tacaíocht rialtóir seirbhíse.
I gcomhaontú leis an údar (dlisin) i Telegram, forked muid yandex-cloud-controller-manager agus chuireamar na feidhmeanna a bhí ar iarraidh.
Príomhghnéithe
Faoi láthair, tacaíonn CCM leis na comhéadain seo a leanas:
Imeachtaí;
Criosanna;
Luchtaigh Cothromóir.
Sa todhchaí, nuair a thosaíonn Yandex.Cloud ag obair le cumais VPC chun cinn, cuirfimid comhéadan leis Bealaí.
LoadBalanacer mar phríomhdhúshlán
Ar dtús, rinneamar iarracht, cosúil le feidhmiúcháin CCM eile, péire de a chruthú LoadBalancer и TargetGroup do gach ceann Service le cineál LoadBalancer. Mar sin féin, d'aimsigh Yandex.Cloud teorannú suimiúil amháin: ní féidir leat é a úsáid TargetGroups le trasnú Targets (péire SubnetID - IpAddress).
Dá bhrí sin, taobh istigh den CCM cruthaithe, seoltar rialtóir, a, nuair a athraíonn rudaí Node bailíonn sé faisnéis faoi na comhéadain go léir ar gach meaisín fíorúil, déanann siad iad a ghrúpáil de réir a muintearas le daoine áirithe NetworkID, cruthaíonn trí TargetGroup ar NetworkID, agus déanann sé monatóireacht freisin ar ábharthacht. Ina dhiaidh sin, nuair a chruthú réad Service le cineál LoadBalanacer táimid ag gabháil go simplí réamh-cruthaíodh TargetGroup go nua NetworkLoadBalanacer'táim.
Conas tosú ag úsáid?
Tacaíonn CCM le leagan Kubernetes 1.15 agus níos airde. I braisle, chun é a bheith ag obair, éilíonn sé go bhfuil an bhratach --cloud-provider=external socraíodh go true le haghaidh kube-apiserver, kube-controller-manager, kube-scheduler agus gach kubelets.
Déantar cur síos ar na céimeanna riachtanacha go léir don suiteáil féin i README. Baineann an tsuiteáil le cruthú réada i Kubernetes ó na manifestos.
Chun CCM a úsáid beidh na nithe seo a leanas uait freisin
pointe amach sa léiriú an t-aitheantóir eolaire (folder-id) Yandex.Cloud;
cuntas seirbhíse le haghaidh idirghníomhú leis an API Yandex.Cloud. Sa fhorógra Secret is gá eochracha údaraithe a aistriú ón gcuntas seirbhíse. Sa doiciméadú cur síos, conas cuntas seirbhíse a chruthú agus eochracha a fháil.
Beidh áthas orainn do chuid aiseolais a fháil agus saincheisteanna nua, má bhíonn aon fhadhb agat!
Torthaí
Táimid ag baint úsáide as an CCM atá curtha i bhfeidhm i gcúig bhraisle Kubernetes le dhá sheachtain anuas agus tá sé beartaithe againn a líon a mhéadú go 20 sa mhí amach romhainn. Ní mholaimid faoi láthair CCM a úsáid le haghaidh suiteálacha móra agus ríthábhachtacha K8s.
Mar a tharla i gcás CSI, beidh áthas orainn má ghlacann forbróirí Yandex le forbairt agus le tacaíocht an tionscadail seo - táimid réidh chun an stór a aistriú ar a n-iarratas chun déileáil le tascanna atá níos ábhartha dúinn.