Üzembehelyezési stratégiák a Kuberneteshez az Azure Pipelinesban

Azure DevOps Services

A Kubernetes-jegyzékfeladat jelenleg a kanári-telepítési stratégiát támogatja. Ez a dokumentum ismerteti a feladat kubernetesben való üzembe helyezéséhez szükséges útmutatókat és ajánlott eljárásokat.

A kanári-telepítési stratégia áttekintése

A kanári-telepítési stratégia segítségével részlegesen üzembe helyezheti az új módosításokat, hogy az új módosítások a teljes bevezetés előtt a jelenlegi üzemelő példányokkal együtt létezhessenek. Ebben a fázisban általában a két verzió végső ellenőrzése és összehasonlítása történik. Ebben a fázisban alkalmazásállapot-ellenőrzések és teljesítményfigyelés történik mindkét verzióból származó metrikák használatával. Ha a kanári legalább egyenrangú vagy jobb, mint a jelenleg üzembe helyezett verzió, megkezdődik az új módosítások teljes bevezetése. Ha a kanári a jelenleg üzembe helyezett verzióknál rosszabb teljesítményt mutat, a rendszer elutasítja az új módosításokat, és elkerüli a teljes bevezetést, amely regresszióhoz vezethet.

Kanári-telepítések a Kuberneteshez

A kubernetes-beli podok és szolgáltatások közötti címkeválasztó kapcsolat lehetővé teszi az üzemelő példányok beállítását oly módon, hogy egyetlen szolgáltatás a kéréseket a stabil és a kanári változathoz is irányozza. A Kubernetes jegyzékfeladata ezt használja a kanárik üzembe helyezésének megkönnyítésére.

  • Ha a feladat meg van adva a action: deploystrategy: canarybemeneti jegyzékfájlokban definiált minden számítási feladathoz (Üzembe helyezés, ReplicaSet, Pod, ...), létrejön az üzembe helyezés egy -baseline és -canary egy változata.
    • Tegyük fel, hogy létezik egy üzembe helyezés a bemeneti jegyzékfájlban, sampleapp és a folyamat 22-es futtatási számának befejezése után a rendszer üzembe helyezi a fürtben a központi sampleapp telepítés stabil változatát.
    • Az ezt követő futtatás során (ebben az esetben a 23-as számú futtatáskor) a Kubernetes jegyzékfeladata action: deploystrategy: canary mintaalkalmazás-alapkonfigurációt és sampleapp-canary üzemelő példányokat hozna létre, amelyek replikáinak számát a feladat bemenetének szorzata percentage határozza meg a bemeneti jegyzékfájlok szerinti végső stabil változat sampleapp replikáinak kívánt számával
    • A replikák számának kivételével az alapverzió konfigurációja megegyezik a stabil változat konfigurációval, míg a kanári-verzió az aktuális futtatás által bevezetett új módosításokkal (ebben az esetben a 23-as futtatási számmal) rendelkezik.
  • Ha a fenti lépés után manuális beavatkozás van beállítva a folyamatban, lehetővé tenné a folyamat szüneteltetését, hogy a folyamat rendszergazdája kiértékelhesse az alapkonfiguráció és a kanári-verziók fő metrikáit, és eldönthesse, hogy a kanári módosításai biztonságosak és megfelelőek-e a teljes bevezetéshez.
  • action: promotestrategy: canary és action: rejectstrategy: canary a Kubernetes-jegyzékfeladatok bemenetei felhasználhatók a kanári-módosítások előléptetésére vagy elutasítására. Vegye figyelembe, hogy a lépés végén mindkét esetben csak a bemeneti jegyzékfájlokban deklarált számítási feladatok stabil változata lesz üzembe helyezve a fürtön, míg a rövid élettartamú alapkonfiguráció és a kanári-verziók törlődnek.

Megjegyzés

A fent említett százalékos bemenet nem a forgalom százalékos felosztását eredményezi, hanem az alapkonfigurációk és a kanári-változatok replikáinak számának kiszámításához használt százalékos értéket jelenti. A service mesh szolgáltatásfelderítési és terheléselosztási képességei segítenek a valódi kérésalapú forgalom felosztásában. A Service Mesh-felületet használó kanári-telepítések támogatása jelenleg is folyamatban van, és hamarosan hozzá lesz adva a Kubernetes jegyzékfeladatához.

A kanári összehasonlítása az alapkonfigurációval és nem a stabil variánsokkal

Bár egy kanári-telepítés összehasonlítható a jelenlegi éles környezetével, jobb, ha összehasonlítja a kanárit egy egyenértékű alapkonfigurációval. Az alapkonfiguráció ugyanazt a verziót és konfigurációt használja, mint az aktuálisan telepített verzió. A kanári- és alapkonfigurációk jobb összehasonlításra alkalmasak, mivel a következők szempontjából azonosak:

  • Az üzembe helyezéssel egy időben
  • Az üzembe helyezés azonos mérete
  • Azonos típusú és mennyiségű forgalom

Ezek a tényezők minimalizálják más változók hatását, például a gyorsítótár bemelegítési idejét és a halomméretet a kanári-változatban, ami hátrányosan befolyásolhatja az elemzést.

Teljes példa

Egy teljes körű példa a buildelési és kiadási folyamatok beállítására a Kubernetes-fürtökben az alkalmazáskód minden egyes módosításához. Ez a példa a Prometheus használatát is bemutatja az alapkonfiguráció és a kanári-metrikák összehasonlítására, ha a folyamat manuális beavatkozási feladattal van szüneteltetve.