Ez a cikk bemutatja, hogyan koncepcializálhat, fejleszthet, hozhat létre és helyezhet üzembe olyan alkalmazásokat, amelyek az Azure Kubernetes Service (AKS) üzembe helyezése után a Cloud Native Computing Foundation (CNCF) projektjeit használják. Az architektúra a GITHubon futó CNCF-projektek alkalmazást ismerteti. Az adattár telepítési utasításai az architektúra üzembe helyezésének lépéseit ismertetik.
Architektúra
Töltse le az architektúra Visio-fájlját.
A számítási feladat egy egyszerű webalkalmazás, amellyel az alkalmazottak költségjelentéseket küldhetnek és tekinthetnek meg. Amikor egy alkalmazott költségjelentést küld, az alkalmazott felettese e-mailt kap.
Munkafolyamat
Alkalmazásfolyamat
1. Az alkalmazott az NGINX Bejövő forgalomon keresztül fér hozzá egy webalkalmazáshoz a költségek elküldéséhez.
2. A webalkalmazás meghív egy API-alkalmazást az alkalmazott menedzserének lekéréséhez.
3. A webalkalmazás leküld egy üzenetet, amely a költségjelentés létrehozásához jön létre egy Knative-közvetítőnek.
4. A költségjelentés mentése a MySQL-ben történik.
5. A Knative aktiválja az Email Dispatcher függvényt a költségüzenettel, mint hasznos adat.
6. Az e-mail-kézbesítő létrehoz egy SendGrid-üzenetet.
7. A SendGrid e-mailt küld a lekért vezetőnek felülvizsgálatra.
DevOps-folyamat
a. A fejlesztők a Visual Studio Code-ban írják vagy frissítik a kódot.
b. A fejlesztők leküldik a kódot a GitHubra a Visual Studio Code helyi munkaterületéről.
c. A Github Webhook aktiválja a GitHub-kódot klónozó Tekton-folyamatokat.
d. A folyamatok létrehoznak és leküldenek egy tárolórendszerképet egy harbori regisztrációs adatbázisba.
e. A Tekton üzembe helyezi a webalkalmazást, az API-alkalmazást és az e-mail-kézbesítő alkalmazásokat.
f. A Prometheus alkalmazásmetrikákat rögzít.
: A mérnökök egy Grafana-irányítópulton figyelik a metrikákat.
h. A DevOps mérnökei figyelik a Grafana irányítópultot.
Infrastruktúra
i. AKS-fürt az AKS-alapkonfigurációban bemutatott infrastruktúra alapján.
ii. Fürttároláshoz használt Rook Ceph.
iii. Linkerd szolgáltatásháló.
IV. Jaeger a Kubernetes-fürt általános alkalmazáskövetéséhez.
Fürtműveletek
Hasznos lehet a fürtök és a fürtök rendszerindításának kezelése a GitOps felügyeletével. A Flux egy népszerű GitOps-operátor. Gyakran párosítják a GitHub Actions-zel, hogy engedélyezve legyen az ellenőrzés a frissített jegyzékeken és Helm-diagramokon.
Összetevők
Azure
- Azure Kubernetes Service (AKS). A felügyelt fürtinfrastruktúrát biztosítja.
Nyílt forráskódú szoftverek (OSS)
- Kubernetes. CNCF. Automatizálja a tárolóalapú alkalmazások üzembe helyezését, méretezését és kezelését.
- Flux. CNCF. GitOps-szolgáltató az infrastruktúra-teljesítéshez.
- Bástyát. CNCF. Tárolókezelést biztosít a fürtök számára.
- Kikötő. CNCF. Tárolóregisztrációs adatbázis a rendszerképekhez.
- Linkerd. CNCF. Az OpenFaaS, az NGINX, a Prometheus és a Jaeger szolgáltatásháló.
- Prometheus. CNCF. Alkalmazásmetrikákat rögzít.
- Jaeger. CNCF. Általános alkalmazáskövetést biztosít a Kubernetes-fürtön.
- Knative. CNCF. Kiszolgáló nélküli és eseményvezérelt alkalmazás létrehozásához használatos. Üzembe helyezi az E-mail-küldő függvényt.
- MySQL. A költségjelentéseket tároló adatbázis.
- NGINX. A Kubernetes bejövőforgalom-vezérlője, amellyel az alkalmazottak hozzáférnek a webalkalmazáshoz költségjelentések küldéséhez.
- Tekton. A folyamatos integrációhoz/folyamatos üzembe helyezéshez (CI/CD) használt Continuous Delivery Foundation-projekt. Üzembe helyezi a webalkalmazást, az API-alkalmazást és az e-mail-kézbesítő alkalmazásokat.
- Grafana. Alkalmazásmetrikák irányítópultja.
- SendGrid. Külső e-mail-szolgáltatás, amely e-mailt küld a felettesnek a költségjelentés áttekintéséhez.
- GitHub. Kódtár. A Tekton-folyamatok GitHub-kódot használnak.
- .NET Core. A webes előtérhez és a webes API-hoz használatos.
- Flux. GitOps-felügyeletet biztosít.
Alternatívák
Ez a projekt CNCF-végzettségű és inkubált projekteket használ. A használt szolgáltatásoknak több alternatíva is lehet. Alternatív megoldásokért tekintse meg a CNCF webhelyét. Az alábbiakban néhány erőforrást ismertetünk:
- A szolgáltatásháló beállításainak összehasonlítása
- Szolgáltatásként (kiszolgáló nélküli) alternatívákként való működés
- Vitess: szegmenses MySQL a Kubernetesen
- Mikroszolgáltatások monitorozása a Zipkin és az OpenTracing használatával
- A GitOps fejlesztői központú felülettel
Alternatív megoldásként különböző Azure-szolgáltatásokat is igénybe vehet. Ilyen például a webalkalmazás-útválasztás, az Azure Container Registry, az Azure Container Storage, az Azure Monitor, az Azure Monitor által felügyelt szolgáltatás a Prometheushoz, az Azure Managed Grafana.
A Microsoft az OSS-projekteket felügyelt bővítmények/származtatott projektekként is támogatja az AKS-ben, beleértve az Nginxet, az Istio-t, a Prometheust, a Grafana-t és az OpenEBS-t.
Forgatókönyv részletei
Ezt az architektúrát bármely Kubernetes-fürtön üzembe helyezheti, nem csak az AKS-en. Példa az AKS-platform rugalmasságára. Az AKS egyszerűvé teszi egy felügyelt Kubernetes-fürt üzembe helyezését az Azure-ban.
A cikk áttekintése után alapos ismereteket szerezhet arról, hogyan helyezhet üzembe egy tipikus, többnyire CNCF-projektekből álló alkalmazást.
Lehetséges használati esetek
Az alábbi használati esetek hasonló tervezési mintákkal rendelkeznek:
- CI/CD-folyamat létrehozása tárolóalapú számítási feladatokhoz
- A GitOps használata az AKS-hez
Megfontolások
Ezek a szempontok implementálják az Azure Well-Architected Framework alappilléreit, amely a számítási feladatok minőségének javítására használható vezérelvek halmaza. További információ: Microsoft Azure Well-Architected Framework.
- A Kubernetes-fürthöz legalább egy háromcsomópontos felhasználóicsomópont-készletre van szükség, amely virtuálisgép-termékváltozattal DS2_v2 vagy nagyobb.
- Az Azure-beli felügyelt lemezeket használó kötetek nem csatolhatók zónákhoz. Ezeknek ugyanabban a zónában kell lenniük.
- A bástyák telepítése 20–25 percet vehet igénybe. Mielőtt továbblép a következő lépésre, győződjön meg arról, hogy a Ceph-fürt teljesen ki van építve.
- A Jaeger beállítása körülbelül 5 percet vesz igénybe.
- Körülbelül 12 percig tart, amíg a Linkerd megjelenik az irányítópulton.
Költségoptimalizálás
A költségoptimalizálás a szükségtelen kiadások csökkentésének és a működési hatékonyság javításának módjairól szól. További információ: A költségoptimalizálási pillér áttekintése.
Az Azure díjkalkulátorával megbecsülheti a költségeket. Az alábbiakban néhány díjszabási szempontot követünk a projekt Azure-beli futtatásához. Elhanyagolható sávszélesség-költség vonatkozik.
Virtual Machine Scale Sets
Az Azure Virtual Machine Scale Setsben az AKS-fürthöz használt virtuális gépek díjkötelesek. További információkért lásd a Virtuálisgép-méretezési csoportok díjszabását.
Tárolás
A tárolási költségek minden olyan adatlemezre vonatkoznak, amelyet a Rook-telepítés igényel. Ebben a háromcsomópontos AKS-fürtben a Rook-konfiguráció csomópontonként két adatlemezt használ: egy 1 GB-os lemezt és egy 200 GB-os lemezt. További információ: Tárolási költségek díjszabása.
Terheléselosztóval
Az ehhez az AKS-fürthöz társított terheléselosztó díjat számít fel. További információkért lásd a Load Balancer díjszabását.
Virtuális hálózat
Az AKS-fürt által használt virtuális hálózat díjköteles. További információ: Virtuális hálózat díjszabása.
A forgatókönyv üzembe helyezése
Ezt a forgatókönyvet az Azure/cloud-native-app GitHub-adattárból helyezheti üzembe. Kövesse a megadott sorrendben megadott telepítési utasításokat a CNCF-projektek alkalmazás környezetében való üzembe helyezéséhez.
Ez az adattár egy közösségi projekt. Elfogadja és jóváhagyja a közösségtől érkező fejlesztésekre és módosításokra vonatkozó lekéréses kérelmeket (PRS-eket).