Ü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: deploy
strategy: canary
bemeneti 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özpontisampleapp
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: deploy
strategy: 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 szorzatapercentage
határozza meg a bemeneti jegyzékfájlok szerinti végső stabil változatsampleapp
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.
- Tegyük fel, hogy létezik egy üzembe helyezés a bemeneti jegyzékfájlban,
- 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: promote
strategy: canary
ésaction: reject
strategy: 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.