Skip to main content

A szolgáltatások végrehajtási módjainak folytatása

A runtime sikeres indítás után rögzíti az egyes szolgáltatások development vagy production módját. A restartDevServers.sh, a devstack.sh restart SERVICE és a devstack.sh start SERVICE a mentett módokat folytatja. Ezért egy development worker mellett futhat production BFF is.

A quickStarter.sh az előkészített, leállított konténereket indítja. Nem építi újra őket, és nem változtatja meg a végrehajtási módot.

ParancsHatás
bash restartDevServers.sh --prodProduction artifactokat épít, és production végrehajtást választ az összes kiválasztott szolgáltatásra
bash devstack.sh start SERVICE --prodEgy már leállított, előkészített szolgáltatást production módban épít és indít. Futó konténert elutasít.
bash devstack.sh restart SERVICEA szolgáltatás mentett módját folytatja. Ne add hozzá a --prod opciót.
bash startDevServers.shDevelopment végrehajtást választ új teljes indításhoz
bash startDevServers.sh --prodProduction végrehajtást választ új teljes indításhoz

A teljes újraindítás --prod nélkül megőrzi a mentett szolgáltatásmódokat. Nem építi újra a production artifactokat, és nem futtat adatbázis- vagy sémainicializálást. Kódkiadáshoz használd a teljes és célzott kiadási eljárásokat. Ez nem garantált átkapcsolás production módról development módra. A mentett állapotban nem szereplő szolgáltatás normál folytatáskor alapértelmezés szerint development módot kap.

Ne szerkeszd kézzel a runtime-állapotot. Egy sikertelen indítás nem hoz létre sikeres, előkészített állapotot. A módváltás nem törli az adatokat vagy a volume-okat.

A példány határairól és az indítási előfeltételekről olvasd el a Docker development útmutatót.

Infrastruktúra-elhelyezés módosítása​

Használd ezt az eljárást olyan meglévő setupnál, amelynek valós partialRemote elhelyezésből fulllocal állapotba kell visszatérnie. A végrehajtási mód (development vagy production) és az infrastruktúra-elhelyezés külön beállítás. A távoli irányhoz használd a kiválasztott távoli infrastruktúra útmutatót.

Őrizd meg a meglévő állapotot

Tartsd meg a helyi Kafka- és Qdrant-volume-okat. Váltás előtt ellenőrizd a frissességüket a távoli írásokhoz képest. Minden szükséges fordított átvitelt leállított alkalmazás-írók mellett fejezz be. A runtime ellenőrzi a volume-ok meglétét, de nem igazolja az adatok frissességét. Az elhelyezés módosításához ne használj resetet, --reset kapcsolót, cleanupot vagy volume-törlést.

A parancsokat a célzott példányhoz tartozó motherrepo gyökeréből futtasd. Hideg bootstrap alatt csak egy teljes stack maradjon aktív. Indítás előtt ellenőrizd a host memóriáját és az aktív példányokat. Használd a Docker-előfeltételeket.

  1. Az eredeti beállításokkal futtasd a bash stopDevServer.sh parancsot. Ez leállítja a példány konténereit, és megtartja a volume-okat.
  2. A gyökér .env fájlban állítsd be az ECS_DEPLOYMENT_MODE=fulllocal és az ECS_REMOTE_SIMULATION=false értéket. Őrizd meg a példány azonosságát és a meglévő helyi kapcsolati beállításokat.
  3. Futtasd a bash devstack.sh validate parancsot. Folytatás előtt javíts ki minden jelzett konfigurációs vagy készenléti hibát.
  4. Futtasd a bash restartDevServers.sh parancsot. Ez alkalmazza az új elhelyezést, és megőrzi a mentett szolgáltatás-végrehajtási módokat.
  5. Ellenőrizd az endpointokat, majd végezd el az alábbi lifecycle-elfogadási ellenőrzéseket.

A gyökérkonfiguráció irányítja az elhelyezést. A shell-felülbírálások nem helyettesítik ezeket a kiválasztókat. Ha az elhelyezés-kiválasztó hiányzik, a fulllocal az alapértelmezett. A szimuláció alapértelmezett értéke false. A fulllocal és a true szimuláció együtt érvénytelen. Az inaktív távoli mezők megmaradhatnak, de nem választanak távoli elhelyezést.

Ha a megtartott helyi Kafka/Qdrant volume-ok hiányoznak, a valós távoli elhelyezésből való visszatérés leáll az indítás előtt. Folytatás előtt rendezd a migrációs készenlétet. Ne hozz létre pótló adatot az ellenőrzés megkerüléséhez. Ha nincs előkészített runtime, a setup-előfeltételek teljesítése után használd a bash startDevServers.sh parancsot.

Újraindítás vagy quick-start​

A normál újraindítás az aktuális konfigurációval újra létrehozza a runtime-konténereket. Megőrzi a volume-okat és a mentett végrehajtási módokat. Elhelyezés- vagy endpoint-módosítás után ezt használd. A célzott szolgáltatás-újraindítás nem alkalmazhat globális elhelyezésváltást.

A quick-start megköveteli, hogy az előkészített konfiguráció és a konténerazonosítók egyezzenek a mentett állapottal. Inicializálás, build vagy újralétrehozás nélkül indítja a meglévő, leállított konténereket. Konfigurációmódosítás után a quick-start elutasítja az elavult állapotot, és a normál újraindításhoz irányít. Ne szerkeszd a mentett runtime-állapotot az ellenőrzés megkerüléséhez.

Az elhelyezés és a lifecycle-viselkedés ellenőrzése​

Az átállás után ellenőrizd a bash devstack.sh status kimenetét. Teljesen helyi elhelyezésnél a helyi Kafka brokereknek és a Qdrantnak meg kell jelenniük. Ellenőrizd a kiválasztott endpoint-mezőket egy futó consumeren belül is. A konténer egészsége vagy a módcímke önmagában nem igazolja az endpoint-kiválasztást.

Futtasd például a bash devstack.sh shell queue parancsot, majd a konténeren belül ezt a parancsot:

printenv KAFKA_NETWORK KAFKA_LAN_BOOTSTRAP_SERVERS KAFKA_TAILSCALE_BOOTSTRAP_SERVERS QDRANT_URL KNOWLEDGE_EXTRACTOR_URL

Teljesen helyi elhelyezésnél a Kafka bootstrap-listák a broker1:9092,broker2:9092,broker3:9092 értéket használják. A szabványos helyi endpointok a http://qdrant:6333 és a http://knowledge-extractor:9998. Ellenőrizd a többi érintett consumert is a tervezett elhelyezés alapján. Csak a kiválasztott mezőket vizsgáld, teljes környezeti vagy konfigurációs kiírás nélkül. A következő parancs előtt lépj ki a konténer shellből.

Egyeztetett karbantartási ablakban mind a négy lifecycle-scriptnek sikeresen kell lefutnia:

Parancs a motherrepo gyökerébőlElvárt eredmény
bash startDevServers.shA teljes indítás development végrehajtással lefut. Ha production végrehajtás a cél, használd a --prod kapcsolót.
bash restartDevServers.shAz újraindítás lefut, és megőrzi az előkészített végrehajtási módokat és az adatokat.
bash stopDevServer.shA példány konténerei leállnak, a helyi infrastruktúrát is beleértve. A volume-ok megmaradnak.
bash quickStarter.shA leállított, előkészített konténerek változatlan konfigurációval és végrehajtási módokkal folytatják a futást.

Futtasd ezeket az ellenőrzéseket a táblázat sorrendjében. Hiba esetén állj meg, és újabb próba előtt vizsgáld meg a diagnosztikát. A quick-start után ismételd meg az endpoint-ellenőrzéseket, és olvass be meglévő alkalmazásadatot. Ellenőrizz egy engedélyezett alkalmazásműveletet és annak mentett eredményét. Az egészséges konténerek önmagukban nem teljesítik az elfogadást. Az elhelyezés-ellenőrzések nem állapítanak meg késleltetési okot vagy teljesítmény-benchmarkot.

Őrizd meg az izolált futtatókörnyezet tulajdonosjelölőjét​

Forrásfrissítés előtt ellenőrizd az izolált példány .docker-state/owner azonosságát a fájljogosultságoktól külön. Ehhez a karbantartáshoz az üzemeltető tulajdonában lévő fizikai fájlra van szükség, 0600 jogosultságokkal.

Csak egy ellenőrzött, leállított, tulajdonolt izolált példány jogosultságait javítsd. Őrizd meg a jelölő tartalmát és a példány azonosságát. Őrizd meg az összes környezeti fájlt, kulcsot és adatot. Utasítsd el a javítást, ha a tulajdonjog vagy az azonosság bizonytalan. Ne módosítsd másik klón jelölőjét, és ne másold annak futtatókörnyezeti állapotát.

Ezek üzemeltetői védelmi intézkedések. A futtatókörnyezet ellenőrzi a jelölő azonosságát, de nem kényszeríti ki automatikusan a jelölő 0600 jogosultságait vagy az üzemeltetői tulajdonjogot. Az izolált pillanatkép-ellenőrzések elutasítják a szimbolikus és a hardlinkeket. A jogosultság-javításnak változatlanul kell hagynia az azonosságot.