Kubernetes: open source vs. vendor-specific

Hello, ang akong ngalan mao si Dmitry Krasnov. Kapin sa lima ka tuig nagdumala ako sa mga kumpol sa Kubernetes ug nagtukod og mga komplikadong arkitektura sa microservice. Sa sinugdanan niining tuiga, naglunsad kami og serbisyo alang sa pagdumala sa mga cluster sa Kubernetes base sa Containerum. Sa pagkuha niini nga oportunidad, isulti ko kanimo kung unsa ang Kubernetes ug kung giunsa ang panagsama sa usa ka vendor lahi sa open source.

Sa pagsugod, unsa ang Kubernetes. Kini usa ka sistema alang sa pagdumala sa mga sudlanan sa daghang mga host. Gikan sa Griego, sa dalan, kini gihubad nga "pilot" o "helmsman." Orihinal nga gihimo sa Google ug dayon nagdonar isip kontribusyon sa teknolohiya sa Cloud Native Computing Foundation, usa ka internasyonal nga non-profit nga organisasyon nga naghiusa sa mga nag-unang developer, end user ug container technology providers sa kalibotan.

Kubernetes: open source vs. vendor-specific

Pagdumala sa daghang gidaghanon sa mga sudlanan

Karon atong mahibal-an kung unsa nga matang sa mga sudlanan kini. Kini usa ka aplikasyon nga adunay tibuuk nga palibot - labi na ang mga librarya diin nagsalig ang programa. Kining tanan giputos sa mga archive ug gipresentar sa porma sa usa ka imahen nga mahimong ipadagan bisan unsa pa ang operating system, gisulayan ug daghan pa. Apan adunay problema - ang pagdumala sa mga sudlanan sa daghang mga host lisud kaayo. Mao nga gimugna ang Kubernetes.

Ang usa ka sudlanan nga imahen nagrepresentar sa usa ka aplikasyon ug ang mga dependency niini. Ang aplikasyon, ang mga dependency niini, ug ang OS file system nga imahe nahimutang sa lainlaing mga bahin sa imahe, nga gitawag nga mga layer. Ang mga lut-od mahimong magamit pag-usab alang sa lainlaing mga sudlanan. Pananglitan, ang tanan nga aplikasyon sa usa ka kompanya mahimong mogamit sa base layer sa Ubuntu. Kung nagdagan ang mga sudlanan, dili kinahanglan nga magtipig daghang mga kopya sa usa ka base layer sa host. Gitugotan ka niini nga ma-optimize ang pagtipig ug paghatud sa imahe.

Kung gusto namon nga magpadagan sa usa ka aplikasyon gikan sa usa ka sudlanan, ang kinahanglan nga mga layer gipatong sa usag usa ug usa ka overlay file system ang naporma. Ang usa ka layer sa pagrekord gibutang sa ibabaw, nga gikuha kung ang sudlanan mohunong. Kini nagsiguro nga kung ang sudlanan modagan, ang aplikasyon kanunay adunay parehas nga palibot, nga dili mabag-o. Gigarantiyahan niini ang pag-usab sa kalikopan sa lainlaing mga host OS. Bisan kung kini Ubuntu o CentOS, ang palibot kanunay nga parehas. Dugang pa, ang sudlanan nahimulag gikan sa host gamit ang mga mekanismo nga gitukod sa Linux kernel. Ang mga aplikasyon sa usa ka sudlanan dili makita ang mga file, proseso sa host ug silingan nga mga sudlanan. Kini nga pag-inusara sa mga aplikasyon gikan sa host OS naghatag usa ka dugang nga layer sa seguridad.

Adunay daghang mga himan nga magamit sa pagdumala sa mga sudlanan sa usa ka host. Ang labing inila kanila mao ang Docker. Gitugotan ka niini nga mahatagan ang tibuuk nga siklo sa kinabuhi sa mga sudlanan. Bisan pa, kini nagtrabaho lamang sa usa ka host. Kung kinahanglan nimo nga magdumala sa mga sulud sa daghang mga host, mahimo’g himuon ni Docker ang kinabuhi nga impyerno alang sa mga inhenyero. Mao nga gimugna ang Kubernetes.

Ang panginahanglan alang sa Kubernetes tukma tungod sa abilidad sa pagdumala sa mga grupo sa mga sudlanan sa daghang mga host ingon usa ka matang sa usa ka entidad. Ang pagkapopular sa sistema naghatag higayon sa pagtukod sa DevOps o Development Operations, diin ang Kubernetes gigamit sa pagpadagan sa mga proseso niining DevOps.

Kubernetes: open source vs. vendor-specific

Figure 1. Eskematiko nga representasyon kung giunsa ang Kubernetes nagtrabaho

Bug-os nga automation

Ang DevOps batakan ang automation sa proseso sa pag-uswag. Sa kinatibuk-an, ang mga developer nagsulat sa code nga gi-upload sa repository. Unya kini nga code mahimong awtomatikong kolektahon diha-diha dayon ngadto sa usa ka sudlanan uban sa tanan nga mga librarya, gisulayan ug "giligid" ngadto sa sunod nga yugto - Staging, ug dayon ngadto sa Production.

Uban sa Kubernetes, ang DevOps nagtugot kanimo sa pag-automate niini nga proseso aron kini mahitabo nga halos walay partisipasyon gikan sa mga developers mismo. Tungod niini, ang pagtukod labi ka paspas, tungod kay ang developer dili kinahanglan nga buhaton kini sa iyang kompyuter - nagsulat lang siya usa ka piraso sa code, giduso ang code sa repository, pagkahuman gilunsad ang pipeline, nga mahimong maglakip sa proseso. sa pagtukod, pagsulay, ug pagpalupad. Ug kini mahitabo sa matag pasalig, mao nga ang pagsulay mahitabo padayon.

Sa parehas nga oras, ang paggamit sa usa ka sudlanan nagtugot kanimo nga masiguro nga ang tibuuk nga palibot sa kini nga programa ipagawas sa produksiyon nga eksakto sa porma kung diin kini gisulayan. Sa ato pa, wala’y mga problema sama sa "adunay pipila ka mga bersyon sa pagsulay, ang uban sa produksiyon, apan kung gi-install namon kini, nahulog ang tanan." Ug tungod kay karon kami adunay us aka us aka us aka arkitektura sa microservice, kung imbes sa usa ka dako nga aplikasyon adunay gatusan nga mga gagmay, aron madumala kini nga mano-mano, usa ka daghang kawani sa mga empleyado ang kinahanglan. Mao nga gigamit namon ang Kubernetes.

Pros, pros, pros


Kung maghisgot kita bahin sa mga bentaha sa Kubernetes ingon usa ka plataporma, nan kini adunay hinungdanon nga mga bentaha gikan sa punto sa pagtan-aw sa pagdumala sa usa ka arkitektura sa microservice.

  • Pagdumala sa daghang mga replika. Ang labing hinungdanon nga butang mao ang pagdumala sa mga sulud sa daghang mga host. Labaw ka importante, pagdumala sa daghang mga replika sa aplikasyon sa mga sudlanan isip usa ka entidad. Salamat niini, ang mga inhenyero dili kinahanglan mabalaka bahin sa matag indibidwal nga sudlanan. Kung nahagsa ang usa sa mga sudlanan, makita kini sa Kubernetes ug i-restart kini pag-usab.
  • Cluster network. Ang Kubernetes usab adunay gitawag nga cluster network nga adunay kaugalingong address space. Salamat niini, ang matag pod adunay kaugalingon nga adres. Ang usa ka subpod gisabot nga ang minimum nga structural unit sa usa ka cluster diin ang mga sudlanan direktang gilunsad. Dugang pa, ang Kubernetes adunay gamit nga naghiusa sa usa ka load balancer ug Service Discovery. Gitugotan ka niini nga matangtang ang manwal nga pagdumala sa IP address ug itugyan kini nga buluhaton sa Kubernetes. Ug ang awtomatikong pagsusi sa kahimsog makatabang sa pag-ila sa mga problema ug pag-redirect sa trapiko sa mga nagtrabaho nga pod.
  • Pagdumala sa pag-configure. Kung nagdumala sa daghang mga aplikasyon, mahimong lisud ang pagdumala sa pagsumpo sa aplikasyon. Alang niini nga katuyoan, ang Kubernetes adunay espesyal nga mga kapanguhaan sa ConfigMap. Gitugotan ka nila nga ibutang sa sentro ang mga pag-configure ug ibutyag kini sa mga pod kung nagdagan ang mga aplikasyon. Kini nga mekanismo nagtugot kanamo sa paggarantiya sa pagkamakanunayon sa pagsumpo sa labing menos napulo o usa ka gatos nga mga replika sa aplikasyon.
  • Nagpadayon nga mga Tomo. Ang mga sudlanan kay kinaiyanhon nga dili mausab ug kung ang sudlanan gipahunong, ang tanan nga datos nga gisulat sa file system malaglag. Apan ang pipila ka mga aplikasyon nagtipig data direkta sa disk. Aron masulbad kini nga problema, ang Kubernetes adunay gamit sa pagdumala sa pagtipig sa disk - Persistent Volumes. Kini nga mekanismo naggamit sa eksternal nga pagtipig alang sa datos ug mahimong magbalhin sa padayon nga pagtipig, block o file, ngadto sa mga sudlanan. Kini nga solusyon nagtugot kanimo sa pagtipig sa datos nga gilain gikan sa mga trabahante, nga makaluwas kanila kung kini nga mga trabahante maguba.
  • Load Balancer. Bisan kung sa Kubernetes kami nagdumala sa mga abstract nga entidad sama sa Deployment, StatefulSet, ug uban pa, sa katapusan ang mga sudlanan nagdagan sa regular nga virtual machine o hardware server. Dili sila perpekto ug mahimong mahulog bisan unsang orasa. Makita kini sa mga Kubernetes ug i-redirect ang internal nga trapiko sa ubang mga replika. Apan unsa ang buhaton sa trapiko nga gikan sa gawas? Kung idirekta ra nimo ang trapiko sa usa sa mga trabahante, kung kini nahagsa, ang serbisyo mahimong dili magamit. Aron masulbad kini nga problema, ang Kubernetes adunay mga serbisyo sama sa Load Balancer. Gidisenyo kini aron awtomatiko nga i-configure ang usa ka eksternal nga balanse sa panganod alang sa tanan nga mga trabahante sa cluster. Kini nga external balancer nagdumala sa gawas nga trapiko sa mga trabahante ug nag-monitor sa ilang kahimtang mismo. Kung ang usa o daghang mga trabahante dili magamit, ang trapiko gi-redirect sa uban. Gitugotan ka niini nga maghimo labi ka magamit nga mga serbisyo gamit ang Kubernetes.

Ang mga Kubernetes labing maayo kung nagdagan sa mga arkitektura sa microservice. Posible nga ipatuman ang sistema sa klasikal nga arkitektura, apan kini walay kapuslanan. Kung ang usa ka aplikasyon dili makadagan sa daghang mga replika, nan unsa ang kalainan niini - sa Kubernetes o dili?

Open source Kubernetes


Ang open source nga Kubernetes usa ka maayong butang: Gi-install ko kini ug kini nagtrabaho. Mahimo nimong i-deploy kini sa imong kaugalingon nga mga server sa hardware, sa imong kaugalingon nga imprastraktura, i-install ang mga agalon ug mga trabahante diin ang tanan nga mga aplikasyon modagan. Ug labaw sa tanan, kining tanan libre. Bisan pa, adunay mga nuances.

  • Ang una mao ang panginahanglan alang sa kahibalo ug kasinatian sa mga administrador ug mga inhenyero nga mag-deploy ug mosuporta niining tanan. Tungod kay ang kliyente nakadawat sa hingpit nga kagawasan sa paglihok sa cluster, siya ang responsable sa paghimo sa cluster mismo. Ug sayon ​​kaayo nga mabungkag ang tanan dinhi.
  • Ang ikaduha mao ang kakulang sa mga panagsama. Kung nagpadagan ka sa Kubernetes nga wala’y sikat nga platform sa virtualization, dili nimo makuha ang tanan nga mga benepisyo sa programa. Sama sa paggamit sa Persistent Volumes ug Load balancer services.

Kubernetes: open source vs. vendor-specific

Figure 2. k8s nga arkitektura

Kubernetes gikan sa vendor


Ang panagsama sa usa ka cloud provider naghatag duha ka kapilian:

  • Una, ang usa ka tawo mahimo ra nga mag-klik sa buton nga "paghimo kumpol" ug makakuha usa ka kumpol nga na-configure na ug andam na gamiton.
  • Ikaduha, ang vendor mismo ang nag-install sa cluster ug nag-set up sa integration sa cloud.

Giunsa kini nahitabo dinhi. Ang inhenyero nga nagsugod sa cluster nagtino kung pila ka mga trabahante ang iyang gikinahanglan ug kung unsang mga parameter (pananglitan, 5 ka trabahante, matag usa adunay 10 ka CPU, 16 GB sa RAM ug, ingnon ta, 100 GB nga disk). Pagkahuman niini makakuha og access sa naporma na nga cluster. Sa kini nga kaso, ang mga trabahante diin ang karga gilusad hingpit nga gibalhin sa kliyente, apan ang tibuuk nga eroplano sa pagdumala nagpabilin sa ilawom sa responsibilidad sa vendor (kung ang serbisyo gihatag sumala sa gidumala nga modelo sa serbisyo).

Bisan pa, kini nga laraw adunay mga kakulangan. Tungod sa kamatuoran nga ang management plane nagpabilin sa vendor, ang vendor wala mohatag og bug-os nga access sa kliyente, ug kini makapakunhod sa pagka-flexible sa pagtrabaho uban sa Kubernetes. Usahay mahitabo nga gusto sa usa ka kliyente nga idugang ang pipila ka piho nga pag-andar sa Kubernetes, pananglitan, pag-authenticate pinaagi sa LDAP, apan ang pag-configure sa eroplano sa pagdumala wala magtugot niini.

Kubernetes: open source vs. vendor-specific

Figure 3. Ehemplo sa Kubernetes cluster gikan sa cloud provider

Unsa ang pilion: open source o vendor


Busa, ang Kubernetes ba bukas nga tinubdan o piho nga tigbaligya? Kung magkuha kami og open source nga Kubernetes, nan buhaton sa user ang gusto niya niini. Apan adunay usa ka dako nga kahigayunan sa pagpusil sa imong kaugalingon sa tiil. Uban sa vendor mas lisud, tungod kay ang tanan gihunahuna ug gi-configure alang sa kompanya. Ang pinakadako nga disbentaha sa open source Kubernetes mao ang gikinahanglan alang sa mga espesyalista. Uban sa usa ka kapilian sa vendor, ang kompanya gipagawas gikan sa kini nga sakit sa ulo, apan kinahanglan nga magdesisyon kung bayran ang mga espesyalista niini o ang vendor.

Kubernetes: open source vs. vendor-specific

Kubernetes: open source vs. vendor-specific

Aw, klaro ang mga pro, nahibal-an usab ang mga kontra. Usa ka butang ang kanunay: Gisulbad sa Kubernetes ang daghang mga problema pinaagi sa pag-automate sa pagdumala sa daghang mga sudlanan. Ug hain ang pilion, open source o vendor - ang tanan naghimo sa ilang kaugalingong desisyon.

Ang artikulo giandam ni Dmitry Krasnov, nanguna nga arkitekto sa serbisyo sa Containerum sa #CloudMTS provider

Source: www.habr.com

Idugang sa usa ka comment