Kusuma Kubernetes CCM (Cloud Controller Manager) yeYandex.Cloud

Kusuma Kubernetes CCM (Cloud Controller Manager) yeYandex.Cloud

Mukuenderera mberi kune ichangopfuura CSI mutyairi kuburitswa yeYandex.Cloud tiri kuburitsa imwe Open Source chirongwa chegore rino - Cloud Controller Manager. CCM inodiwa kwete chete kune sumbu rose, asiwo kune CSI mutyairi pachayo. Tsanangudzo nezvechinangwa chayo uye mamwe maficha ekuita ari pasi pekuchekwa.

Nhanganyaya

Sei izvi?

Zvinangwa zvakatikurudzira kukudziridza CCM yeYandex.Cloud inopindirana zvachose neaya atotsanangurwa mukati chiziviso CSI vatyairi. Isu tinochengetedza akawanda Kubernetes masumbu kubva kune akasiyana makore vanopa, ayo isu tinoshandisa chishandiso chimwe chete. Inoshandisa zvakawanda zvinoreruka "kunzvenga" mhinduro dzakagadziriswa dzeava vanopa. Ehe, isu tine yakasarudzika nyaya uye zvatinoda, asi izvo zvakagadzirwa nekuda kwavo zvinogona kubatsira kune vamwe vashandisi.

CCM chii chaizvo?

Kazhinji, tinogadzirira zvakatipoteredza zvakatipoteredza nokuda kwesumbu kubva kunze - semuenzaniso, kushandisa Terraform. Asi dzimwe nguva pane kudikanwa kwekutonga makore nharaunda yakatitenderedza kubva kucluster. Kugona uku kunopihwa, uye ndiko kunoitwa TLC.

Kunyanya, Cloud Controller Maneja inopa marudzi mashanu makuru ekudyidzana:

  1. Mienzaniso - inoshandisa hukama hwe1: 1 pakati pechinhu chenode muKubernetes (Node) uye muchina chaiwo mune gore rinopa. Kune izvi isu:
    • zadza mumunda spec.providerID muchinhu Node. Semuenzaniso, yeOpenStack CCM iyi ndima ine inotevera fomati: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. Iwe unogona kuona zita remupi wegore uye yakasarudzika UUID yeseva (chaiyo muchina muOpenStack) yechinhu;
    • mubatsiri nodeInfo muchinhu Node ruzivo nezve virtual muchina. Semuenzaniso, isu tinotsanangura muenzaniso mhando muAWS;
    • Isu tinotarisa kuvepo kweiyo chaiyo muchina mugore. Somuenzaniso, kana chinhu Node akapinda mune imwe nyika NotReady, unogona kutarisa kana iwo chaiwo muchina uripo zvachose mune wegore mupi ne providerID. Kana chisipo, bvisa chinhu chacho Node, iyo yaizoramba iri musumbu nokusingaperi;
  2. dzinodengenyeka - inoisa iyo yekukundikana domain yechinhu Node, kuitira kuti mugadziri agone kusarudza node yePod maererano nematunhu uye nzvimbo mune cloud provider;
  3. LoadBalancer - pakugadzira chinhu Service with type LoadBalancer inogadzira rudzi rwekuenzanisa iyo inotungamira traffic kubva kunze kuenda kumasumbu masumbu. Somuenzaniso, muYandex.Cloud unogona kushandisa NetworkLoadBalancer ΠΈ TargetGroup nokuda kwezvinangwa izvi;
  4. Nzira - inovaka network pakati pe node, nekuti Zvinoenderana nezvinodiwa naKubernetes, podhi yega yega inofanirwa kuve neyayo IP kero uye inokwanisa kusvika chero imwe pod. Nezvinangwa izvi, unogona kushandisa yakavharika network (VXLAN, GENEVE) kana kuseta tafura yenzira yakananga mune chaiyo network yemupi wegore:

    Kusuma Kubernetes CCM (Cloud Controller Manager) yeYandex.Cloud

  5. vhorumu - Inobvumira kurongeka kwePV uchishandisa PVC uye SC. Pakutanga, kushanda uku kwaive chikamu cheCCM, asi nekuda kwekuoma kwayo kukuru kwakaendeswa kune imwe chirongwa, Container Storage Interface (CSI). Takataura nezveCSI kanopfuura kamwe akanyora uye, sezvatotaurwa, kunyange yakaburitswa CSI mutyairi.

Pakutanga, kodhi yese inodyidzana negore yaive munzvimbo huru yeGit repository yeKubernetes chirongwa pa. k8s.io/kubernetes/pkg/cloudprovider/providers, asi vakasarudza kusiya izvi nekuda kwekusagadzikana kwekushanda nehombe yekodhi base. Zvese zviitwa zvekare zvakaendeswa yakasiyana repository. Kuti zvive nyore kune rumwe rutsigiro nekusimudzira, zvese zvinosanganisirwa zvikamu zvakaendeswa kune yakasiyana repository.

Sezvakaita neCSI, vazhinji vanopa makore makuru vakatogadzira maCCM avo kuti awedzere makore paKubernetes. Kana mutengesi asina CCM, asi mabasa ese anodiwa anowanikwa kuburikidza neAPI, saka iwe unogona kuita CCM iwe pachako.

Kunyora yako pachako kuita kweCCM, zvakakwana kuita inodiwa Go interfaces.

И izvi ndizvo zvatakawana.

Kutevedzera

Masvika sei pakadai

Takatanga kusimudzira (kana kuti, kunyange kushandisa) ne ready(!) CCM yeYandex.Cloud gore rapfuura.

Nekudaro, mukuita uku takanga tisipo:

  • kuvimbiswa kuburikidza neJWT IAM chiratidzo;
  • Sevhisi controller rutsigiro.

Mukubvumirana nemunyori (dlisin) muTeregiramu, isu takaforoma yandex-cloud-controller-maneja uye tikawedzera mabasa asipo.

Zvinhu zvakakosha

Parizvino, CCM inotsigira zvinotevera:

  • Mienzaniso;
  • dzinodengenyeka;
  • LoadBalancer.

Mune ramangwana, apo Yandex.Cloud inotanga kushanda nepamusoro VPC maitiro, tichawedzera interface Routes.

LoadBalanacer sedambudziko guru

Pakutanga, takaedza, semamwe mashandisirwo eCCM, kugadzira vaviri LoadBalancer ΠΈ TargetGroup kune imwe neimwe Service with type LoadBalancer. Nekudaro, Yandex.Cloud yakawana imwe inonakidza muganho: haugone kushandisa TargetGroups nekuyambuka Targets (vaviri SubnetID - IpAddress).

Kusuma Kubernetes CCM (Cloud Controller Manager) yeYandex.Cloud

Nokudaro, mukati meCCM yakagadzirwa, mutongi anotangwa, iyo, kana zvinhu zvachinja Node inounganidza ruzivo nezve ese mainterface pamushini wega wega chaiwo, anoaunganidza zvinoenderana nekwavo kune vamwe NetworkID, inogadzira ne TargetGroup pamusoro NetworkID, uye zvakare monitors kukosha. Zvadaro, pakugadzira chinhu Service with type LoadBalanacer isu tinongobatanidza pre-yakagadzirwa TargetGroup kune itsva NetworkLoadBalanacer'am.

Ungatanga sei kushandisa?

CCM inotsigira Kubernetes vhezheni 1.15 uye yepamusoro. Muchikwata, kuti ishande, inoda kuti mureza --cloud-provider=external yakagadzirirwa true ye kube-apiserver, kube-controller-maneja, kube-scheduler uye zvese kubelets.

Matanho ese anodiwa ekuisa pachayo anotsanangurwa mukati README. Kuiswa kunowira pasi pakugadzira zvinhu muKubernetes kubva kumamanifesiti.

Kuti ushandise CCM iwe uchada zvakare:

  • ratidza mune manifest the directory identifier (folder-id) Yandex.Cloud;
  • service account yekudyidzana neYandex.Cloud API. Mumanifesto Secret zvinodiwa kutamisa makiyi ane mvumo kubva kuakaundi yebasa. Muzvinyorwa akatsanangura, maitiro ekugadzira account yebasa uye kuwana makiyi.

Tichafara kugamuchira mhinduro yako uye nyaya itsvakana ukasangana nematambudziko!

Migumisiro

Isu tanga tichishandisa iyo yakaitwa CCM mumasumbu mashanu eKubernetes mumavhiki maviri apfuura uye kuronga kuwedzera nhamba yavo kusvika makumi maviri mumwedzi unouya. Isu parizvino hatikurudzire kushandisa CCM kune yakakura uye yakaoma K20s kuisirwa.

Sezviri muCSI, isu tichafara kana vagadziri veYandex vakatora kusimudzira uye kutsigirwa kweprojekiti iyi - takagadzirira kuendesa repository pakukumbira kwavo kuitira kuti tiite mabasa anonyanya kukosha kwatiri.

PS

Verenga zvakare pablog yedu:

Source: www.habr.com

Voeg