Galvenā atšķirība starp K3S un standarta Ku­ber­ne­tes in­sta­lā­ci­ju (K8S) ir sa­rež­ģī­tī­ba un resursu patēriņš. K3S ir vieglāka, op­ti­mi­zē­ta Ku­ber­ne­tes versija, kas iz­strā­dā­ta resursu ie­ro­be­žo­tām vidēm un malu datu apstrādei, savukārt K8S ir pilnfun­kci­ju standarta Ku­ber­ne­tes platforma.

Kas ir K3S un K8S?

K3S ir viegls Ku­ber­ne­tes iz­pla­tī­jums, ko iz­vei­do­jis Rancher Labs. Tas ir pilnībā saderīgs ar K8S API, bet no tā ir izņemtas ne­bū­tis­kas sa­stāv­da­ļas un rīki, lai ie­vē­ro­ja­mi sa­ma­zi­nā­tu resursu iz­man­to­ša­nu. Šis vien­kār­šo­tais dizains padara K3S par lielisku izvēli malu datu apstrādei, IoT ierīcēm un maziem serveriem, kur tra­di­cio­nā­lie Ku­ber­ne­tes klasteri būtu pārāk re­sur­sie­til­pī­gi.

K8S ir vadošā atvērtā koda platforma kon­tei­ne­ru koor­di­nē­ša­nai un bieži tiek uzskatīta par „klasisko” Ku­ber­ne­tes formu. Tā ļauj pārvaldīt, mērogot un au­to­ma­ti­zēt kon­tei­ne­ri­zē­tās lie­to­jum­prog­ram­mas lielās ražošanas vidēs. K8S ietver tādas jaudīgas funkcijas kā pa­šat­jau­no­ša­nās, pa­kā­pe­nis­kas at­jau­ni­nā­ju­mi un slodzes iz­lī­dzi­nā­ša­na. Šī elastība padara to piemērotu uzņēmumu klas­te­riem, mā­ko­ņin­fras­truk­tū­rām un sa­rež­ģī­tām mik­ro­ser­vi­su ar­hi­tek­tū­rām. Tomēr K8S prasa arī ie­vē­ro­ja­mi vairāk resursu un ad­mi­nis­tra­tī­vo zināšanu.

At­šķi­rī­bas starp K8S un K3S

K3S un K8S sa­lī­dzi­nā­ju­ma at­šķi­rī­bas var apkopot vairākos gal­ve­na­jos punktos.

1. Resursu patēriņš

K3S tika speciāli iz­strā­dāts vidēm ar ie­ro­be­žo­tiem resursiem. Tajā nav daudzu papildu kom­po­nen­tu, piemēram, standarta Ku­ber­ne­tes kon­tro­lie­ru, ieejas kon­tro­lie­ru un plašas žurnālu re­ģis­trā­ci­jas. Rezultātā K3S klasteris patērē daudz mazāk RAM un CPU jaudu nekā K8S klasteris, vien­lai­kus no­dro­ši­not kon­tei­ne­ru or­ķes­trā­ci­jas pa­matfun­kci­jas. Savukārt K8S ir iz­strā­dāts, lai būtu mē­ro­go­jams lieliem klas­te­riem, un piedāvā pilnu funkciju kopumu, kas prasa ie­vē­ro­ja­mi lielākus resursus.

2. Uz­stā­dī­ša­na un kon­fi­gu­rē­ša­na

K3S in­sta­lē­ša­na ir ļoti vienkārša: pietiek ar vienu komandu, lai izvietotu galveno mezglu vai daudzmez­glu klasteri. Pēc no­klu­sē­ju­ma tajā ir iekļauti arī kon­tei­ne­ru darbības laiks un tīkla spraudņi. Savukārt K8S prasa vairākus soļus, piemēram, Kubelet, Kube-Proxy, API servera un citu kom­po­nen­tu in­sta­lē­ša­nu, kā arī tīkla kon­fi­gu­rē­ša­nu. Tā rezultātā K8S ir ie­vē­ro­ja­mi sa­rež­ģī­tāks un tā uz­stā­dī­ša­na prasa vairāk laika.

3. Funkciju apjoms un kom­po­nen­ti

K3S apzināti ierobežo savu darbības jomu, kon­cen­trē­jo­ties uz gal­ve­na­jām funkcijām, kas ne­pie­cie­ša­mas vairumā scenāriju, bet papildu pa­pla­ši­nā­ju­mi ir jā­kon­fi­gu­rē manuāli. Savukārt K8S piedāvā pilnu funkciju kopumu, tostarp vi­s­ap­tve­ro­šas API, uz­rau­dzī­bu, žurnālu re­ģis­trē­ša­nu un in­teg­rā­ci­ju ar mā­koņplat­for­mām. Tas arī balstās uz vairākām ārējām atkarībām, piemēram, etcd klastera stāvokļa uz­gla­bā­ša­nai un at­se­viš­ķām sa­stāv­da­ļām, piemēram, kube-apiserver, kube-con­trol­ler-manager un kube-scheduler. K3S samazina nebūtisko kom­po­nen­tu skaitu, apvieno visu vienā binārā failā un no­klu­sē­ju­ma ie­sta­tī­jums ir SQLite, nevis etcd.

4. Mērķa vide

K3S ir īpaši piemērots malu datu apstrādei, IoT, tes­tē­ša­nas un at­tīs­tī­bas vidēm vai mazām ražošanas sistēmām. K8S, savukārt, ir paredzēts lieliem, mē­ro­go­ja­miem klas­te­riem datu centros un mā­ko­ņin­fras­truk­tū­rās. Pareizā izvēle lielā mērā ir atkarīga no pa­re­dzē­tās darba slodzes un pie­eja­ma­jiem resursiem.

5. Drošība

K8S ir iz­strā­dāts daudzlie­to­tā­ju vidēm un uzņēmumu drošībai, pie­dā­vā­jot tādas uzlabotas funkcijas kā uz lomu balstīta piekļuves kontrole, elastīga slepeno datu pār­val­dī­ba un šifrēšana. K3S arī atbalsta uz lomu balstītu piekļuves kontroli un politiku, bet, lai ietaupītu resursus, pēc no­klu­sē­ju­ma neiekļauj noteiktas drošības funkcijas. Tomēr tās var pievienot vēlāk, iz­man­to­jot Ku­ber­ne­tes pamatā esošos rīkus, padarot K3S par praktisku izvēli malu iz­vie­to­ju­miem un vien­lie­to­tā­ju vidēm.

6. Sa­vie­to­ja­mī­ba un kopiena

K3S ir pilnībā saderīgs ar K8S, bet ne visi K8S pa­pla­ši­nā­ju­mi ir iekļauti pēc no­klu­sē­ju­ma. Tā kopiena ir mazāka, taču ļoti kon­cen­trē­ta uz vieglām kon­fi­gu­rā­ci­jām un ātru ieviešanu. K8S, no otras puses, ir lielākā kopiena kon­tei­ne­ru or­ķes­trē­ša­nā, ar plašu do­ku­men­tā­ci­ju un plašu atbalstu pa­pla­ši­nā­ju­miem.

Kad iz­vē­lē­ties K3S vai K8S? Sa­lī­dzi­nā­jums

K3S ir īpaši vērtīgs, ja in­fras­truk­tū­ra ir ie­ro­be­žo­ta vai ja ne­pie­cie­ša­ma ātra un vienkārša ieviešana. Bieži sastopami scenāriji ietver malu datu apstrādes ierīces, mazus serverus, IoT lie­to­jum­prog­ram­mas un izstrādes vai tes­tē­ša­nas vidi. Tas ir arī efektīvs ri­si­nā­jums at­se­viš­ķām mik­ro­pa­kal­po­ju­mu lie­to­jum­prog­ram­mām vai pro­jek­tiem ar ie­ro­be­žo­tu apjomu un mē­ro­go­ja­mī­bas va­ja­dzī­bām, jo tas taupī gan uz­gla­bā­ša­nas, gan CPU resursus.

K8S, savukārt, ir paredzēts liela mēroga ražošanas vidēm, kurās ir būtiska augsta pie­eja­mī­ba, slodzes iz­lī­dzi­nā­ša­na, pa­šat­jau­no­ša­nās un mē­ro­go­ja­mī­ba. Or­ga­ni­zā­ci­jas izmanto K8S, lai koor­di­nē­tu sa­rež­ģī­tas mik­ro­ser­vi­su ar­hi­tek­tū­ras, darbinātu mākonī bāzētas lie­to­jum­prog­ram­mas un pār­val­dī­tu klasterus vairākās datu centros. Platforma ir īpaši piemērota komandām, kurām ne­pie­cie­ša­mas uzlabotas uz­rau­dzī­bas un re­ģis­trē­ša­nas iespējas, in­teg­rē­tas drošības politikas vai vi­s­ap­tve­ro­šas uz­gla­bā­ša­nas in­teg­rā­ci­jas.

Hibrīda lie­to­ju­miem var būt izdevīgi izvietot K3S malā vai at­tīs­tī­bas vidēs, vien­lai­kus iz­man­to­jot K8S mākonī cen­trā­la­jiem ražošanas klas­te­riem. Kopumā K3S ir vieglāks, ātrāks un resursu ziņā efek­tī­vāks, savukārt K8S ir vi­s­ap­tve­ro­šāks, skalējams un piemērots uz­ņē­mu­miem.

K3S un K8S al­ter­na­tī­vas

Papildus K3S un K8S ir vairākas citas Ku­ber­ne­tes dis­tri­bū­ci­jas un kon­tei­ne­ru or­ķes­trā­ci­jas plat­for­mas, kas var būt noderīgas atkarībā no scenārija:

  • MicroK8s: MicroK8s ir viegls Ku­ber­ne­tes iz­pla­tī­jums, ko iz­strā­dā­ju­si Canonical. Tas ir piemērots iz­strā­dā­tā­jiem, maziem klas­te­riem vai tes­tē­ša­nas vidēm. Tas ir modulārs un ātri in­sta­lē­jams, un to var pa­pla­ši­nāt ar papildu funkcijām, piemēram, DNS vai uz­rau­dzī­bu, at­bil­sto­ši va­ja­dzī­bām. Tā vien­kār­šī­ba ļauj iz­strā­dā­tā­jiem viegli ek­spe­ri­men­tēt ar K8S lokāli, pirms pāriet uz lielākiem klas­te­riem.
  • Minikube: Minikube ir iz­strā­dāts īpaši vietējām at­tīs­tī­bas vidēm. Tas nodrošina ātru un vienkāršu veidu, kā darbināt Ku­ber­ne­tes uz viena datora un testēt kon­tei­ne­ri­zē­tās lie­to­jum­prog­ram­mas. Lai gan Minikube nav paredzēts ražošanas klas­te­riem, tas ir lielisks rīks, lai apgūtu Ku­ber­ne­tes funkcijas vai veidotu pro­to­ti­pus.
  • OpenShift: OpenShift ir Red Hat Ku­ber­ne­tes balstīta platforma, kas ietver papildu drošības un uzņēmuma funkcijas. Tā ir īpaši pie­vil­cī­ga lieliem uz­ņē­mu­miem, kam ne­pie­cie­ša­mi stan­dar­ti­zē­ti Ku­ber­ne­tes klasteri ar uzlabotām pār­val­dī­bas un drošības funkcijām. OpenShift var izvietot uz vietas vai mākonī.
  • Docker Swarm: Docker Swarm ir vien­kār­šāks kon­tei­ne­ru koor­di­nā­ci­jas ri­si­nā­jums, kas ir integrēts Docker. Tas ir mazāk sarežģīts nekā Ku­ber­ne­tes, nodrošina būtiskas koor­di­nā­ci­jas funkcijas un ir piemērots mazākiem pro­jek­tiem, kur nav ne­pie­cie­ša­ma uzlabota in­fras­truk­tū­ra, bet joprojām ir ne­pie­cie­ša­ma kon­tei­ne­ru koor­di­nā­ci­ja.
Go to Main Menu