Mi a containerd, és hogyan viszonyul a Dockerhez és a Kuberneteshez? – CloudSavvy IT

Avatar admin | 2021.03.12. 5 Views 0 Likes 0 Ratings

5 Views 0 Ratings Rate it

A Docker és a Kubernetes logókat ábrázoló ábra

A konténerek továbbra is sok ember számára jelentik a „Dockert”. A Docker népszerűsítette a konténerek modern használatát a szoftverfejlesztésben és a telepítésben. Manapság más technológiák is a közelben vannak. Így viszonyul Containerd, Docker és Kubernetes egymáshoz.

A kezdetek

Annak megjelenés 2013-ban, A Docker önálló projekt volt, amely tartalmazott mindent a konténerek felépítéséhez és futtatásához. Hiányzott belőle a konténerek telepítésének egyszerű módja a felhőben.

2013 végén a Google munkatársai már voltak ezzel foglalkozva annak prototípusával, hogy mi lesz Kubernetes. A Kubernetes célja, hogy leegyszerűsítse a konténeres munkaterhelések működését a nagy gépparkokban.

Azokban a korai időkben Kubernetes elválaszthatatlanul összekapcsolódott Dockerrel. A Docker-t közvetlenül használta a tárolókkal való interakcióhoz, annak ellenére, hogy csak a funkcionalitás egy részére volt szüksége – a konténerek tényleges futtatásáért felelős részekre.

A Docker fejlesztőközpontú kezelőfelülete akadályozta Kubernetes-t. Egy dedikált eszköz segítségével meg kellett kerülnie a projekt emberbarát szempontjait, Dockershim. A kérdéseket kiegészítették a Docker és Kubernetes különböző irányai. A Docker elindította a Swarm-ot, a saját Kubernetes-alternatíváját, amely beépített hangszerelést kínál Docker „mód”.

A Containerd felemelkedése

Ahogy a Kubernetes nőtt, és újabb, harmadik féltől származó eszközök jelentek meg a Docker körül, egyértelművé vált architektúrájának korlátai. Ugyanakkor a Open Container Initiative (OCI) megkezdte a konténer formátumok és futásidők egységesítését. Ez egy OCI specifikációt eredményezett, amely meghatározta egy tárolót, amelyet több futási idő is használhat, amire a Docker is példa.

A Docker ezt követően egy új projektbe vonta ki a konténer futási idejét, containerd. Ez magában foglalja a Docker funkcionalitását a konténerek végrehajtására, az alacsony szintű tárolás kezelésére és a képátvitelek kezelésére. Containerd-t adományozták a Cloud Native Computing Foundation (CNCF) annak érdekében, hogy alapot biztosítson a konténer közösség számára új konténer megoldások létrehozásához.

A containerd megjelenése megkönnyíti az olyan projektek számára, mint a Kubernetes, a szükséges alacsony szintű „Docker” elemek elérését. Ahelyett, hogy ténylegesen a Dockert használnák, most már hozzáférhetőbb interfésszel rendelkeznek a konténer futásidejéhez. A konténertechnológiák OCI szabványosítása azt jelenti, hogy más futási idő is használható.

Containerd szerepének megértése

A containerd teljes megértéséhez meg kell vizsgálni a konténerek jellegét. A konténerek valóban absztrakció a különféle Linux kernelfunkciókhoz képest. Tároló futtatásához syscall-okat kell használnia a tárolt környezet beállításához. A lépések platformonként és disztribúciónként változnak.

A Containerd beilleszti ezt az alacsony szintű vezetéket. Célja mint „ügyfél réteg” hogy a konténerszoftver ekkor felépül. Ez lehet fejlesztő-orientált szoftver, például Docker, vagy felhő-orientált fejlesztői eszközök, például Kubernetes.

Korábban a Kubernetes fejlesztésnek két rossz lehetősége maradt: folytassa az írások írását a tetemes Docker felület körül, vagy kezdje el közvetlenül a Linux kernel szolgáltatásait. A containerd kibontásával a Dockerből egy harmadik alternatíva vált elérhetővé: a containerd használata rendszer-absztrakciós rétegként, Docker bevonása nélkül.

Íme egy összefoglaló a három technológia ötvözéséről:

  • Dokkmunkás – Fejlesztő-orientált szoftver magas szintű interfésszel, amely lehetővé teszi a konténerek egyszerű felépítését és futtatását a terminálról. Most a containerd-t használja tároló futásidejeként.
  • Containerd – A kernel tulajdonságainak absztrakciója, amely viszonylag magas szintű tároló felületet biztosít. Más szoftverprojektek felhasználhatják ezt tárolók futtatására és tároló képek kezelésére.
  • Kubernetes – Egy konténeres hangszerelő, amely több konténer futási idővel működik, beleértve a containerd-t is. A Kubernetes arra összpontosít, hogy a konténereket összesítve helyezze el egy vagy több fizikai „csomóponton”. Történelmileg Kubernetes Dockerhez volt kötve.

A Containerd csak egy konténer háttérrendszer. A konténert megvalósító egyéb konténerek Nyissa meg a Containers Runtime specifikációt tartalmazza runC és CRI-O. Ezeket a futási idõket a Docker és a Kubernetes együttesen is használhatjuk; mindegyiknek megvan a maga megkülönböztetése.

Az OCI

Az OCI a meghatározásért felelős testület konténer szabványok. Munkája kulcsfontosságú volt a különböző alkatrész-technológiák közötti átjárhatóság megkönnyítésében.

Az OCI képspecifikációja meghatározza, hogy milyen legyen egy tároló. A futásidejű specifikáció interfészt határoz meg a tárolók futtatásához. Az olyan projektek, mint a containerd, végrehajtják ezeket a specifikációkat.

Fontos, hogy az OCI egyik prioritása a Docker által népszerűsített konténerhasználati élmény támogatása. Képeinek a felhasználó által definiált argumentumok (pl docker run hello-world:latest). Az OCI képeknek ezért elegendő metaadatot kell tartalmazniuk az automatikus konfigurálás engedélyezéséhez.

Láthat hivatkozásokat a Konténer futásidejű interfész (CRI). Ez egy Kubernetes-specifikus absztrakció az OCI specifikáció fölött. A CRI az OCI specifikációkra épít, hogy lehetővé tegye a cserélhető konténer futásideinek támogatását a Kubernetesen belül.

Mi a helyzet a Docker képeimmel?

A Dockerrel készített képek egyáltalán nem „Docker-képek”. Mivel a Docker most már a containerd futásidőt használja, a képek szabványosított Open Container Initiative (OCI) formátumban készülnek.

Nem kell aggódnia a Docker-képek és a használt környezet közötti összeférhetetlenség miatt. A Docker-rel készített képek továbbra is telepíthetők a Kubernetes használatával. A Kubernetes ugyanis támogatja az OCI képeket is a containerd (és más szabványoknak megfelelő futásidők) használatával. Ez a futási idő a képek lehúzásának és futtatásának kezelése, nem pedig a Dockerhez és a Kuberneteshez hasonló magas szintű interfész.

Kubernetes és Docker

Kubernetes 2020 végén megszüntette a Docker futási idejét eltávolításra kerül egy későbbi kiadásban, amelyet jelenleg 2021 végére terveznek. Ezt követően a Kubernetes már nem kínálja fel a Dockert futási idő támogatás. Helyette az OCI specifikációkkal kompatibilis alternatív futást kell használni, mint például a containerd.

Ez a bejelentés aggodalmat keltett a fejlesztőkre gyakorolt ​​következményekkel kapcsolatban. A változás nem érinti a legtöbb meglévő munkafolyamatot. Amint már láthattuk, a Docker OCI-kompatibilis képeket készít, amelyeket az OCI-kompatibilis futási futtathat. Minden kép, amellyel épít docker build továbbra is működni fog a Kubernetesen belül, még a Docker futásidejének eltávolítása után is.

Két különböző technológiát fontolgatnak – a Docker-t parancssori felület tárolók és a Docker létrehozásához és futtatásához használt futási idő amelyet a parancssori felület körbefut.

Túl zavaró az egész!

Néhány év alatt a konténerek megváltoztatták a fejlesztők számát. A környező ökoszisztéma terjeszkedése ennek a változásnak természetes mellékterméke volt. A Containers === Docker a mentalitás túl fojtogatónak bizonyult, mivel megakadályozta, hogy a Kuberneteshez hasonló eszközök teljes képességeiket megmutassák.

A szabványosítás felé történő elmozdulás rengeteg új kifejezést, eszközt és technológiát eredményezett. Ennek ellenére semmi sem változott a fejlesztők számára, függetlenül attól, hogy a gépén Docker CLI-vel, vagy a felhőben lévő Kubernetes-fürtrel kommunikál-e.

Minden magas szintű felhasználói felület (például a Docker és a Kubernetes) most cserélhető alacsony szintű tároló futásidejű (például containerd és runC) előnyöket élvez. Ez nagyobb fokú rugalmasságot tesz lehetővé, és lehetővé teszi az új konténer alapú technológiák szabványokhoz igazodó megalapozását.


Source link


5 Views 0 Ratings Rate it

  • Minden jog fenntartva 2019-2020. Hogyankészítsek.Hu Impresszum Adatkezelési szabályok