Kubernetes

Kubernetes vs Docker

Kubernetes vs Docker
Kubernetes ir Dockeris didėja. Abi technologijos turėjo labai skirtingas šaknis, tačiau pastaraisiais metais persipynė taip, kaip niekas jų nesitikėjo. Bendruomenės susibūrė, paketai yra perkeliami tarp visų įmanomų operacinių sistemų ir, būdami atvirojo šaltinio, sukėlė daugybę palydovinių projektų ir konkurentų.

Visa tai gali būti didžiulė kiekvienam naujam vartotojui, bandančiam suvokti šią gana naują paradigmą. Aptarkime pagrindinius „Kubernetes“ ir „Docker“ skirtumus, pirmiausia įsigilinę į tai, ką iš tikrųjų reiškia technologijos. Jei esate susipažinę su „Docker“ arba „K8“ (sutrumpintai - „Kubernetes“), galite pereiti pirmyn ir perskaityti skyrių TL; DR.

Kas yra Dockeris?

„Docker“ yra konteinerių technologija. Toje pačioje operacinėje sistemoje galite paleisti kelias programas, izoliuotas viena nuo kitos, nereikalaujant bet kokių virtualios aplinkos privalumų. Pagalvokite apie „Docker“ konteinerius kaip apie tikrai lengvus „Linux“ (taip pat ir „Windows“) VM, bet tai nėra taip populiaru.

„Docker“ turi 3 pagrindinius komponentus, pirmiausia „Docker“ variklį, veikiantį fone ir valdantį važiuojančius konteinerius bei jų atsargas. Tai atskleidžia REST API, kurią naudoja „Docker“ klientas, ir tai leidžia vartotojams sąveikauti su „Docker“ ir kurti naujus konteinerius arba tvarkyti veikiančius.

Tačiau „Docker“ yra viena sistemos programa. Reiškia, jis veikia ir tvarko konteinerius bet kurioje sistemoje, kurioje vyksta.  Didžiulėms programoms su tonomis srauto ir milijonams užklausų, patenkančių iš viso pasaulio, reikia daugiau nei vieno serverio. Štai kur įeina „Kubernetes“.

Kas yra Kubernetes?

„Kubernetes“ naudoja konteinerių kaupimo technologijas, tokias kaip „Docker“, norėdama paleisti kelias jūsų programos kopijas serveriuose ir duomenų centruose visame pasaulyje.

Viena iš konteinerių gabenimo technologijų, kuria naudojasi „Kubernetes“, yra „Docker“. „Kubernetes“ sudaro daugybė įvairių programinės įrangos, skirtos jūsų klasteriui valdyti. Tai teikia valdymo agentą kubeadm, kuris veikia keliuose pasirinktuose pagrindiniuose mazguose (mazgai yra VPS arba fiziniai serveriai), tada yra darbuotojų mazgai, kuriuose yra įdiegtas „Docker“ su kubectl kuris kalbasi su „Docker“ varikliu, kad automatizuotų konteinerių sukimo į viršų ar jų nuėmimo procesą. Visuose darbininkų mazguose veikiantys „kubectl“ agentai priima užsakymus iš pagrindinio mazgo ir pateikia atsiliepimus apie jų mazge veikiančios programos būseną. Maždaug taip paprastai veikia K8 diegimas.

Taip pat galite sujungti skirtingus susijusius „Docker“ konteinerius į paketus (vadinamus ankštimis). Pvz., Galite suburti SQL duomenų bazę ir „Redis“ talpyklos konteinerius kartu, nes norite, kad duomenų bazė ir jos talpykla egzistuotų kartu.

Panašiai galite atidaryti ankštis kitoms ankštims kaip paslaugoms (taip pat žinomoms kaip mikro paslaugos), kad galėtumėte 50 SQL / Redis ankščių eksponuoti kaip duomenų saugyklos paslaugą savo programos priekyje ir pan. Gaunamas pranašumas yra tas, kad 50 ankščių gali būti keliuose duomenų centruose, ir net jei keli iš jų nusileis, kiti atsibos.

„Kubernetes“ yra daug daugiau nei technologija. Tai yra samprotavimo būdas, kaip programinę įrangą paleisti paskirstytoje sistemoje.

Kubernetes be Dockerio

Iš to, kas pasakyta, galite pasakyti, kad K8 labai priklauso nuo konteinerių. „Docker“ yra tik viena iš daugelio konteinerių gamybos technologijų. Kiti yra „CoreOS“ rkt, „Canonical“ LXC, „FreeBSD“ kalėjimai ir „Illumos“ bei „SmartOS“ zonos. „Kubernetes“ potencialiai galėtų būti įdiegta bet kuriai iš šių technologijų. Tiesą sakant, jis gana gerai veikia su „CoreOS“ rkt.

Tačiau dėl „Docker“ populiarumo bendruomenė ir organizacijos viršijo užtikrindamos, kad „Docker“ pasiūlytų viską ir viską, ko prašo „Kubernetes“ specifikacijos. Dėl šios priežasties net tokie projektai kaip „Docker“ „MacOS“ ir „PC“ yra „Kubernetes“ sertifikuoti.

Dokeris be „Kubernetes“

Tai, kaip naudojant „Docker“ „Kubernetes“ turi vieną geriausių palaikymų, pats „Docker“ labai remiasi „Kubernetes“, kad dislokuotų konteinerius. „Docker“ turi savo konteinerių valdymo ir orkestro sistemą, vadinamą „Docker Swarm“, kuri turėtų būti „Kubernetes“ alternatyva.

Nepaisant to, kad „Docker Swarm“ yra vietinė „Docker“ technologija, žmonės prašo „Kubernetes“, o dabartinės rinkos prognozės rodo, kad didžiausią rinkos dalį užims K8. „Docker“ skolingas savo sėkmę daugiausia dėl simbiozės su „Kubernetes“.

TL; DR

Trumpai tariant, „Docker“ yra konteinerių technologija, skirta veikti viename kompiuteryje. „Kubernetes“ yra valdymo technologija, valdanti daugybę konteinerių daugelyje skaičiavimo mazgų.

„Docker“ yra viena iš geriausiai pritaikytų technologijų, leidžiančių kurti jūsų K8 kaminą. Pirmiausia įsitikinkite, kad jūsų programa veikia kaip dokavimo talpykla, tada K8 užtikrina, kad ši talpykla gali būti keičiama visame pasaulyje, jei ateityje to reikia.

Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...
Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...