Re hlahisa Kubernetes CCM (Motsamaisi oa Cloud) bakeng sa Yandex.Cloud

Re hlahisa Kubernetes CCM (Motsamaisi oa Cloud) bakeng sa Yandex.Cloud

Ho tsoelapele ho ea morao tjena Ho lokolloa ha mokhanni oa CSI bakeng sa Yandex.Cloud re phatlalatsa morero o mong oa Open Source bakeng sa leru lena - Motsamaisi oa Cloud Controller. CCM ha e hlokehe feela bakeng sa sehlopha ka kakaretso, empa le bakeng sa mokhanni oa CSI ka boeena. Lintlha tse mabapi le morero oa eona le likarolo tse ling tsa ts'ebetsong li tlas'a sehiloeng.

Selelekela

Hobaneng ho le joalo?

Sepheo se re susumelitseng ho nts'etsapele CCM bakeng sa Yandex.Cloud se lumellana ka ho feletseng le se seng se hlalositsoe ho phatlalatso Bakhanni ba CSI. Re boloka lihlopha tse ngata tsa Kubernetes tse tsoang ho bafani ba fapaneng ba maru, tseo re sebelisang sesebelisoa se le seng bakeng sa tsona. E sebelisa mekhoa e mengata e bonolo ea "ho feta" litharollo tse laoloang ke bafani bana. E, re na le nyeoe le litlhoko tse ikhethileng, empa lintlafatso tse entsoeng ka lebaka la tsona li ka ba molemo ho basebelisi ba bang.

Hantle-ntle CCM ke eng?

Ka tloaelo, re lokisa tikoloho e re potolohileng bakeng sa sehlopha ho tsoa kantle - mohlala, ho sebelisa Terraform. Empa ka linako tse ling ho na le tlhokahalo ea ho laola tikoloho ea maru e re potolohileng ho tloha sehlopheng. Monyetla ona o fanoe, 'me ke oona o kenngoeng tšebetsong CCM.

Ka ho khetheha, Cloud Controller Manager e fana ka mefuta e mehlano ea mantlha ea tšebelisano:

  1. Mehlala - e sebelisa kamano ea 1: 1 pakeng tsa ntho ea node ho Kubernetes (Node) le mochine oa sebele ho mofani oa maru. Bakeng sa sena re:
    • tlatsa tšimong spec.providerID ka nthong Node. Mohlala, bakeng sa OpenStack CCM lebala lena le na le sebopeho se latelang: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. U ka bona lebitso la mofani oa leru le UUID e ikhethang ea seva (mochine oa sebele o OpenStack) oa ntho;
    • tlatsana nodeInfo ka nthong Node tlhahisoleseding e mabapi le mochine oa sebele. Mohlala, re hlakisa mofuta oa mohlala ho AWS;
    • Re hlahloba boteng ba mochine oa sebele marung. Mohlala, haeba ntho Node ya kena mmusong NotReady, o ka hlahloba hore na mochine oa sebele o teng ho hang ho mofani oa maru ka providerID. Haeba e le sieo, hlakola ntho eo Node, eo ho seng joalo e neng e tla lula sehlopheng ka ho sa feleng;
  2. libaka – e seta sebaka sa ho hloleha bakeng sa ntho Node, e le hore mohlophisi a ka khetha node bakeng sa Pod ho ea ka libaka le libaka ho mofani oa maru;
  3. LoadBalancer – ha o bopa ntho Service ka mofuta LoadBalancer e theha mofuta oa balancer o tla tsamaisa sephethephethe ho tloha kantle ho ea ho li-cluster node. Ka mohlala, ho Yandex.Cloud u ka e sebelisa NetworkLoadBalancer и TargetGroup bakeng sa merero ena;
  4. Tsela - e haha ​​marang-rang pakeng tsa nodes, hobane Ho ea ka litlhoko tsa Kubernetes, pod e 'ngoe le e' ngoe e tlameha ho ba le aterese ea eona ea IP mme e khone ho fihla pod efe kapa efe. Bakeng sa merero ena, o ka sebelisa marang-rang a koahelang (VXLAN, GENEVE) kapa oa beha tafole ea ho tsamaisa ka kotloloho ho netweke e fumanehang ea mofani oa maru:

    Re hlahisa Kubernetes CCM (Motsamaisi oa Cloud) bakeng sa Yandex.Cloud

  5. Volume - E lumella ho odara ho matla ha PV ho sebelisa PVC le SC. Qalong, ts'ebetso ena e ne e le karolo ea CCM, empa ka lebaka la ho rarahana ha eona ho ile ha fallisetsoa morerong o fapaneng, Container Storage Interface (CSI). Re buile ka CSI ho feta hang o ngotse 'me, joalokaha ho se ho boletsoe, esita le lokollotsoe Mokhanni oa CSI.

Pejana, khoutu eohle e sebelisanang le leru e ne e le sebakeng sa polokelo ea mantlha ea Git ea projeke ea Kubernetes. k8s.io/kubernetes/pkg/cloudprovider/providers, empa ba ile ba etsa qeto ea ho tlohela sena ka lebaka la tšitiso ea ho sebetsa le motheo o moholo oa khoutu. Lisebelisoa tsohle tsa khale li fetiselitsoe ho polokelo e arohaneng. Bakeng sa boiketlo ba tšehetso le nts'etsopele e eketsehileng, likarolo tsohle tse tloaelehileng li ile tsa boela tsa fallisetsoa ho polokelo e arohaneng.

Joalo ka CSI, bafani ba bangata ba maru ba bangata ba se ba thehile li-CCM tsa bona ho phahamisa maru ho Kubernetes. Haeba mofani oa thepa a se na CCM, empa mesebetsi eohle e hlokahalang e fumaneha ka API, joale u ka sebelisa CCM ka boeena.

Ho ngola ts'ebetsong ea hau ea CCM, ho lekane ho kenya ts'ebetsong ho hlokahala Go interfaces.

И sena ke seo re nang le sona.

Ts'ebetsong

U tlile joang tabeng ena

Re qalile nts'etsopele (kapa ho e-na le hoo, esita le ho sebelisa) ka e lokile(!) CCM bakeng sa Yandex.Cloud selemong se fetileng.

Leha ho le joalo, ts'ebetsong ena re ne re haella:

  • netefatso ka letshwao la JWT IAM;
  • Tšehetso ea taolo ea litšebeletso.

Ka tumellano le mongodi (Drisin) ho Telegraph, re ile ra fereko eandex-cloud-controller-manager mme ra eketsa mesebetsi e sieo.

Litšobotsi tsa bohlokoa

Hajoale, CCM e ts'ehetsa likhokahano tse latelang:

  • Mehlala;
  • libaka;
  • LoadBalancer.

Nakong e tlang, ha Yandex.Cloud e qala ho sebetsa ka bokhoni bo tsoetseng pele ba VPC, re tla eketsa sebopeho Litsela.

LoadBalanacer e le phephetso ea mantlha

Qalong, re lekile, joalo ka lits'ebetso tse ling tsa CCM, ho theha para ea LoadBalancer и TargetGroup bakeng sa e 'ngoe le e' ngoe Service ka mofuta LoadBalancer. Leha ho le joalo, Yandex.Cloud e fumane moeli o le mong o khahlisang: o ka se sebelise TargetGroups e nang le mateano Targets (para SubnetID - IpAddress).

Re hlahisa Kubernetes CCM (Motsamaisi oa Cloud) bakeng sa Yandex.Cloud

Ka hona, ka hare ho CCM e bōpiloeng, ho qalisoa molaoli, oo, ha lintho li fetoha Node e bokella tlhahisoleseling mabapi le li-interfaces tsohle mochining o mong le o mong, e li hlopha ho latela hore na ke tsa mofuta ofe NetworkID, bopa ka TargetGroup mabapi le NetworkID, hape e hlokomela bohlokoa. Ka mor'a moo, ha ho etsoa ntho Service ka mofuta LoadBalanacer re kopanya feela e entsoeng esale pele TargetGroup ho ncha NetworkLoadBalanacer'ke.

Joang ho qala ho sebelisa?

CCM e ts'ehetsa mofuta oa Kubernetes 1.15 le ho feta. Ka sehlopha, hore e sebetse, e hloka hore folakha --cloud-provider=external e ne e behiloe ho true bakeng sa kube-apiserver, kube-controller-manager, kube-scheduler le li-kubelets tsohle.

Mehato eohle e hlokahalang bakeng sa ho instola ka boeona e hlalositsoe ho README. Ho kenya ho itšetlehile ka ho theha lintho ho Kubernetes ho tloha lipontšong.

Ho sebelisa CCM o tla hloka hape:

  • supa ho ponahatso ea sesupo sa buka (folder-id) Yandex.Cloud;
  • ak'haonte ea litšebeletso bakeng sa ho sebelisana le Yandex.Cloud API. Ho manifesto Secret hoa hlokahala fetisa linotlolo tse lumelletsoeng ho tsoa akhaonteng ea litšebeletso. Litokomaneng hlalositsoe, mokhoa oa ho theha akhaonto ea tšebeletso le ho fumana linotlolo.

Re tla thabela ho amohela maikutlo a hau le litaba tse nchahaeba u kopana le mathata afe kapa afe!

Liphello

Re ntse re sebelisa CCM e kentsoeng tšebetsong ka lihlopha tse hlano tsa Kubernetes libekeng tse peli tse fetileng mme re rera ho atolosa palo ea tsona ho ea ho tse 20 khoeling e tlang. Hajoale ha re khothaletse ho sebelisa CCM bakeng sa lits'ebetso tse kholo le tse mahlonoko tsa K8s.

Joalo ka CSI, re tla thaba haeba baetsi ba Yandex ba nka nts'etsopele le ts'ehetso ea morero ona - re ikemiselitse ho fetisetsa polokelo ka kopo ea bona e le hore re sebetsane le mesebetsi e amanang le rona.

PES

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso