Megosztás:


Mikroszolgáltatások és többtárolós alkalmazások vezénylálása a magas skálázhatóság és a rendelkezésre állás érdekében

Tipp.

Ez a tartalom egy részlet a .NET-alkalmazásokhoz készült .NET-alkalmazásokhoz készült eBook, .NET Microservices Architecture című eBookból, amely elérhető a .NET Docs-on vagy egy ingyenesen letölthető PDF-fájlként, amely offline módban is olvasható.

.NET mikroszolgáltatások architektúrája konténerizált .NET alkalmazásokhoz e-könyv borító miniatűr.

A vezénylők használata éles használatra kész alkalmazásokhoz elengedhetetlen, ha az alkalmazás mikroszolgáltatásokon alapul, vagy egyszerűen több tárolóra oszlik. A korábban bemutatott mikroszolgáltatás-alapú megközelítésben minden mikroszolgáltatás a saját modelljét és adatait birtokolja, hogy fejlesztési és üzembe helyezési szempontból autonóm legyen. De még ha több szolgáltatásból (például SOA) álló hagyományosabb alkalmazással is rendelkezik, több tárolóval vagy szolgáltatással is rendelkezik, amelyek egyetlen üzleti alkalmazásból állnak, amelyeket elosztott rendszerként kell üzembe helyezni. Az ilyen típusú rendszerek összetettek a vertikális felskálázáshoz és a felügyelethez; Ezért feltétlenül szüksége van egy vezénylőre, ha éles üzemre kész és méretezhető többtárolós alkalmazást szeretne használni.

A 4–23. ábra egy több mikroszolgáltatásból (tárolóból) álló alkalmazásfürtbe való üzembe helyezést szemlélteti.

Diagram a fürtön található, a Composed Docker-alkalmazásokat ábrázoló ábrán.

4–23. ábra. Tárolófürt

Minden szolgáltatáspéldányhoz egy tárolót használ. A Docker-tárolók "üzembehelyezési egységek", a tárolók pedig a Docker-rendszerképek példányai. A gazdagép számos tárolót kezel. Logikus megközelítésnek tűnik. De hogyan kezeli a terheléselosztást, az útválasztást és a vezénylést ezek a komponált alkalmazások?

Az egyszerű Docker-motor egyetlen Docker-gazdagépen megfelel az egyetlen rendszerképpéldányok egyetlen gazdagépen történő kezelésének igényeinek, de az összetettebb elosztott alkalmazásokhoz több gazdagépen üzembe helyezett tárolók kezeléséhez nem lesz elegendő. A legtöbb esetben olyan felügyeleti platformra van szüksége, amely automatikusan elindítja a tárolókat, lemezképenként több példányt tartalmazó tárolókat méretez, felfüggeszti vagy szükség esetén leállítja őket, és ideális esetben azt is szabályozza, hogy miként férnek hozzá az erőforrásokhoz, például a hálózathoz és az adattárhoz.

Ahhoz, hogy túllépjen az egyes tárolók vagy az egyszerű összeállított alkalmazások felügyeletén, és a mikroszolgáltatásokkal rendelkező nagyobb vállalati alkalmazások felé haladjon, vezénylési és fürtözési platformokra kell váltania.

Architektúra és fejlesztési szempontból, ha mikroszolgáltatás-alapú alkalmazásokból álló nagyvállalatot hoz létre, fontos megérteni a következő platformokat és termékeket, amelyek támogatják a speciális forgatókönyveket:

Fürtök és vezénylők. Ha több Docker-gazdagépre is fel kell méreteznie az alkalmazásokat, mivel egy nagy mikroszolgáltatás-alapú alkalmazás esetén kritikus fontosságú, hogy az alapul szolgáló platform összetettségének absztrakciójával egyetlen fürtként lehessen kezelni ezeket a gazdagépeket. Ezt biztosítják a tárolófürtök és a vezénylők. A Kubernetes egy vezénylő példája, és az Azure-ban az Azure Kubernetes Service-ben érhető el.

Ütemezők.Az ütemezés azt jelenti, hogy a rendszergazda képes tárolókat indítani egy fürtben, hogy felhasználói felületet is biztosítson. A fürtütemezőknek számos feladata van: a fürt erőforrásainak hatékony használata, a felhasználó által biztosított korlátozások beállítása, a tárolók csomópontok vagy gazdagépek közötti hatékony terheléselosztása, valamint a hibák elleni hatékony működés, miközben magas rendelkezésre állást biztosítanak.

A fürt és az ütemező fogalma szorosan összefügg, ezért a különböző gyártók által biztosított termékek gyakran mindkét képességkészletet biztosítják. Az alábbi lista a fürtök és ütemezők számára elérhető legfontosabb platform- és szoftverlehetőségeket mutatja be. Ezeket a vezénylőket általában nyilvános felhőkben, például az Azure-ban kínálják.

Tárolófürtök, vezénylés és ütemezés szoftverplatformjai

Plattform Leírás
Kubernetes
A Kubernetes emblémájának képe.
A Kubernetes egy nyílt forráskódú termék, amely a fürtinfrastruktúra és a tárolóütemezéstől a vezénylési képességekig terjedő funkciókat nyújt. Lehetővé teszi az alkalmazástárolók üzembe helyezésének, méretezésének és műveleteinek automatizálását gazdagépfürtökön.

A Kubernetes egy tárolóközpontú infrastruktúrát biztosít, amely az alkalmazástárolókat logikai egységekbe csoportosítja az egyszerű felügyelet és a felderítés érdekében.

A Kubernetes linuxos, Windowsban kevésbé érett.
Azure Kubernetes Service (AKS)
Az Azure Kubernetes Service emblémájának képe.
Az AKS egy felügyelt Kubernetes-tárolóvezénylési szolgáltatás az Azure-ban, amely leegyszerűsíti a Kubernetes-fürt felügyeletét, üzembe helyezését és műveleteit.
Azure Konténer Alkalmazások
Az Azure Container Apps Service emblémájának képe.
Az Azure Container Apps egy felügyelt kiszolgáló nélküli tárolószolgáltatás, amely modern alkalmazások nagy léptékű kiépítésére és üzembe helyezésére szolgál.

Tárolóalapú vezénylők használata a Microsoft Azure-ban

Számos felhőszolgáltató kínál Docker-tárolók támogatását, valamint Docker-fürtöket és vezénylési támogatást, beleértve a Microsoft Azure-t, az Amazon EC2 Container Service-t és a Google Container Engine-t. A Microsoft Azure docker-fürt- és vezénylői támogatást nyújt az Azure Kubernetes Service -n (AKS) keresztül.

Az Azure Kubernetes Service használata

A Kubernetes-fürtök több Docker-gazdagépet készleteznek, és egyetlen virtuális Docker-gazdagépként teszik elérhetővé őket, így több tárolót helyezhet üzembe a fürtön, és tetszőleges számú tárolópéldánysal kibővítheti őket. A fürt kezeli az összes összetett felügyeleti csatornát, például a méretezhetőséget, az állapotot és így tovább.

Az AKS lehetővé teszi a tárolóalapú alkalmazások futtatásához előre konfigurált virtuális gépek fürtjének létrehozását, konfigurálását és felügyeletét az Azure-ban. A népszerű nyílt forráskódú ütemezési és vezénylési eszközök optimalizált konfigurációját használva az AKS lehetővé teszi, hogy meglévő készségeit felhasználja, vagy a tárolóalapú alkalmazások Microsoft Azure-on való üzembe helyezéséhez és kezeléséhez a közösségi szakértelem nagy és növekvő körére támaszkodjon.

Az Azure Kubernetes Service optimalizálja a népszerű Docker-fürtözés nyílt forráskódú eszközeinek és technológiáinak konfigurálását kifejezetten az Azure-hoz. Így egy olyan nyílt megoldáshoz jut, amely hordozhatóságot nyújt mind tárolóinak, mind alkalmazásbeállításainak. Kiválaszthatja a méretet, a gazdagépek számát és a vezénylőeszközöket, és az AKS minden mást kezel.

Kubernetes-fürtstruktúrát bemutató ábra.

4–24. ábra. A Kubernetes-fürt egyszerűsített struktúrája és topológiája

A 4–24. ábrán látható egy Kubernetes-fürt struktúrája, ahol a fő csomópont (VM) szabályozza a fürt koordinációjának nagy részét, és tárolókat helyezhet üzembe a többi csomóponton, amelyek alkalmazás szempontjából egyetlen készletként vannak kezelve, és lehetővé teszik több ezer vagy akár több tízezer tárolóra való skálázást.

Fejlesztési környezet a Kuberneteshez

A fejlesztői környezetben a Docker 2018 júliusában jelentette be, hogy a Kubernetes a Docker Desktop telepítésével egyetlen fejlesztői gépen (Windows 10 vagy macOS) is futtatható. Később üzembe helyezheti a felhőben (AKS) a további integrációs tesztekhez, amint az a 4–25. ábrán látható.

Az AKS-ben üzembe helyezett fejlesztői gépen lévő Kubernetes-diagram

4–25. ábra. Kubernetes futtatása a fejlesztői gépen és a felhőben

Az Azure Kubernetes Service (AKS) használatának első lépései

Az AKS használatának megkezdéséhez üzembe kell helyeznie egy AKS-fürtöt az Azure Portalon vagy a parancssori felület használatával. A Kubernetes-fürt Azure-ban való üzembe helyezéséről további információt az Azure Kubernetes Service-fürt üzembe helyezéséről szóló cikkben talál.

Az AKS részeként alapértelmezés szerint telepített szoftverekért semmilyen díj nem jár. Minden alapértelmezett beállítás nyílt forráskódú szoftverrel van implementálva. Az AKS több Azure-beli virtuális géphez is elérhető. Csak a választott számítási példányokért és a felhasznált egyéb mögöttes infrastruktúra-erőforrásokért, például a tárolásért és a hálózatkezelésért kell fizetnie. Magának az AKS-nek nincsenek növekményes díjai.

A Kubernetes alapértelmezett éles üzembe helyezési lehetősége a Helm-diagramok használata, amelyeket a következő szakaszban vezetünk be.

Üzembe helyezés Helm-diagramokkal a Kubernetes-fürtökben

Amikor egy alkalmazást kubernetes-fürtön helyez üzembe, használhatja az eredeti kubectl.exe CLI-eszközt a natív formátum (.yaml fájlok) alapján, ahogyan azt az előző szakaszban már említettük. Az összetettebb Kubernetes-alkalmazások esetében azonban, például összetett mikroszolgáltatás-alapú alkalmazások telepítésekor ajánlott a Helm használata.

A Helm-diagramok segítségével még a legösszetettebb Kubernetes-alkalmazásokat is meghatározhatja, verziószámozhatja, telepítheti, megoszthatja, frissítheti vagy visszaállíthatja.

Tovább haladva, a Helm használata azért is ajánlott, mert az Azure más Kubernetes-környezetei, például az Azure Dev Spaces is Helm-diagramokon alapulnak.

A Helmt a Cloud Native Computing Foundation (CNCF) tartja fenn – a Microsoft, a Google, a Bitnami és a Helm közreműködői közösségével együttműködve.

A Helm-diagramokkal és a Kubernetes-diagramokkal kapcsolatos további megvalósítási információkért tekintse meg az eShopOnContainers AKS-bejegyzésben való üzembe helyezéséhez használt Helm-diagramokat.

További erőforrások