ProHoster > Blog > Pulega > Fa'ailoa Kubernetes CCM (Cloud Controller Manager) mo Yandex.Cloud
Fa'ailoa Kubernetes CCM (Cloud Controller Manager) mo Yandex.Cloud
I le faʻaauau i le lata mai nei Fa'asa'oloto aveta'avale CSI mo Yandex.Cloud o loʻo matou lolomiina se isi poloketi Open Source mo lenei ao - Pule Pule o le Ao. E manaʻomia le CCM e le gata mo le fuifui atoa, ae faʻapea foi mo le avetaavale CSI lava ia. O faʻamatalaga e uiga i lona faʻamoemoega ma nisi o faʻatinoga o loʻo i lalo ole tipi.
Faatomuaga
Aisea ua faapea ai?
O mafuaʻaga na faʻaosofia ai i matou e atiaʻe CCM mo Yandex.Cloud e fetaui lelei ma mea ua uma ona faʻamatalaina i totonu. fa'aaliga avetaavale CSI. Matou te tausia le tele o fuifui Kubernetes mai 'au'aunaga ao eseese, lea matou te fa'aogaina ai se meafaigaluega e tasi. O lo'o fa'atinoina le tele o fa'aoga faigofie e “aloa” ai fofo fa'afoe a nei kamupani. Ioe, o loʻo i ai se matou mataupu maʻoti ma manaʻoga, ae o atinaʻe na faia ona o latou atonu e aoga i isi tagata faʻaoga.
O le a tonu le CCM?
E masani lava, tatou te saunia le siosiomaga o loʻo siomia ai i tatou mo le fuifui mai fafo - mo se faʻataʻitaʻiga, faʻaaogaina Terraform. Ae o nisi taimi e manaʻomia le puleaina o le siosiomaga o le ao o loʻo siomia ai i tatou mai fuifui. O lenei avanoa ua tuʻuina atu, ma o le mea lea e faʻatinoina CCM.
Aemaise lava, Cloud Controller Manager e maua ai ituaiga autu e lima o fegalegaleaiga:
Faʻamatalaga - faʻatino se sootaga 1: 1 i le va o se mea node i Kubernetes (Node) ma se masini komepiuta i totonu o le ao tuʻuina atu. Mo lenei mea matou te:
faatumu le fanua spec.providerID i le mea faitino Node. Mo se faʻataʻitaʻiga, mo OpenStack CCM o lenei fanua o loʻo i ai le faatulagaga lenei: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. E mafai ona e vaʻai i le igoa o le tuʻuina atu o le ao ma le UUID tulaga ese o le 'auʻaunaga (masini virtual i OpenStack) o le mea;
fa'atasi nodeInfo i le mea faitino Node faʻamatalaga e uiga i le masini komepiuta. Mo se faʻataʻitaʻiga, matou te faʻamaonia le ituaiga faʻataʻitaʻiga i le AWS;
Matou te siakiina le i ai o se masini komepiuta i le ao. Mo se faataitaiga, afai o se mea faitino Node alu i se setete NotReady, e mafai ona e siaki pe oi ai uma le masini komepiuta i totonu o le cloud provider e providerID. Afai e le o iai, tape le mea Node, lea semanu e tumau pea i le fuifui e faavavau;
sone – fa'atulaga le vaega fa'aletonu mo le mea Node, ina ia mafai e le tagata faʻatulagaina ona filifili se node mo le Pod e tusa ai ma itulagi ma sone i totonu o le ao tuʻuina atu;
LoadBalancer – pe a fai se mea Service ma le ituaiga LoadBalancer fa'atupuina se ituaiga fa'apaleni e fa'asa'o ai fe'avea'i mai fafo i nodes fuifui. Mo se faʻataʻitaʻiga, i Yandex.Cloud e mafai ona e faʻaogaina NetworkLoadBalancer и TargetGroup mo nei faamoemoega;
Auala – fausia se fesootaiga i le va o nodes, ona E tusa ai ma manaʻoga Kubernetes, e tatau ona i ai i pod taʻitasi lana lava tuatusi IP ma mafai ona oʻo atu i soʻo se isi pod. Mo nei faʻamoemoega, e mafai ona e faʻaogaina se fesoʻotaʻiga faʻapipiʻi (VXLAN, GENEVE) poʻo le setiina saʻo o se laulau faʻataʻavalevale i luga o fesoʻotaiga vavave a le kamupani ao:
fua - Faʻatagaina le faʻatonuina o le PV e faʻaaoga ai le PVC ma le SC. I le taimi muamua, o lenei gaioiga o se vaega o le CCM, ae ona o lona lavelave tele na siitia ai i se isi poloketi, Container Storage Interface (CSI). Ua sili atu ma le tasi ona matou talanoa e uiga i le CSI tusia ma, e pei ona taʻua muamua, e oo lava tatala avetaavale CSI.
I le taimi muamua, o tulafono uma e fegalegaleai ma le ao sa i totonu o le faleteuoloa Git autu o le poloketi Kubernetes i k8s.io/kubernetes/pkg/cloudprovider/providers, ae na latou filifili e lafoai lenei mea ona o le faʻalavelave o le galue ma se faʻavae code tele. O fa'atinoga tuai uma ua si'i atu i fale teu oloa eseese. Mo le fa'afaigofieina o le fa'aopoopoina o le lagolago ma le atina'e, sa fa'agasolo uma fo'i vaega masani i fale teu oloa eseese.
E pei o le CSI, o le tele o kamupani ao tele ua uma ona mamanuina a latou CCM e faʻaogaina ao i luga o Kubernetes. Afai e leai se CCM a le tagata faʻatau, ae o loʻo avanoa uma galuega talafeagai e ala i le API, ona mafai lea ona e faʻatinoina CCM oe lava.
Na matou amata atinaʻe (pe sili atu, faʻaaoga) ma sauni(!) CCM mo Yandex.Cloud i le tausaga talu ai.
Ae ui i lea, i lenei faʻatinoga na matou misia:
faʻamaoniga e ala i le JWT IAM faʻailoga;
Fesoasoani e pulea auaunaga.
E tusa ai ma le tusitala (talitonu) i Telegram, na matou faʻaogaina yandex-cloud-controller-manager ma faʻaopoopo galuega o loʻo misi.
Mea taua
I le taimi nei, o loʻo lagolagoina e CCM fesoʻotaʻiga nei:
Faʻamatalaga;
sone;
LoadBalancer.
I le lumanaʻi, pe a amata ona galue Yandex.Cloud ma tomai faʻapitoa VPC, matou te faʻaopoopoina se atinaʻe auala.
LoadBalanacer o se lu'itau autu
I le taimi muamua, sa matou taumafai, e pei o isi faʻatinoga CCM, e fatu se paga o LoadBalancer и TargetGroup mo taʻitasi Service ma le ituaiga LoadBalancer. Ae ui i lea, na maua e Yandex.Cloud se tasi tapulaʻa manaia: e le mafai ona e faʻaogaina TargetGroups ma felavasa'i Targets (lua SubnetID - IpAddress).
O le mea lea, i totonu o le CCM na faia, o loʻo faʻalauiloaina se pule, lea, pe a suia mea, Node aoina faʻamatalaga e uiga i fesoʻotaʻiga uma i luga o masini komepiuta taʻitasi, faʻavasegaina i latou e tusa ai ma a latou mea patino NetworkID, faia e TargetGroup i NetworkID, ma mataituina foi le talafeagai. Mulimuli ane, pe a fatuina se mea Service ma le ituaiga LoadBalanacer matou te faʻapipiʻi muamua se mea na faia TargetGroup i fou NetworkLoadBalanacer'am.
E fa'afefea ona amata fa'aaoga?
E lagolagoina e le CCM le Kubernetes version 1.15 ma maualuga atu. I totonu o se fuifui, ina ia galue, e manaʻomia le fuʻa --cloud-provider=external sa seti i true mo kube-apiserver, kube-controller-manager, kube-scheduler ma kubelets uma.
O laasaga talafeagai uma mo le faʻapipiʻiina lava ia o loʻo faʻamatalaina i totonu FAITAU. O le faʻapipiʻiina e faʻapipiʻi i lalo i le fatuina o mea i Kubernetes mai faʻaaliga.
Mo le fa'aogaina o le CCM e te mana'omia fo'i:
faasino mai i le fa'aaliga le fa'ailoga fa'ailoga (folder-id) Yandex.Cloud;
'au'aunaga mo le fegalegaleai ma le Yandex.Cloud API. I le manifesto Secret e tatau fa'aliliuina ki fa'atagaina mai le tala o auaunaga. I totonu o faʻamaumauga faamatalaina, fa'afefea ona fai se tala tautua ma maua ki.
Matou te fiafia e maua sau fa'amatalaga ma mataupu foupe afai e te feagai ma ni faʻafitauli!
O taunuʻuga
Sa matou fa'aogaina le CCM fa'atinoina i vaega Kubernetes e lima i le lua vaiaso talu ai ma fuafua e fa'alautele lo latou numera i le 20 i le masina a sau. Matou te le fautuaina i le taimi nei le faʻaaogaina o le CCM mo faʻapipiʻi K8s tetele ma taua.
E pei o le tulaga o le CSI, o le a matou fiafia pe a fai e le au atinaʻe Yandex le atinaʻeina ma le lagolago o lenei poloketi - ua matou sauni e faʻafeiloaʻi le faleoloa i la latou talosaga ina ia mafai ai ona faʻatautaia galuega e sili atu ona talafeagai ia i matou.