Skip to main content

Enterprise Server 3.20 ist derzeit als Release Candidate verfügbar.

Bereitstellen in Azure Kubernetes Service

Erfahren Sie, wie Sie ein Projekt als Teil eines CD-Workflows (Continuous Deployment) für Azure Kubernetes Service (AKS) bereitstellen.

Voraussetzungen

Bevor du deinen GitHub Actions-Workflow erstellst, musst du die folgenden Einrichtungsschritte ausführen:

  1. Erstellen Sie einen Ziel-AKS-Cluster und eine Azure Container Registry (ACR). Weitere Informationen finden Sie unter Quickstart: Bereitstellen eines AKS-Clusters mithilfe des Azure-Portals – Azure Kubernetes Service und Quickstart – Erstellen der Registrierung im Portal – Azure Container Registry in der Azure Dokumentation.

  2. Erstellen Sie einen geheimen Schlüssel namens AZURE_CREDENTIALS, um Ihre Azure Anmeldeinformationen zu speichern. Weitere Informationen dazu, wie Sie diese Informationen finden und den geheimen Schlüssel strukturieren, finden Sie in the Azure/login action documentation.

Erstellen des Workflows

Nachdem die Voraussetzungen erfüllt sind, kannst du mit dem Erstellen des Workflows fortfahren.

Im folgenden Beispielworkflow wird veranschaulicht, wie Sie ein Projekt erstellen und in Azure Kubernetes Service bereitstellen, wenn Code an Ihr Repository gepusht wird.

Ändere unter dem Workflowschlüssel env die folgenden Werte: * AZURE_CONTAINER_REGISTRY zu dem Namen Ihrer Containerregistrierung * PROJECT_NAME zum Namen deines Projekts * RESOURCE_GROUP zur Ressourcengruppe, die deinen AKS-Cluster enthält * CLUSTER_NAME in den Namen Ihres AKS-Clusters

Dieser Workflow verwendet das helm Rendermodul für die Aktion azure/k8s-bake. Wenn du die helm-Render-Engine verwendest, ändere den Wert von CHART_PATH in den Pfad zu deiner Helm-Datei. Ändere CHART_OVERRIDE_PATH in ein Array aus Außerkraftsetzungsdateipfaden. Wenn du ein anderes Rendermodul verwendest, aktualisiere die Eingabeparameter, die an die Aktion azure/k8s-bake gesendet werden.

YAML
# Dieser Workflow verwendet Aktionen, die nicht von GitHub zertifiziert sind.
# Sie werden von einem Drittanbieter bereitgestellt und unterliegen
# separaten Nutzungsbedingungen, Datenschutzbestimmungen und Support
# Onlinedokumentation.

# GitHub empfiehlt, Aktionen an einen Commit-SHA anzuheften.
# Um eine neuere Version zu erhalten, musst du den SHA aktualisieren.
# Du kannst auch auf ein Tag oder einen Branch verweisen, aber die Aktion kann sich ohne Vorwarnung ändern.

name: Build and deploy to Azure Kubernetes Service

env:
  AZURE_CONTAINER_REGISTRY: MY_REGISTRY_NAME # set this to the name of your container registry
  PROJECT_NAME: MY_PROJECT_NAME              # set this to your project's name
  RESOURCE_GROUP: MY_RESOURCE_GROUP          # set this to the resource group containing your AKS cluster
  CLUSTER_NAME: MY_CLUSTER_NAME              # set this to the name of your AKS cluster
  REGISTRY_URL: MY_REGISTRY_URL              # set this to the URL of your registry
  # If you bake using helm:
  CHART_PATH: MY_HELM_FILE                   # set this to the path to your helm file
  CHART_OVERRIDE_PATH: MY_OVERRIDE_FILES     # set this to an array of override file paths

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5

    - name: Azure Login
      uses: azure/login@14a755a4e2fd6dff25794233def4f2cf3f866955
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}

    - name: Build image on ACR
      uses: azure/CLI@61bb69d64d613b52663984bf12d6bac8fd7b3cc8
      with:
        azcliversion: 2.29.1
        inlineScript: |
          az configure --defaults acr=${{ env.AZURE_CONTAINER_REGISTRY }}
          az acr build -t -t ${{ env.REGISTRY_URL }}/${{ env.PROJECT_NAME }}:${{ github.sha }}

    - name: Gets K8s context
      uses: azure/aks-set-context@94ccc775c1997a3fcfbfbce3c459fec87e0ab188
      with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}
          resource-group: ${{ env.RESOURCE_GROUP }}
          cluster-name: ${{ env.CLUSTER_NAME }}
      id: login

    - name: Configure deployment
      uses: azure/k8s-bake@61041e8c2f75c1f01186c8f05fb8b24e1fc507d8
      with:
        renderEngine: 'helm'
        helmChart: ${{ env.CHART_PATH }}
        overrideFiles: ${{ env.CHART_OVERRIDE_PATH }}
        overrides: |
          replicas:2
        helm-version: 'latest'
      id: bake

    - name: Deploys application
      uses: Azure/k8s-deploy@dd4bbd13a5abd2fc9ca8bdcb8aee152bb718fa78
      with:
        manifests: ${{ steps.bake.outputs.manifestsBundle }}
        images: |
          ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.PROJECT_NAME }}:${{ github.sha }}
        imagepullsecrets: |
          ${{ env.PROJECT_NAME }}

Weitere Informationen