KubernetesManifest@0 – Üzembe helyezés a Kubernetes v0-ben feladat
Kubernetes-jegyzékfeladat használata egy buildelési vagy kiadási folyamatban a jegyzékfájlok Kubernetes-fürtökön való létrehozásához és üzembe helyezéséhez Helm-diagramok használatával.
Syntax
# Deploy to Kubernetes v0
# Use Kubernetes manifest files to deploy to clusters or even bake the manifest files to be used for deployments using Helm charts.
- task: KubernetesManifest@0
inputs:
#action: 'deploy' # 'bake' | 'createSecret' | 'delete' | 'deploy' | 'patch' | 'promote' | 'scale' | 'reject'. Action. Default: deploy.
#kubernetesServiceConnection: # string. Required when action != bake. Kubernetes service connection.
#namespace: # string. Namespace.
#strategy: 'none' # 'canary' | 'none'. Optional. Use when action = deploy || action = promote || action = reject. Strategy. Default: none.
#trafficSplitMethod: 'pod' # 'pod' | 'smi'. Optional. Use when strategy = canary. Traffic split method. Default: pod.
#percentage: '0' # string. Required when strategy = Canary && action = deploy. Percentage. Default: 0.
#baselineAndCanaryReplicas: '1' # string. Required when strategy = Canary && action = deploy && trafficSplitMethod = SMI. Baseline and canary replicas. Default: 1.
#manifests: # string. Required when action = deploy || action = promote || action = reject. Manifests.
#containers: # string. Optional. Use when action = deploy || action = promote || action = bake. Containers.
#imagePullSecrets: # string. Optional. Use when action = deploy || action = promote. ImagePullSecrets.
#renderType: 'helm' # 'helm' | 'kompose' | 'kustomize'. Optional. Use when action = bake. Render Engine. Default: helm.
#dockerComposeFile: # string. Required when action = bake && renderType = kompose. Path to docker compose file.
#helmChart: # string. Required when action = bake && renderType = helm. Helm Chart.
#releaseName: # string. Optional. Use when action = bake && renderType = helm. Helm Release Name.
#overrideFiles: # string. Optional. Use when action = bake && renderType = helm. Override Files.
#overrides: # string. Optional. Use when action = bake && renderType = helm. Overrides.
#kustomizationPath: # string. Optional. Use when action = bake && renderType = kustomize. Kustomization Path.
#resourceToPatch: 'file' # 'file' | 'name'. Required when action = patch. Resource to patch. Default: file.
#resourceFileToPatch: # string. Required when action = patch && resourceToPatch = file. File path.
#kind: # 'deployment' | 'replicaset' | 'statefulset'. Required when action = scale || resourceToPatch = name. Kind.
#name: # string. Required when action = scale || resourceToPatch = name. Name.
#replicas: # string. Required when action = scale. Replica count.
#mergeStrategy: 'strategic' # 'json' | 'merge' | 'strategic'. Required when action = patch. Merge Strategy. Default: strategic.
#arguments: # string. Optional. Use when action = delete. Arguments.
#patch: # string. Required when action = patch. Patch.
#secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when action = createSecret. Type of secret. Default: dockerRegistry.
#secretName: # string. Optional. Use when action = createSecret. Secret name.
#secretArguments: # string. Optional. Use when action = createSecret && secretType = generic. Arguments.
#dockerRegistryEndpoint: # string. Optional. Use when action = createSecret && secretType = dockerRegistry. Docker registry service connection.
#rolloutStatusTimeout: '0' # string. Optional. Use when action = deploy || action = patch || action = scale || action = promote. Timeout for rollout status. Default: 0.
# Deploy Kubernetes manifests v0
# Use Kubernetes manifest files to deploy to clusters or even bake the manifest files to be used for deployments using Helm charts.
- task: KubernetesManifest@0
inputs:
#action: 'deploy' # 'bake' | 'createSecret' | 'delete' | 'deploy' | 'patch' | 'promote' | 'scale' | 'reject'. Action. Default: deploy.
#kubernetesServiceConnection: # string. Required when action != bake. Kubernetes service connection.
#namespace: 'default' # string. Required when action != bake. Namespace. Default: default.
#strategy: 'none' # 'canary' | 'none'. Optional. Use when action = deploy || action = promote || action = reject. Strategy. Default: none.
#percentage: '0' # string. Required when strategy = Canary && action = deploy. Percentage. Default: 0.
#manifests: # string. Required when action = deploy || action = promote || action = reject. Manifests.
#containers: # string. Optional. Use when action = deploy || action = promote. Containers.
#imagePullSecrets: # string. Optional. Use when action = deploy || action = promote. ImagePullSecrets.
#renderType: 'helm2' # 'helm2'. Optional. Use when action = bake. Render Engine. Default: helm2.
#helmChart: # string. Required when action = bake && renderType = helm2. Helm Chart.
#releaseName: # string. Optional. Use when action = bake && renderType = helm2. Helm Release Name.
#overrideFiles: # string. Optional. Use when action = bake && renderType = helm2. Override Files.
#overrides: # string. Optional. Use when action = bake && renderType = helm2. Overrides.
#resourceToPatch: 'file' # 'file' | 'name'. Required when action = patch. Resource to patch. Default: file.
#resourceFileToPatch: # string. Required when action = patch && resourceToPatch = file. File path.
#kind: # 'deployment' | 'replicaset' | 'statefulset'. Required when action = scale || resourceToPatch = name. Kind.
#name: # string. Required when action = scale || resourceToPatch = name. Name.
#replicas: # string. Required when action = scale. Replica count.
#mergeStrategy: 'strategic' # 'json' | 'merge' | 'strategic'. Required when action = patch. Merge Strategy. Default: strategic.
#arguments: # string. Optional. Use when action = delete. Arguments.
#patch: # string. Required when action = patch. Patch.
#secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when action = createSecret. Type of secret. Default: dockerRegistry.
#secretName: # string. Optional. Use when action = createSecret. Secret name.
#secretArguments: # string. Optional. Use when action = createSecret && secretType = generic. Arguments.
#dockerRegistryEndpoint: # string. Optional. Use when action = createSecret && secretType = dockerRegistry. Docker registry service connection.
Bevitelek
action
- Akció
string
. Engedélyezett értékek: bake
, createSecret
(titkos kód létrehozása), delete
, deploy
, patch
, promote
, scale
. reject
Alapértelmezett érték: deploy
.
Megadja a végrehajtandó műveletet.
kubernetesServiceConnection
- Kubernetes-szolgáltatáskapcsolat
string
. Akkor szükséges, ha action != bake
.
Kubernetes-szolgáltatáskapcsolatot ad meg.
namespace
- Névtér
string
.
A parancsok névterét adja meg a –namespace
jelölő használatával. Ha a névtér nincs megadva, a parancsok az alapértelmezett névtérben futnak.
namespace
- Névtér
string
. Akkor szükséges, ha action != bake
. Alapértelmezett érték: default
.
A parancsok névterét adja meg a –namespace
jelölő használatával. Ha a névtér nincs megadva, a parancsok az alapértelmezett névtérben futnak.
strategy
- Stratégia
string
. Választható. Használja a következőt: action = deploy || action = promote || action = reject
. Engedélyezett értékek: canary
, none
. Alapértelmezett érték: none
.
Meghatározza a műveletben egy deploy
művelet vagy reject
művelet előtt promote
használt üzembehelyezési stratégiát. canary
Jelenleg ez az egyetlen elfogadható üzembehelyezési stratégia.
trafficSplitMethod
- Forgalomfelosztási módszer
string
. Választható. Használja a következőt: strategy = canary
. Engedélyezett értékek: pod
, smi
. Alapértelmezett érték: pod
.
A érték smi
esetében a forgalom százalékos felosztása a kérés szintjén történik egy szolgáltatásháló használatával. A szolgáltatáshálót fürtadminisztrátornak kell beállítania. Ez a feladat kezeli az SMI TrafficSplit-objektumok vezénylését.
A érték pod
esetében a százalékos felosztás nem lehetséges a kérés szintjén szolgáltatásháló hiányában. Ehelyett a százalékos bemenettel számítjuk ki az alapkonfiguráció és a kanári replikáit. A számítás a replikák százalékos aránya, amely a stabil változat bemeneti jegyzékfájljaiban van megadva.
percentage
- Százalékos
string
. Akkor szükséges, ha strategy = Canary && action = deploy
. Alapértelmezett érték: 0
.
A jegyzékfájlokban található számítási feladatok alapkonfiguráció-variánsainak és kanári-variáns replikáinak kiszámításához használt százalékos arány.
A megadott százalékos bemenethez számítsa ki a következőket:
(areplikák százalékos × száma) / 100
Ha az eredmény nem egész szám, az eredmény matematikai padlója lesz felhasználva az alapterv és a kanári-változatok létrehozásakor.
Tegyük fel például, hogy az üzembe helyezés hello-world
a bemeneti jegyzékfájlban van, és a következő sorok szerepelnek a tevékenység bemenetében:
replicas: 4
strategy: canary
percentage: 25
Ebben az esetben az üzemelő példányok hello-world-baseline
és hello-world-canary
egy-egy replikával jönnek létre. Az alapváltozat ugyanazzal a lemezképpel és címkével jön létre, mint a stabil verzió, amely a négy replikaváltozat az üzembe helyezés előtt. A kanári-változat az újonnan üzembe helyezett módosításoknak megfelelő képpel és címkével jön létre.
baselineAndCanaryReplicas
- Alapkonfiguráció és kanári replikák
string
. Akkor szükséges, ha strategy = Canary && action = deploy && trafficSplitMethod = SMI
. Alapértelmezett érték: 1
.
Ha a értékre smi
van állítvatrafficSplitMethod
, a forgalom százalékos felosztását a szolgáltatásháló síkja szabályozza. A kanári- és alapváltozatok replikáinak tényleges számát a forgalom felosztásától függetlenül szabályozhatja.
Tegyük fel például, hogy a bemeneti üzembehelyezési jegyzék 30 replikát határoz meg a stabil változathoz. Azt is feltételezzük, hogy a tevékenységhez a következő bemenetet adja meg:
strategy: canary
trafficSplitMethod: smi
percentage: 20
baselineAndCanaryReplicas: 1
Ebben az esetben a stabil változat a forgalom 80%-át kapja, míg az alapkonfiguráció és a kanári változatok mindegyike a megadott 20% felét kapja. Az alapkonfigurációk és a kanári-változatok nem kapnak három replikát. Ehelyett a megadott számú replikát kapnak, ami azt jelenti, hogy mindegyik egy replikát kap.
manifests
- Rakományjegyzék
string
. Akkor szükséges, ha action = deploy || action = promote || action = reject
.
Megadja az üzembe helyezéshez használni kívánt jegyzékfájlok elérési útját. Minden sor egyetlen útvonalat jelöl. A fájlegyeztetési minta minden sorhoz elfogadható érték.
containers
- Konténerek
string
. Választható. Használja a következőt: action = deploy || action = promote || action = bake
.
Megadja a jegyzékfájlok helyettesítéséhez használandó kép teljes erőforrás-URL-címét. Az URL-cím contosodemo.azurecr.io/helloworld:test
egy példa.
containers
- Konténerek
string
. Választható. Használja a következőt: action = deploy || action = promote
.
Megadja a jegyzékfájlok helyettesítéséhez használandó kép teljes URL-címét. Ez a bemenet elfogadja a több összetevő-helyettesítés specifikációját egy új sorra tagolt formában. Bemutatunk egy példát:
containers: |
contosodemo.azurecr.io/foo:test1
contosodemo.azurecr.io/bar:test2
Ebben a példában a bemeneti jegyzékfájlok képmezőjében a és contosodemo.azurecr.io/bar
a kifejezésre mutató összes hivatkozás contosodemo.azurecr.io/foo
szerepel. Minden talált egyezésnél a címke test1
vagy test2
a lecseréli az egyeztetett hivatkozást.
imagePullSecrets
- ImagePullSecrets
string
. Választható. Használja a következőt: action = deploy || action = promote
.
Többsoros bemenetet ad meg, ahol minden sor tartalmazza a fürtben már beállított Docker-beállításjegyzékbeli titkos kód nevét. Minden titkos kódnév hozzá lesz adva imagePullSecrets
a bemeneti jegyzékfájlokban található számítási feladatokhoz.
renderType
- Renderelési motor
string
. Választható. Használja a következőt: action = bake
. Engedélyezett értékek: helm
, kompose
, kustomize
. Alapértelmezett érték: helm
.
Megadja a jegyzékfájlok előállításához használt renderelési típust.
renderType
- Renderelési motor
string
. Választható. Használja a következőt: action = bake
. Engedélyezett értékek: helm2
(Helm 2). Alapértelmezett érték: helm2
.
Megadja a jegyzékfájlok előállításához használt renderelési típust.
dockerComposeFile
- A docker compose fájl elérési útja
string
. Akkor szükséges, ha action = bake && renderType = kompose
.
Megadja a docker-compose fájl elérési útját.
helmChart
- Helm-diagram
string
. Akkor szükséges, ha action = bake && renderType = helm
.
Megadja a Helm-diagram sütni kívánt útvonalát.
helmChart
- Helm-diagram
string
. Akkor szükséges, ha action = bake && renderType = helm2
.
Megadja a Helm-diagram sütni kívánt útvonalát.
releaseName
- Helm-kiadás neve
string
. Választható. Használja a következőt: action = bake && renderType = helm
.
Megadja a használni kívánt Helm-kiadás nevét.
releaseName
- Helm-kiadás neve
string
. Választható. Használja a következőt: action = bake && renderType = helm2
.
Megadja a használni kívánt Helm-kiadás nevét.
overrideFiles
- Fájlok felülbírálása
string
. Választható. Használja a következőt: action = bake && renderType = helm
.
Többsoros bemenetet ad meg, amely elfogadja a felülbírálási fájlok elérési útját. A rendszer a Helm-diagramokból származó jegyzékfájlok sütésekor használja a fájlokat.
overrideFiles
- Fájlok felülbírálása
string
. Választható. Használja a következőt: action = bake && renderType = helm2
.
Többsoros bemenetet ad meg, amely elfogadja a felülbírálási fájlok elérési útját. A rendszer a Helm-diagramokból származó jegyzékfájlok sütésekor használja a fájlokat.
overrides
- Felülbírálja
string
. Választható. Használja a következőt: action = bake && renderType = helm
.
Megadja a beállítandó felülbírálási értékeket.
overrides
- Felülbírálja
string
. Választható. Használja a következőt: action = bake && renderType = helm2
.
További felülbírálási értékeket ad meg, amelyeket a parancssori kapcsolón --set
keresztül használnak a Helm-et használó jegyzékfájlok sütésekor.
Adja meg a felülbírálási értékeket párként key-value
a formátumban key:value
. Ha több felülíró key-value
párt használ, mindegyik párt külön sorban adja meg key-value
. Használjon újvonalas karaktert a különböző key-value
párok közötti elválasztó karakterként.
kustomizationPath
- Kustomization elérési útja
string
. Választható. Használja a következőt: action = bake && renderType = kustomize
.
Megadja azt az argumentumot, amelynek a fájlt tartalmazó könyvtár elérési útjának kell lennie, vagy egy git-adattár URL-címének, amely az adattár gyökeréhez képest megadott same
elérésiút-utótaggal rendelkezik.
resourceToPatch
- Javítandó erőforrás
string
. Akkor szükséges, ha action = patch
. Engedélyezett értékek: file
, name
. Alapértelmezett érték: file
.
A következő javítási módszerek egyikét jelzi:
- A jegyzékfájl azonosítja a javítandó objektumokat.
- Az egyes objektumokat a rendszer típus és név alapján azonosítja javítási célként.
Az elfogadható értékek a fájl és a név.
resourceFileToPatch
- Fájl elérési útja
string
. Akkor szükséges, ha action = patch && resourceToPatch = file
.
Megadja a javításhoz használt fájl elérési útját.
kind
- Fajta
string
. Akkor szükséges, ha action = scale || resourceToPatch = name
. Engedélyezett értékek: deployment
, replicaset
, statefulset
.
Megadja a K8s objektumtípust, például deployment
a , replicaSet
és egyebeket.
name
- Név
string
. Akkor szükséges, ha action = scale || resourceToPatch = name
.
A K8s objektum nevét adja meg.
replicas
- Replikák száma
string
. Akkor szükséges, ha action = scale
.
A replikák számát adja meg, ahány replikára méretezhető.
mergeStrategy
- Egyesítési stratégia
string
. Akkor szükséges, ha action = patch
. Engedélyezett értékek: json
, merge
, strategic
. Alapértelmezett érték: strategic
.
Megadja a megadott javítás típusát.
arguments
- Érvek
string
. Választható. Használja a következőt: action = delete
.
A parancs argumentumait kubectl delete
adja meg. Ilyen például a következő: arguments: deployment hello-world foo-bar
patch
- Javítás
string
. Akkor szükséges, ha action = patch
.
Megadja a javítás tartalmát.
secretType
- Titkos kód típusa
string
. Akkor szükséges, ha action = createSecret
. Engedélyezett értékek: dockerRegistry
, generic
. Alapértelmezett érték: dockerRegistry
.
Általános vagy docker-t imagepullsecret
hoz létre vagy frissít. Adja meg dockerRegistry
a kiválasztott beállításjegyzék létrehozását vagy frissítését imagepullsecret
. Az an imagePullSecret
egy olyan titkos kód átadása, amely tárolóregisztrációs adatbázis jelszavát tartalmazza a Kubeletnek, így lekérhet egy privát rendszerképet a pod nevében.
secretName
- Titkos kód neve
string
. Választható. Használja a következőt: action = createSecret
.
Megadja a titkos kód nevét. Ezt a titkos nevet használhatja a Kubernetes YAML konfigurációs fájljában.
secretArguments
- Érvek
string
. Választható. Használja a következőt: action = createSecret && secretType = generic
.
Megadja a titkos kódba beszúrandó kulcsokat és literális értékeket. Például: --from-literal=key1=value1
--from-literal=key2="top secret"
.
dockerRegistryEndpoint
- Docker beállításjegyzék-szolgáltatáskapcsolat
string
. Választható. Használja a következőt: action = createSecret && secretType = dockerRegistry
.
Megadja annak a megadott szolgáltatáskapcsolatnak a hitelesítő adatait, amelyek a Docker beállításjegyzékbeli titkos kódjának fürtben való létrehozásához használatosak. A mezőben lévő imagePullSecrets
jegyzékfájlok ezután hivatkozhatnak a titkos kód nevére.
rolloutStatusTimeout
- Bevezetési állapot időtúllépése
string
. Választható. Használja a következőt: action = deploy || action = patch || action = scale || action = promote
. Alapértelmezett érték: 0
.
Megadja, hogy mennyi ideig (másodpercben) várjon az állapot befejezése watch on rollout
előtt.
Tevékenységvezérlési beállítások
A tevékenységbemeneteken kívül minden tevékenység rendelkezik vezérlési lehetőségekkel. További információ: Vezérlési beállítások és gyakori feladattulajdonságok.
Kimeneti változók
Ez a feladat a következő kimeneti változókat határozza meg, amelyeket az alsóbb rétegbeli lépésekben, feladatokban és szakaszokban használhat fel.
manifestsBundle
Megadja a pékművelet által létrehozott jegyzékcsomagok helyét.
Megjegyzések
Megjegyzés
A feladat egy újabb verziója érhető el, amely további támogatást nyújt a Kubernetes-fürtök különböző módokon történő megcélzásához a connectionType
tulajdonság használatával. További információ: KubernetesManifest@1 és KubernetesManifest@1 szolgáltatáskapcsolati megjegyzések
Kubernetes-jegyzékfeladat használata egy buildelési vagy kiadási folyamatban a jegyzékfájlok Kubernetes-fürtökön való sütéséhez és üzembe helyezéséhez.
Ez a feladat a következőket támogatja:
Összetevő helyettesítése: Az üzembe helyezési művelet bemenetként a tárolólemezképek listáját adja meg, amelyeket a címkékkel és kivonatokkal együtt adhat meg. Ugyanez a bemenet lesz helyettesítve a nemtemplatizált jegyzékfájlokkal, mielőtt alkalmazásokat ad a fürtre. Ez a helyettesítés biztosítja, hogy a fürtcsomópontok a rendszerkép megfelelő verzióját kérik le.
Jegyzékstabilitás: A rendszer ellenőrzi az üzembe helyezett Kubernetes-objektumok bevezetési állapotát. A stabilitási ellenőrzések be vannak építve annak megállapításához, hogy a tevékenység állapota sikeres vagy sikertelen-e.
Nyomon követhetőségi széljegyzetek: A rendszer széljegyzeteket ad hozzá az üzembe helyezett Kubernetes-objektumokhoz a nyomon követhetőségi információk felülbírálásához. A következő széljegyzetek támogatottak:
- azure-pipelines/org
- azure-pipelines/project
- azure-pipelines/pipeline
- azure-pipelines/pipelineId
- azure-pipelines/execution
- azure-pipelines/executionuri
- azure-pipelines/jobName
Titkos kulcsok kezelése: A
createSecret
művelet lehetővé teszi, hogy a Docker-beállításjegyzék titkos kódjai Docker-beállításjegyzék-szolgáltatáskapcsolatokkal hozhatók létre. Általános titkos kulcsok egyszerű szöveges változók vagy titkos változók használatával történő létrehozását is lehetővé teszi. Mielőtt üzembe helyezené a fürtöt, asecrets
bemenet és adeploy
művelet segítségével kiegészítheti a bemeneti jegyzékfájlokat a megfelelőimagePullSecrets
értékkel.Bake jegyzékfájl: A
bake
feladat művelete lehetővé teszi a sablonok Kubernetes-jegyzékfájlokba való sütését. A művelet olyan eszközöket használ, mint a Helm, a Compose és a Kustomize. A sütéssel ezek a Kubernetes-jegyzékfájlok használhatók a fürt üzembe helyezéséhez.Üzembehelyezési stratégia: A művelettel rendelkező
deploy
stratégia kiválasztásacanary
a és-canary
utótaggal-baseline
ellátott számítási feladatok nevének létrehozásához vezet. A feladat a forgalom felosztásának két módszerét támogatja:Service Mesh Interface: A Service Mesh Interface (SMI) absztrakciója lehetővé teszi a konfigurációt olyan szolgáltatásháló-szolgáltatókkal, mint a
Linkerd
ésIstio
a. A Kubernetes-jegyzékfeladat az SMI-objektumokatTrafficSplit
a stabil, alapkonfigurációs és kanári-szolgáltatásokhoz képezi le az üzembehelyezési stratégia életciklusa során.A szolgáltatáshálón alapuló és ezt a feladatot használó Kanári-üzemelő példányok pontosabbak. Ennek a pontosságnak az az oka, hogy a szolgáltatói hálószolgáltatók hogyan teszik lehetővé a forgalom részletes százalékalapú felosztását. A szolgáltatásháló a podokba ágyazott szolgáltatásregisztrációs adatbázist és oldalkocsis tárolókat használja. Ez az injektálás az alkalmazástárolók mellett történik a részletes forgalommegosztás elérése érdekében.
Szolgáltatásháló nélküli Kubernetes: Szolgáltatásháló hiányában előfordulhat, hogy a kérés szintjén nem kapja meg a kívánt százalékos arányt. A kanári-telepítéseket azonban az alapkonfiguráció és a kanári változatok használatával is elvégezheti a stabil változat mellett.
A szolgáltatás kéréseket küld mindhárom számításifeladat-változat podjainak, mivel a választócímke megkötései teljesülnek. A Kubernetes Jegyzékfájl ezeket a kéréseket az alapkonfigurációk és a kanári-változatok létrehozásakor fogadja el. Ez az útválasztási viselkedés úgy éri el a kívánt hatást, hogy az összes kérelemnek csak egy részét irányítja át a kanáriba.
Hasonlítsa össze az alapkonfigurációt és a kanári számítási feladatokat egy manuális beavatkozási feladat kiadási folyamatokban vagy egy YAML-folyamatok késleltetési feladatával . A feladat előléptetési vagy elutasítási műveletének használata előtt végezze el az összehasonlítást.
Üzembe helyezési művelet
Az alábbi YAML-kód egy példa a Kubernetes-névtérben való üzembe helyezésre jegyzékfájlok használatával:
steps:
- task: KubernetesManifest@0
displayName: Deploy
inputs:
kubernetesServiceConnection: someK8sSC1
namespace: default
manifests: |
manifests/deployment.yml
manifests/service.yml
containers: |
foo/demo:$(tagVariable1)
bar/demo:$(tagVariable2)
imagePullSecrets: |
some-secret
some-other-secret
A fenti példában a feladat megpróbálja megkeresni a képek foo/demo
és bar/demo
a jegyzékfájlok képmezőinek egyezéseit. Minden talált egyezés esetében a rendszer címkeként fűzi tagVariable1
hozzá a vagy tagVariable2
értéket a kép nevéhez. Az összetevők helyettesítéséhez a tárolók bemenetében is megadhat kivonatokat.
Megjegyzés
Bár az üzembe helyezési stratégiához kapcsolódó YAML-bemenettel létrehozhat deploy
, promote
és reject
műveleteket, a manuális beavatkozási feladatok támogatása jelenleg nem érhető el a buildelési folyamatokhoz.
Kiadási folyamatok esetén javasoljuk, hogy az üzembe helyezési stratégiához kapcsolódó műveleteket és bemeneteket használja a következő sorrendben:
- A és
percentage: $(someValue)
a paraméterrelstrategy: canary
megadott üzembehelyezési művelet. - Manuális beavatkozási feladat, amellyel szüneteltetheti a folyamatot, és összehasonlíthatja az alapváltozatot a kanári-változattal.
- Egy előléptetési művelet, amely manuális beavatkozási feladat folytatásakor fut, és egy elutasító művelet, amely manuális beavatkozási feladat elutasítása esetén fut.
Titkos kód létrehozása művelet
Az alábbi YAML-kód a Docker registry titkos kulcsainak Docker Registry-szolgáltatáskapcsolat használatával történő létrehozását mutatja be:
steps:
- task: KubernetesManifest@0
displayName: Create secret
inputs:
action: createSecret
secretType: dockerRegistry
secretName: foobar
dockerRegistryEndpoint: demoACR
kubernetesServiceConnection: someK8sSC
namespace: default
Ez a YAML-kód általános titkos kulcsok mintáját mutatja be:
steps:
- task: KubernetesManifest@0
displayName: Create secret
inputs:
action: createSecret
secretType: generic
secretName: some-secret
secretArguments: --from-literal=key1=value1
kubernetesServiceConnection: someK8sSC
namespace: default
Pékművelet
A következő YAML-kód egy példa a Helm-diagramok jegyzékfájljainak sütésére. Jegyezze fel egy névbevitel használatát az első feladatban. Ezt a nevet később az üzembe helyezési lépésben hivatkozunk a sütési lépés által létrehozott jegyzékfájlok elérési útjának megadására.
steps:
- task: KubernetesManifest@0
name: bake
displayName: Bake K8s manifests from Helm chart
inputs:
action: bake
helmChart: charts/sample
overrides: 'image.repository:nginx'
- task: KubernetesManifest@0
displayName: Deploy K8s manifests
inputs:
kubernetesServiceConnection: someK8sSC
namespace: default
manifests: $(bake.manifestsBundle)
containers: |
nginx: 1.7.9
Megjegyzés
Ha a Helmet közvetlenül szeretné használni a kiadások és a visszaállítások kezeléséhez, tekintse meg a Helm-diagramok csomagolása és üzembe helyezése című feladatot.
Példa a Kustomize-ra
Az alábbi YAML-kód egy példa a Kustomize-nal létrehozott, fájlokat tartalmazó kustomization.yaml
jegyzékfájlok sütésére.
steps:
- task: KubernetesManifest@0
name: bake
displayName: Bake K8s manifests from kustomization path
inputs:
action: bake
renderType: kustomize
kustomizationPath: folderContainingKustomizationFile
- task: KubernetesManifest@0
displayName: Deploy K8s manifests
inputs:
kubernetesServiceConnection: k8sSC1
manifests: $(bake.manifestsBundle)
Kompose példa
Az alábbi YAML-kód egy példa a Kompose-nal, a Docker Compose átalakítási eszközével létrehozott jegyzékfájlok sütésére.
steps:
- task: KubernetesManifest@0
name: bake
displayName: Bake K8s manifests from Docker Compose
inputs:
action: bake
renderType: kompose
dockerComposeFile: docker-compose.yaml
- task: KubernetesManifest@0
displayName: Deploy K8s manifests
inputs:
kubernetesServiceConnection: k8sSC1
manifests: $(bake.manifestsBundle)
Skálázási művelet
Az alábbi YAML-kód egy példát mutat be az objektumok skálázására:
steps:
- task: KubernetesManifest@0
displayName: Scale
inputs:
action: scale
kind: deployment
name: bootcamp-demo
replicas: 5
kubernetesServiceConnection: someK8sSC
namespace: default
Javítási művelet
Az alábbi YAML-kód egy objektumjavítási példát mutat be:
steps:
- task: KubernetesManifest@0
displayName: Patch
inputs:
action: patch
kind: pod
name: demo-5fbc4d6cd9-pgxn4
mergeStrategy: strategic
patch: '{"spec":{"containers":[{"name":"demo","image":"foobar/demo:2239"}]}}'
kubernetesServiceConnection: someK8sSC
namespace: default
Művelet törlése
Ez a YAML-kód egy mintaobjektum törlését jeleníti meg:
steps:
- task: KubernetesManifest@0
displayName: Delete
inputs:
action: delete
arguments: deployment expressapp
kubernetesServiceConnection: someK8sSC
namespace: default
Hibaelhárítás
A Kubernetes-fürtöm tűzfal mögött található, és bérelt ügynököket használok. Hogyan helyezhetek üzembe ebben a fürtben?
Az IP-címek bérelt ügynökök számára történő engedélyezésével adhat hozzáférést a tűzfalon keresztül a bérelt ügynököknek. További részleteket az ügynök IP-tartományairól szóló részben tekinthet meg.
Hogyan működnek a kérések a stabil és a változó szolgáltatási útvonalakon az indikátoros üzemelő példányokkal?
A Kubernetesben a 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 úgy, hogy egyetlen szolgáltatás a kéréseket a stabil és az indikátoros változatokhoz is továbbítsa. A Kubernetes-jegyzék feladata ezt az indikátoros környezetekhez használja.
Ha a feladat tartalmazza a és strategy: canary
a bemenetét action: deploy
a bemeneti jegyzékfájlokban definiált minden számítási feladathoz (Üzembe helyezés, ReplicaSet, Pod, ...), létrejön az üzembe helyezés és -baseline
-canary
egy változata. Ebben a példában egy üzembe helyezés sampleapp
található a bemeneti jegyzékfájlban, és a folyamat 22-es futtatási számának befejezése után a nevű sampleapp
üzemelő példány stabil változata lesz üzembe helyezve a fürtben. Az ezt követő futtatásban (ebben az esetben a 23-as számú futtatásnál) a Kubernetes jegyzékfeladata action: deploy
a következővel történik, és strategy: canary
olyan mintaalkalmazás-alapkonfigurációt és sampleapp-canary üzemelő példányokat hozna létre, amelyek replikáinak számát a tevékenység bemenetének szorzata percentage
határozza meg a végső stabil változat sampleapp
replikáinak kívánt számával a bemeneti jegyzékfájloknak megfelelően.
A replikák számának kivételével az alapverzió konfigurációja megegyezik a stabil változattal, míg a kanári-verzióban az aktuális futtatás által bevezetett új módosítások (ebben az esetben a 23-as futtatás). 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.
Aaction: promote
Kubernetes-jegyzékfeladatok és strategy: canary
vagy action: reject
strategy: canary
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ürtben, miközben a rövid élettartamú alapkonfiguráció és a kanári-verziók törlődnek.
Követelmények
Követelmény | Leírás |
---|---|
Folyamattípusok | YAML, klasszikus build, klasszikus kiadás |
Futtatás: | Ügynök, DeploymentGroup |
Igények | None |
Képességek | Ez a tevékenység nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek. |
Parancskorlátozások | Bármelyik |
Változók beállítása | Bármelyik |
Ügynök verziója | Minden támogatott ügynökverzió. |
Feladatkategória | Üzembe helyezés |