Programmēšana

Kubernetes vs Docker: Izprotiet konteinerus un orķestrēšanu

Ja esat sekojis līdzi jaunākajām programmatūras izstrādes tendencēm, neapšaubāmi atkal un atkal esat saskāries ar diviem terminiem: Docker un Kubernetes, kas būtībā irkonteineri unorķestrēšana.

Docker konteineri ir palīdzējuši racionalizēt lietojumprogrammu pārvietošanas procesu, izmantojot izstrādi un testēšanu, un ražošanā, savukārt gan Docker, gan Kubernetes ir palīdzējuši izgudrot lietojumprogrammu veidošanas un izvietošanas veidu - kā mikroservisu kolekcijas, nevis monolītus krāvumus.

Kāpēc Dokers un Kubernetes ir svarīgi, kā tie maina programmatūras izstrādi un kādu lomu katrs spēlē šajā procesā? Es centīšos atbildēt uz šiem jautājumiem zemāk.

Dokers un konteineri

Konteineri, kas tiek atbalstīti Linux, Windows un citās modernās operētājsistēmās, ļauj programmatūrai darboties patstāvīgā mini vidē, kas ir izolēta no pārējās sistēmas. Konteineri ir pielīdzināti VM, taču tie nav VM - tie ir daudz slaidāki, ātrāk iedarbināmi un apstādināmi, kā arī daudz elastīgāki un pārnēsājamāki. Tā kā konteinerus var pagriezt uz augšu vai uz leju, vai arī tos var palielināt sekundēs, tie atvieglo lietotņu palaišanu elastīgās vidēs, piemēram, mākonī.

Linux un citas operētājsistēmas daudzus gadus ir atbalstījušas konteinerizētas lietotnes, taču darbs ar konteineriem nebija gluži lietotājam draudzīgs. Docker gan savā atvērtā koda, gan komerciālajos iemiesojumos ir programmatūra, kas konteinerus padara par lietotājam draudzīgu un izstrādātājam draudzīgu preci. Docker nodrošina kopēju rīku un metaforu komplektu konteineriem, lai jūs varētu iesaiņot lietotnes konteinera attēlos, kurus var viegli izvietot un atkārtoti izmantot savā organizācijā vai citur.

Īsāk sakot, Docker ļauj ātri izveidot konteineru attēlus, tos versijot, kopīgot, pārvietot un izvietot ar Docker saderīgos resursdatoros kā darbojošos konteinerus.

Kad es varu izmantot Docker un konteinerus?

Dokers un konteineri ir vispiemērotākie, ja strādājat ar slodzēm, kurām jābūt ar vienu vai vairākām no šīm īpašībām:

  • Elastīga mērogojamība. Jūs nezināt, cik daudz lietotnes gadījumu jums būs jāpalaiž, lai apmierinātu pieprasījumu. Konteinerā ievietotu lietotni vai pakalpojumu var palielināt, lai apmierinātu pieprasījumu, izvietojot mazāk vai vairāk tās konteineru gadījumu.
  • Izolācija. Jūs nevēlaties, lai lietotne traucētu citām lietotnēm. Varbūt, lai apmierinātu dažādus API labojumus, blakus darbināsiet vairākas lietotnes versijas. Vai varbūt vēlaties saglabāt pamata sistēmu tīru (vienmēr laba ideja).
  • Pārnesamība. Šī lietotne ir jādarbina dažādās vidēs, un katram iestatījumam ir jābūt atkārtojamam. Konteineri ļauj iesaiņot visu jūsu lietojumprogrammas izpildlaika vidi, padarot lietotni viegli izvietojamu visur, kur atrodat ar Docker saderīgu resursdatoru - izstrādātāja darbvirsmu, kvalitātes nodrošināšanas testēšanas mašīnu, vietējo dzelzi vai attālo mākoni.

Uzziniet vairāk par Docker un konteineriem

  • Kas ir Dokers? Dzirkstele konteineru revolūcijai
  • Kāpēc jums vajadzētu izmantot Docker un konteinerus
  • Sāciet darbu ar Docker
  • Docker slēptās priekšrocības kvalitātes nodrošināšanai
  • 12 atvērtā koda rīki, kas padara Docker labāku
  • Vairāk Docker jaunumu, analīzes, padomu, pārskatu un padomu

Kubernetes un konteineru orķestrēšana

Konteineri ir paredzēti galvenokārt procesu vai lietojumprogrammu izolēšanai viens no otra un pamatā esošās sistēmas. Atsevišķu konteineru izveidošana un izvietošana ir vienkārša. Bet ko tad, ja vēlaties apkopot vairākus konteinerus - teiksim, datu bāzi, tīmekļa priekšgalu, skaitļošanas aizmuguri - lielā lietojumprogrammā, kuru var pārvaldīt kā vienību, neraizējoties par izvietošanu, savienošanu, pārvaldību, un mērogot katru no šiem konteineriem atsevišķi? Jums ir nepieciešams veids, kāorķestris visas daļas funkcionālā veselumā.

Tas ir Kubernetes darbs. Ja konteineri ir kruīza pasažieri, Kubernetes ir kruīza direktors.

Kubernetes, kas balstīts uz Google izveidotajiem projektiem, nodrošina veidu, kā automatizēt vairāku konteineru lietojumprogrammu izvietošanu un pārvaldību vairākos resursdatoros, nepārvaldot katru konteineru tieši. Izstrādātājs apraksta lietojumprogrammas izkārtojumu vairākos konteineros, tostarp informāciju par to, kā katrs konteiners izmanto tīklošanu un krātuvi. Kubernetes pārējā laikā rīkojas izpildes laikā. Tas arī apstrādā tādu smalku informāciju kā noslēpumi un lietotņu konfigurācijas.

Lai labi izmantotu Kubernetes, nepieciešama zināma kompetence, lai gan tas ir daudz vairāk risinājums pēc atslēgas, nekā tas bija agrāk. Daļa progresa lietošanas ērtumā ir saistīta ar viegli pieejamām receptēm parastajām lietojumprogrammām (Helm diagrammas); Dažas no tām ir saistītas ar daudzajiem Kubernetes izplatījumiem, ko ražo firmas firmas (Red Hat, Canonical, Docker), kas darbojas roku rokā ar populārām lietojumprogrammu kopām un izstrādes ietvariem.

Kad es varu izmantot Kubernetes un konteineru orķestrēšanu?

Vienkāršām konteineru lietotnēm, kas apkalpo nelielu lietotāju skaitu, parasti nav nepieciešama orķestrēšana, nemaz nerunājot par Kubernetes. Bet, ja lietotnei ir vairāk nekā niecīgs funkcionalitātes līmenis vai niecīgs lietotāju skaits, kļūst grūti neizgudrot riteni, ko nodrošina orķestrēšanas sistēmas. Šeit ir daži īkšķa noteikumi, lai noteiktu, kad orķestrēšanai jāievada attēls.

  • Jūsu lietotnes ir sarežģītas. Jebkura lietojumprogramma, kas ietver vairāk nekā divus konteinerus, iespējams, atbilst rēķinam. Tas nozīmē, ka pieticīgas lietotnes, kas apkalpo tikai nelielu skaitu lietotāju, var tikt organizētas, izmantojot minimālāku risinājumu, piemēram, Docker spietošanas režīmu, nevis Kubernetes.
  • Jūsu lietotnēm ir augstas prasības attiecībā uz mērogošanu un elastību. Kubernetes un citi orķestri ļauj jums līdzsvarot slodzes un vērpt konteinerus, lai deklaratīvi apmierinātu pieprasījumu, aprakstot vēlamo sistēmas stāvokli, nevis kodējot reakcijas uz mainīgajiem apstākļiem ar roku.
  • Jūs vēlaties maksimāli izmantot mūsdienu CI / CD tehnikas. Orķestrēšanas sistēmas atbalsta to lietotņu izvietošanas modeļus, kurās tiek izmantota zila / zaļa izvietošana vai pastāvīgi jauninājumi.

Var pienākt diena, kad Dokeru un Kubernetesu aptumšo vēl draudzīgākas abstrakcijas, un tie ļaus elegantākam veidam, kā izveidot un pārvaldīt konteinerus. Tomēr pagaidām Docker un Kubernetes ir izšķiroši svarīgi zināt un saprast.

Uzziniet vairāk par Kubernetes un orķestrēšanu

  • Kas ir Kubernetes? Jūsu nākamā lietojumprogrammu platforma
  • 4 iemesli, kāpēc jums vajadzētu izmantot Kubernetes
  • 10 Kubernetes izplatījumi, kas vada konteineru revolūciju
  • Pārvalda Kubernetes: AWS pret Azure pret Google Cloud
  • Sveiki MicroK8s: vienkāršāks Kubernetes
  • Kas jauns Kubernetes
  • Vairāk Kubernetes ziņu, ieteikumu, pārskatu, padomu un analīzes
$config[zx-auto] not found$config[zx-overlay] not found