Ṣafihan Kubernetes CCM (Oluṣakoso Awọsanma) fun Yandex.Cloud

Ṣafihan Kubernetes CCM (Oluṣakoso Awọsanma) fun Yandex.Cloud

Ni itesiwaju to šẹšẹ CSI iwakọ Tu fun Yandex.Cloud a n ṣe atẹjade iṣẹ akanṣe Orisun Orisun miiran fun awọsanma yii - Awọsanma Adarí Manager. A nilo CCM kii ṣe fun iṣupọ lapapọ, ṣugbọn tun fun awakọ CSI funrararẹ. Awọn alaye nipa idi rẹ ati diẹ ninu awọn ẹya imuse wa labẹ gige.

Ifihan

Kini idi eyi?

Awọn idi ti o jẹ ki a ṣe agbekalẹ CCM fun Yandex.Cloud patapata ni ibamu pẹlu awọn ti a ṣalaye tẹlẹ ninu ìkéde CSI awakọ. A ṣetọju ọpọlọpọ awọn iṣupọ Kubernetes lati oriṣiriṣi awọn olupese awọsanma, fun eyiti a lo ọpa kan. O ṣe ọpọlọpọ awọn irọrun “nipasẹ” awọn ojutu iṣakoso ti awọn olupese wọnyi. Bẹẹni, a ni ọran kan pato ati awọn iwulo, ṣugbọn awọn idagbasoke ti a ṣẹda nitori wọn le wulo fun awọn olumulo miiran.

Kini gangan jẹ CCM?

Ni deede, a pese agbegbe ti o wa ni ayika wa fun iṣupọ naa lati ita - fun apẹẹrẹ, lilo Terraform. Ṣugbọn nigba miiran iwulo wa lati ṣakoso agbegbe awọsanma ni ayika wa lati iṣupọ. Yi seese ti pese, ati awọn ti o jẹ ti o ti wa ni muse CCM.

Ni pataki, Oluṣakoso Adarí Awọsanma pese awọn oriṣi akọkọ ti ibaraenisepo marun:

  1. Awọn iṣẹlẹ - ṣe iṣe ibatan 1: 1 laarin nkan apa kan ni Kubernetes (Node) ati ẹrọ foju kan ninu olupese awọsanma. Fun eyi a:
    • kun aaye spec.providerID ninu nkan naa Node. Fun apẹẹrẹ, fun OpenStack CCM aaye yii ni ọna kika atẹle yii: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. O le wo orukọ olupese awọsanma ati UUID alailẹgbẹ ti olupin (ẹrọ foju ni OpenStack) ti nkan naa;
    • iranlowo nodeInfo ninu nkan naa Node alaye nipa awọn foju ẹrọ. Fun apẹẹrẹ, a pato iru apẹẹrẹ ni AWS;
    • A ṣayẹwo wiwa ẹrọ foju kan ninu awọsanma. Fun apẹẹrẹ, ti ohun kan Node lọ sinu kan ipinle NotReady, o le ṣayẹwo boya awọn foju ẹrọ wa ni gbogbo ni awọsanma olupese nipa providerID. Ti ko ba si nibẹ, paarẹ nkan naa Node, eyi ti yoo bibẹẹkọ wa ninu iṣupọ lailai;
  2. agbegbe - ṣeto aaye ikuna fun nkan naa Node, ki oluṣeto le yan ipade kan fun Pod gẹgẹbi awọn agbegbe ati awọn agbegbe ni olupese awọsanma;
  3. LoadBalancer – nigba ṣiṣẹda ohun kan Service pẹlu iru LoadBalancer ṣẹda iru iwọntunwọnsi ti yoo ṣe itọsọna ijabọ lati ita si awọn apa iṣupọ. Fun apẹẹrẹ, ni Yandex.Cloud o le lo NetworkLoadBalancer и TargetGroup fun awọn idi wọnyi;
  4. Ipa ọna - kọ nẹtiwọki kan laarin awọn apa, nitori Gẹgẹbi awọn ibeere Kubernetes, adarọ ese kọọkan gbọdọ ni adiresi IP tirẹ ati ni anfani lati de eyikeyi adarọ ese miiran. Fun awọn idi wọnyi, o le lo nẹtiwọọki agbekọja (VXLAN, GENEVE) tabi ṣeto tabili ipa-ọna taara ni nẹtiwọọki foju ti olupese awọsanma:

    Ṣafihan Kubernetes CCM (Oluṣakoso Awọsanma) fun Yandex.Cloud

  5. iwọn didun - Gba laaye aṣẹ aṣẹ ti PV ni lilo PVC ati SC. Ni ibẹrẹ, iṣẹ ṣiṣe yii jẹ apakan ti CCM, ṣugbọn nitori idiju nla rẹ o ti gbe lọ si iṣẹ akanṣe lọtọ, Interface Ibi ipamọ Apoti (CSI). A ti sọrọ nipa CSI diẹ sii ju ẹẹkan lọ kọwe ati, bi a ti sọ tẹlẹ, paapaa tu silẹ CSI iwakọ.

Ni iṣaaju, gbogbo koodu ibaraenisepo pẹlu awọsanma wa ni ibi ipamọ Git akọkọ ti iṣẹ akanṣe Kubernetes ni k8s.io/kubernetes/pkg/cloudprovider/providers, ṣugbọn wọn pinnu lati fi eyi silẹ nitori airọrun ti ṣiṣẹ pẹlu ipilẹ koodu nla kan. Gbogbo awọn imuṣẹ atijọ ti gbe lọ si lọtọ ibi ipamọ. Fun irọrun ti atilẹyin siwaju ati idagbasoke, gbogbo awọn paati ti o wọpọ ni a tun gbe lọ si lọtọ ibi ipamọ.

Gẹgẹbi pẹlu CSI, ọpọlọpọ awọn olupese awọsanma nla ti ṣe apẹrẹ awọn CCM wọn tẹlẹ lati lo awọn awọsanma lori Kubernetes. Ti olupese ko ba ni CCM, ṣugbọn gbogbo awọn iṣẹ pataki wa nipasẹ API, lẹhinna o le ṣe CCM funrararẹ.

Lati kọ imuse ti ara rẹ ti CCM, o to lati ṣe ti a beere Go atọkun.

И eyi ni ohun ti a gba.

Imuse

Bawo ni o ṣe wa si eyi

A bẹrẹ idagbasoke (tabi dipo, paapaa lo) pẹlu setan (!) CCM fun Yandex.Cloud ni ọdun kan sẹhin.

Sibẹsibẹ, ninu imuse yii a padanu:

  • ìfàṣẹsí nipasẹ JWT IAM àmi;
  • Atilẹyin oluṣakoso iṣẹ.

Ni ibamu pẹlu onkowe (dlisin) ni Telegram, a forked yandex-cloud-controller-oluṣakoso ati ṣafikun awọn iṣẹ ti o padanu.

Awọn ẹya pataki

Lọwọlọwọ, CCM ṣe atilẹyin awọn atọkun wọnyi:

  • Awọn iṣẹlẹ;
  • agbegbe;
  • LoadBalancer.

Ni ọjọ iwaju, nigbati Yandex.Cloud bẹrẹ ṣiṣẹ pẹlu awọn agbara VPC to ti ni ilọsiwaju, a yoo ṣafikun wiwo kan ipa-.

LoadBalanacer bi ipenija akọkọ

Ni ibẹrẹ, a gbiyanju, bii awọn imuse CCM miiran, lati ṣẹda bata kan LoadBalancer и TargetGroup fun gbogbo eniyan Service pẹlu iru LoadBalancer. Sibẹsibẹ, Yandex.Cloud ṣe awari aropin ti o nifẹ kan: o ko le lo TargetGroups pẹlu intersecting Targets (meji SubnetID - IpAddress).

Ṣafihan Kubernetes CCM (Oluṣakoso Awọsanma) fun Yandex.Cloud

Nitorinaa, inu CCM ti a ṣẹda, a ṣe ifilọlẹ oludari kan, eyiti, nigbati awọn nkan ba yipada, Node gba alaye nipa gbogbo awọn atọkun lori kọọkan foju ẹrọ, ẹgbẹ wọn gẹgẹ bi ohun ini wọn si awọn NetworkID, ṣẹda nipasẹ TargetGroup on NetworkID, ati tun ṣe abojuto ibaramu. Lẹhinna, nigba ṣiṣẹda ohun kan Service pẹlu iru LoadBalanacer a nìkan so a ami-da TargetGroup si tuntun NetworkLoadBalanacer' emi.

Bawo ni lati bẹrẹ lilo?

CCM ṣe atilẹyin ẹya Kubernetes 1.15 ati ti o ga julọ. Ninu iṣupọ, fun o lati ṣiṣẹ, o nilo pe asia --cloud-provider=external ti ṣeto si true fun kube-apiserver, kube-controller-faili, kube-scheduler ati gbogbo kubelets.

Gbogbo awọn igbesẹ pataki fun fifi sori ẹrọ funrararẹ ni a ṣalaye ninu README. Fifi sori õwo si isalẹ lati ṣiṣẹda ohun ni Kubernetes lati farahan.

Lati lo CCM iwọ yoo tun nilo:

  • tokasi ninu ifihan idamo liana (folder-id) Yandex.Cloud;
  • iroyin iṣẹ fun ibaraenisepo pẹlu Yandex.Cloud API. Ninu iwe ifihan Secret jẹ pataki gbigbe awọn bọtini aṣẹ lati iroyin iṣẹ. Ninu iwe-ipamọ ṣàpèjúwe, Bii o ṣe le ṣẹda akọọlẹ iṣẹ kan ati gba awọn bọtini.

A yoo dun lati gba esi rẹ ati titun oranti o ba pade eyikeyi awọn iṣoro!

Awọn esi

A ti nlo CCM imuse ni awọn iṣupọ Kubernetes marun ni ọsẹ meji sẹhin ati gbero lati faagun nọmba wọn si 20 ni oṣu ti n bọ. Lọwọlọwọ a ko ṣeduro lilo CCM fun awọn fifi sori ẹrọ K8s nla ati pataki.

Gẹgẹbi ọran ti CSI, a yoo ni idunnu ti awọn olupilẹṣẹ Yandex ba gba idagbasoke ati atilẹyin iṣẹ yii - a ti ṣetan lati gbe ibi ipamọ naa ni ibeere wọn lati le ba awọn iṣẹ ṣiṣe ti o ṣe pataki si wa.

PS

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun