Enda valitud teema 2 - Docker ja Kubernetes - millega on tegemist?

Teiseks enda valitud teemaks valisin kahe konteineritega seotud tehnoloogia tutvustamise, mida olen ka ise aktiivselt kasutanud. Antud tehnoloogiad leiab tihti ka töökuulutustes, ning seetõttu langes teine postitus just antud teema kasuks.


Mis on Kubernetes?

Kubernetes on avatud lähtekoodiga konteinerorkestreerimise platvorm, mis võimaldab automatiseerida konteinerirakenduste haldamist ja orkestreerimist. Tänu sellele saab konteineris jooksvaid rakendusi lihtsasti juhtida ning skaleerida. Tarkvara algne looja on Google, ning lähtekood on avatud. [1] Samuti ei pea olema sügavaid teadmisi infrastruktuurist, ning mõne käsu abil on võimalik juba pakitud rakendus panna konteinerisse jooksma. Antud tehnoloogia on tähtis just mikroteenuste vaatest. [2]


Mis on Docker?

Docker on avatud lähtekoodiga konteinerite virtualiseerimise platvorm, pakkudes keskkonda rakenduste arendamiseks, käitamiseks ja jagamiseks. Konteinerid on väiksemahulised, eraldatud keskkonnad, mis pakuvad kõiki vajalikke ressursse, et käivitada rakendust koos selle sõltuvustega, kuid ilma vajaduseta virtualiseerida kogu operatsioonisüsteemi. [2]


Erinevused.

Vaadates eelnevaid tutvustusi, võib tekkida küsimus, mis on nende erinevus? Kubernetes on mõeldud konteinerite haldamiseks, kuid Docker võimaldab konteinerid nii luua kui ka käivitada, seega on erinevus juba funktsionaalne. Seega rakenduse viimiseks konteinerisse võiks kasutada Dockerit ning orkestreerimiseks Kubernetesi, kuid Docker võimaldab samuti konteinereid käivitada ning hallata. Kui liigume temaatiliselt just konteinerite haldamisele, siis siinkohal võivad inimeste arvamused eelistuste põhjal lahkneda, kuid võimalik on kasutada nii Dockeri enda poolt pakutavat Docker Engine'i kui ka Kubernetesi. [3]


Personaalne arvamus - kas hallata konteinerid Docker Engine'ga või Kubernetesega?

Isiklikult puutusin esimesena kokku just Dockeriga, mil minu ülesandeks oli katsetada uut CI/CD platvormi. Enne toote liigutamist pilvekeskkonda oli vaja toodet seadistada, seega sai installitud vajalikud Dockeri komponendid ning alustatud katsetamisega. Esialgu keeruliste tundunud käsklused muutusid tänu pentsikule tootele kiirelt selgeks, ning võiks öelda, et mõne tunniga olid juba baaskäsklused selged. Üks hiljutisemaid personaalseid projekte seoses Dockeriga oli macOS-i jooksutamine konteineris ning kui vaadata kõrvale keerukast seadistamisest, jooksis see tegelikult konteineris väga hästi.

Kubernetesega toimus esimene kokkupuude alles eelmisel aastal, ning seega on tegemist tegelikult ka minu jaoks uue tehnoloogiaga. Hetkel töötan Kafka ülesseadistamisega pilve ning valik osutus just Kubernetesi kasuks (AWS EKS). Kohe võin mainida ka keerukust võrreldes Docker Engine'ga (Docker Compose up), ning tõesti, esimene seadistamine võtab veidi kauem aega, kuid kindlasti pole see midagi konti murdvat. Kasutades näiteks Helm charte, on Kubernetesi platvormile võimalik kiiresti erinevaid rakendusi installida, ning tegelikult on tegemist ka antud juhul täiesti õpitava tehnoloogiaga. Võib-olla just hilisema kokkupuute või esmase ekstaasiga pean nentima, et hetkel pean isegi kodusel katsetamisel paremaks just Kubernetesi, kuna näiteks replicaseti kasutamine Docker Swarmini asemel on äärmiselt lihtne ning üleüldiselt on kubectl abil võimalik konteinereid väga lihtsalt hallata ning saada kiire ülevaade milline teenus jookseb ning millistes portides.


Allikad:

[1] https://www.atlassian.com/microservices/microservices-architecture/kubernetes-vs-docker

[2] https://aws.amazon.com/compare/the-difference-between-kubernetes-and-docker/

[3] https://www.geeksforgeeks.org/kubernetes-vs-docker/

Kommentaarid

Populaarsed postitused sellest blogist

Nädal 1 - Kolm põnevat IT lahendust.

Nädal 2 – Kaks erinevat tehnoloogiat Interneti varasemast ajaloost

Nädal 3 - Uus meedia