Share via


jobs.deployment.strategy.canary definíció

A Canary üzembehelyezési stratégiája a kiszolgálók egy kis részhalmazára hajtja végre a módosításokat.

canary:
  increments: [ string ] # Maximum batch size for deployment.
  preDeploy: # Pre deploy hook for canary deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where pre deploy steps will run.
  deploy: # Deploy hook for canary deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where deploy steps will run.
  routeTraffic: # Route traffic hook for canary deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where route traffic steps will run.
  postRouteTraffic: # Post route traffic hook for canary deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where post route traffic steps will run.
  on: # On success or failure hook for canary deployment strategy.
    failure: # Runs on failure of any step.
      steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
      pool: string | pool # Pool where post on failure steps will run.
    success: # Runs on success of all of the steps.
      steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
      pool: string | pool # Pool where on success steps will run.

A definícióra hivatkozó definíciók: jobs.deployment.strategy

Tulajdonságok

increments sztringlista.
Az üzembe helyezés maximális kötegmérete.

preDeploypreDeployHook.
Üzembe helyezési horog a kanári üzembehelyezési stratégiához.

deploydeployHook.
A hook üzembe helyezése a kanári üzembehelyezési stratégiájához.

routeTrafficrouteTrafficHook.
Forgalomhook irányítása a kanári üzembehelyezési stratégiájához.

postRouteTrafficpostRouteTrafficHook.
Post route traffic hook for canary deployment strategy..

ononSuccessOrFailureHook.
A kanári-telepítési stratégia sikeres vagy sikertelen üzembehelyezési horogján.

Megjegyzések

A Canary üzembehelyezési stratégia egy speciális üzembehelyezési stratégia, amely segít csökkenteni az alkalmazások új verzióinak bevezetésében jelentkező kockázatokat. Ezzel a stratégiával először a kiszolgálók egy kis részhalmazára alkalmazhatja a módosításokat. Az új verzióba vetett nagyobb bizalommal az infrastruktúra több kiszolgálójára is kiadhatja, és nagyobb forgalmat irányíthat hozzá.

A Canary üzembehelyezési stratégiája támogatja az preDeploy életciklus-horgot (egyszer hajtja végre), és iterál a deploy, routeTrafficés postRouteTraffic életciklus horgokkal. Ezután kilép a vagy failure a success horoggal.

Ebben a stratégiában a következő változók érhetők el:

strategy.name: A stratégia neve. Például: kanári.
strategy.action: A Kubernetes-fürtön végrehajtandó művelet. Üzembe helyezés, előléptetés vagy elutasítás.
strategy.increment: Az aktuális interakcióban használt növekményérték. Ez a változó csak deploya , routeTrafficés postRouteTraffic életciklus-horgokban érhető el.

Az életciklus-horgok leírása

preDeploy: Az erőforrások inicializálására szolgáló lépések futtatására szolgál az alkalmazás üzembe helyezése előtt.

deploy: Az alkalmazást üzembe helyező lépések futtatására szolgál. Az összetevő-feladat letöltése csak az deploy üzembehelyezési feladatok horogjában lesz automatikusan beszúrva. Az összetevők letöltésének leállításához használja - download: none vagy válassza ki a letölteni kívánt összetevőket a Folyamatösszetevő letöltése feladat megadásával.

routeTraffic: A frissített verzió forgalmát kiszolgáló lépések futtatására szolgál.

postRouteTraffic: A forgalom irányítása után futtatja a lépéseket. Ezek a feladatok általában meghatározott időközönként figyelik a frissített verzió állapotát.

on: failure vagy on: success: A visszaállítási műveletek vagy a törlés lépéseinek futtatására szolgál.

Példák

Az alábbi példában az AKS kanári-stratégiája először 10 százalék podokkal, majd 20 százalékkal helyezi üzembe a módosításokat, miközben figyeli az állapotot a során postRouteTraffic. Ha minden jól megy, 100%-ra fog előléptetni.

jobs: 
- deployment: 
  environment: smarthotel-dev.bookings
  pool: 
    name: smarthotel-devPool
  strategy:                  
    canary:      
      increments: [10,20]  
      preDeploy:                                     
        steps:           
        - script: initialize, cleanup....   
      deploy:             
        steps: 
        - script: echo deploy updates... 
        - task: KubernetesManifest@0 
          inputs: 
            action: $(strategy.action)       
            namespace: 'default' 
            strategy: $(strategy.name) 
            percentage: $(strategy.increment) 
            manifests: 'manifest.yml' 
      postRouteTraffic: 
        pool: server 
        steps:           
        - script: echo monitor application health...   
      on: 
        failure: 
          steps: 
          - script: echo clean-up, rollback...   
        success: 
          steps: 
          - script: echo checks passed, notify... 

Lásd még