Szerkesztés

Share via


CNCF-projektek létrehozása az Azure Kubernetes Service használatával

Azure Kubernetes Service (AKS)

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

Architektúradiagram, amely egy CNCF-projekt készítéséhez használható referenciaarchitektúrát mutatja be.

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

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:

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).

Következő lépések