Deploy to Kubernetes
Azure DevOps Services | Azure DevOps Server 2022
Az Azure Pipelines használatával üzembe helyezheti a más felhőszolgáltatók által kínált Azure Kubernetes Service - és Kubernetes-fürtöket. Az Azure Pipelines két feladattal rendelkezik a Kubernetes használatával kapcsolatban:
- KubernetesManifest-feladat: jegyzékfájlokat süthet és helyezhet üzembe a Helm, Kompose vagy Kustomize kubernetes-fürtökön
- Kubectl-feladat: Kubernetes-fürt üzembe helyezése, konfigurálása és frissítése az Azure Container Service-ben kubectl-parancsok futtatásával
Ha az Azure Kubernetes Service-t használja bármelyik feladattal, az Azure Resource Manager szolgáltatás kapcsolattípusa a legjobb módja annak, hogy privát fürthöz vagy helyi fiókokat letiltó fürthöz csatlakozzon.
Az üzembe helyezés nyomon követéséhez kubernetes-erőforrásthasználjon Kubernetes-feladattal rendelkező környezetekben.
Az Azure Pipelines és az Azure Kubernetes szolgáltatás használatának megkezdéséhez tekintse meg az Azure Kubernetes Service és az Azure Pipelines összeállítása és üzembe helyezése című témakört. Az Azure Pipelines, a Kubernetes és a kanári-telepítési stratégia használatának első lépéseit lásd : Kubernetes-üzembe helyezési stratégia használata az Azure Pipelines használatával.
KubernetesManifest-feladat
A KubernetesManifest-feladat ellenőrzi az objektum stabilitását, mielőtt sikeresnek/sikertelennek jelöl meg egy feladatot. A feladat emellett elvégezheti az összetevők helyettesítését, hozzáadhat folyamatkövetéshez kapcsolódó széljegyzeteket, egyszerűbbé teheti az imagePullSecrets létrehozását és hivatkozását, sütheti a jegyzékfájlokat, és segítséget adhat az üzembehelyezési stratégia bevezetéséhez.
Megjegyzés:
Bár a YAML-alapú folyamatok egyetlen Git-adattárban aktiválódnak, ha egy másik Git-adattárban tárolt jegyzékfájl eseményindítójára van szüksége, vagy ha eseményindítókra van szükség az Azure Container Registryhez vagy a Docker Hubhoz, akkor yaML-alapú folyamat helyett egy klasszikus folyamatot kell használnia.
A Kubernetes-jegyzékfeladatban a sütési művelet használatával sablonokat süthet Kubernetes-jegyzékfájlokba. A művelet lehetővé teszi olyan eszközök használatát, mint a Helm, a Kustomize és a Kompose. A Kubernetes-jegyzékfeladat sütési művelete betekintést nyújt a bemeneti sablonok és az üzembe helyezésekben használt záró jegyzékfájlok közötti átalakításba. A Kubernetes-jegyzékfeladat üzembe helyezési műveletének bemeneteként használhatja a kész jegyzékfájlokat az alsóbb rétegben (tevékenységekben).
Az üzembehelyezési feladatokkal rendelkező környezetek részét képező Kubernetes-erőforrásokat célozhatja meg. A környezetek és az erőforrások üzembe helyezése jobb folyamatkövethetőséget biztosít, így diagnosztizálhatja az üzembe helyezéssel kapcsolatos problémákat. Olyan Kubernetes-fürtökre is üzembe helyezheti azokat, amelyek normál feladatokkal rendelkeznek, és nem rendelkeznek ugyanazokkal az állapotfunkciókkal.
Az alábbi YAML-kód egy példa a Helm-diagramok jegyzékfájljainak sütésére
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
Kubectl-feladat
A KubernetesManifest KubernetesManifest feladat alternatívaként a Kubectl-feladattal kubectl-parancsok futtatásával telepítheti, konfigurálhatja és frissítheti a Kubernetes-fürtöt az Azure Container Service-ben.
Az alábbi példa bemutatja, hogyan hivatkozik a szolgáltatáskapcsolat a Kubernetes-fürtre.
- task: Kubernetes@1
displayName: kubectl apply
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Contoso
Szkriptfeladat
Szkriptfeladatokkal is használhatókubectl
.
Az alábbi példa egy szkriptet használ a futtatáshoz kubectl
.
- script: |
kubectl apply -f manifest.yml
A Kubernetes üzembe helyezési stratégiái
A Kubernetes-jegyzékfeladat jelenleg támogatja a kanári-telepítési stratégiát. A kanári üzembehelyezési stratégia használatával részlegesen üzembe helyezhet új módosításokat, hogy az új módosítások a teljes bevezetés előtt együtt létezhessenek az aktuális központi telepítésekkel.
A folyamatokkal rendelkező kanári-telepítésekkel kapcsolatos további információkért lásd : Kubernetes-üzembe helyezési stratégia használata az Azure Pipelines használatával.
Többfelhős Kubernetes-üzemelő példányok
A Kubernetes ugyanúgy fut minden felhőszolgáltatón. Az Azure Pipelines használható az Azure Kubernetes Service (AKS), a Google Kubernetes Engine (GKE), az Amazon Elastic Kubernetes Service (EKS) vagy más felhőszolgáltatók fürtöinek üzembe helyezéséhez.
Többfelhős üzembe helyezés beállításához hozzon létre egy környezetet, majd adja hozzá a Kubernetes-fürtök névteréhez társított Kubernetes-erőforrásokat.
A meglévő szolgáltatásfiókon alapuló általános szolgáltatói megközelítés bármely felhőszolgáltató fürtöivel működik, beleértve az Azure-t is. Az Azure Kubernetes Service lehetőség használatának előnye, hogy új ServiceAccount - és RoleBinding-objektumokat hoz létre (a meglévő ServiceAccount újrafelhasználása helyett), hogy az újonnan létrehozott RoleBinding objektum csak a kiválasztott névtérre korlátozza a ServiceAccount műveleteit.
Az általános szolgáltatói megközelítés használatakor győződjön meg arról, hogy létezik egy RoleBinding, amely engedélyeket ad a edit
ClusterRole
kívánt szolgáltatásfiókhoz. Engedélyeket kell adnia a megfelelő szolgáltatásfiókhoz, hogy az Azure Pipelines használhassa a szolgáltatásfiókot objektumok létrehozásához a kiválasztott névtérben.
Párhuzamos üzembe helyezés több felhőbe
Az alábbi példa bemutatja, hogyan végezhet párhuzamos üzembe helyezéseket több felhőben lévő fürtökön. Ebben a példában az AKS-, GKE-, EKS- és OpenShift-fürtök üzembe helyezései találhatók. Ez a négy névtér a környezet kubernetes-erőforrásaihoz contoso
van társítva.
trigger:
- main
jobs:
- deployment:
displayName: Deploy to AKS
pool:
vmImage: ubuntu-latest
environment: contoso.aksnamespace
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
kubernetesServiceConnection: serviceConnection #replace with your service connection
namespace: aksnamespace
manifests: manifests/*
- deployment:
displayName: Deploy to GKE
pool:
vmImage: ubuntu-latest
environment: contoso.gkenamespace
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
kubernetesServiceConnection: serviceConnection #replace with your service connection
namespace: gkenamespace
manifests: manifests/*
- deployment:
displayName: Deploy to EKS
pool:
vmImage: ubuntu-latest
environment: contoso.eksnamespace
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
kubernetesServiceConnection: serviceConnection #replace with your service connection
namespace: eksnamespace
manifests: manifests/*
- deployment:
displayName: Deploy to OpenShift
pool:
vmImage: ubuntu-latest
environment: contoso.openshiftnamespace
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
kubernetesServiceConnection: serviceConnection #replace with your service connection
namespace: openshiftnamespace
manifests: manifests/*
- deployment:
displayName: Deploy to DigitalOcean
pool:
vmImage: ubuntu-latest
environment: contoso.digitaloceannamespace
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
kubernetesServiceConnection: serviceConnection #replace with your service connection
namespace: digitaloceannamespace
manifests: manifests/*
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: