Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Automatisierte Bereitstellungen von Azure Kubernetes Fleet Manager können verwendet werden, um eine Anwendung aus einem Coderepository in einem oder mehreren AKS-Clustern in einer Flotte zu erstellen und bereitzustellen. Automatisierte Bereitstellungen vereinfachen das Einrichten eines GitHub Action-Workflows zum Erstellen und Bereitstellen Ihres Codes. Sobald die Verbindung hergestellt ist, wird die Pipeline bei jedem neuen Commit, den Sie vornehmen, ausgeführt.
Automatisierte Bereitstellungen basieren auf draft.sh. Wenn Sie einen neuen Bereitstellungsworkflow erstellen, können Sie eine vorhandene Dockerfile-Datei verwenden, eine Dockerfile generieren, vorhandene Kubernetes-Manifeste verwenden oder Kubernetes-Manifeste generieren. Die generierten Manifeste werden mit bewährten Methoden für Sicherheit und Resilienz erstellt.
Von Bedeutung
Previewfunktionen von Azure Kubernetes Fleet Manager sind auf Self-Service-Basis per Aktivierung verfügbar. Vorschauversionen werden „im Istzustand“ und „wie verfügbar“ bereitgestellt und sind von den Service Level Agreements und der eingeschränkten Garantie ausgeschlossen. Vorschauversionen von Azure Kubernetes Fleet Manager sind auf Best-Effort-Basis teilweise durch den Kundensupport abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen.
Voraussetzungen
- Ein GitHub-Konto mit der Anwendung, die bereitgestellt werden soll.
- Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
- Lesen Sie die konzeptionellen Übersichten über automatisierte Bereitstellungen und die Ressourcenverteilung , um die in diesem Artikel verwendeten Konzepte und Terminologie zu verstehen.
- Ein Kubernetes Fleet Manager mit einem Hubcluster und Mitgliedsclustern. Wenn Sie noch keine haben, lesen Sie bitte Erstellen einer Azure Kubernetes Fleet Manager-Ressource und Beitritt zu Mitgliedsclustern mithilfe der Azure CLI.
- Der Benutzer, der die Konfiguration abschließt, verfügt über Berechtigungen für die Fleet Manager-Hubcluster-Kubernetes-API. Weitere Informationen finden Sie unter Access the Kubernetes API for more details.
- Ein Kubernetes-Namespace, der bereits im Fleet Manager-Hubcluster bereitgestellt wurde.
- Eine Azure Container Registry (ACR) mit AcrPull-Rechten, die mitglieden AKS-Clustern gewährt werden.
Bringen Sie Ihren Anwendungsquellcode mit
Suchen Sie Ihren Azure Kubernetes Fleet Manager, und starten Sie die Konfiguration automatisierter Bereitstellungen.
- Suchen Sie im Azure-Portal in der oberen Suchleiste nach Kubernetes Fleet Manager .
- Wählen Sie kubernetes Flottenmanager in den Suchergebnissen aus.
- Wählen Sie Ihren Azure Kubernetes Fleet Manager aus der Ressourcenliste aus.
- Wählen Sie im Menü "Fleet Manager Service" unter "Flottenressourcen" die Option "Automatisierte Bereitstellungen" aus.
- Wählen Sie im oberen Menü +Erstellen aus . Wenn dies Ihre erste Bereitstellung ist, können Sie im Bereich der Bereitstellungsliste auch Erstellen auswählen.
Herstellen einer Verbindung mit dem Quellcode-Repository
Erstellen Sie einen Workflow, und autorisieren Sie ihn, um eine Verbindung mit dem gewünschten Quellcode-Repository und Branch herzustellen. Führen Sie die folgenden Details auf der Registerkarte "Repository " aus.
- Geben Sie einen aussagekräftigen Namen für den Workflow in das Feld " Workflowname " ein.
- Wählen Sie als Nächstes " Autorisieren des Zugriffs " aus, um einen Benutzer für GitHub zu autorisieren, um eine Liste von Repositorys abzurufen.
- Wählen Sie für Repositoryquelle eine der folgenden Optionen aus:
- Meine Repositorys für Repositorys, die der aktuell autorisierte GitHub-Benutzer besitzt oder;
- Alle Repositorys, auf die der aktuell autorisierte GitHub-Benutzer zugreifen kann. Sie müssen die Organisation auswählen, die das Repository besitzt.
- Wählen Sie das Repository und den Branch aus.
- Wählen Sie die Schaltfläche Weiter aus.
Angeben des Anwendungsimages und der Bereitstellungskonfiguration
Um eine Anwendung für die Ausführung auf Kubernetes vorzubereiten, müssen Sie sie in ein Containerimage integrieren, das Sie in einer Containerregistrierung speichern. Eine Dockerfile-Datei enthält Anweisungen zum Erstellen des Containerimages. Wenn Ihr Quellcode-Repository noch nicht über eine Dockerfile-Datei verfügt, können automatisierte Bereitstellungen eins für Sie generieren.
Wenn Ihr Code-Repository bereits über eine Dockerfile-Datei verfügt, können Sie es verwenden, um das Anwendungsimage zu erstellen.
- Wählen Sie Vorhandene Dockerfile für die Containerkonfiguration aus.
- Wählen Sie die Dockerfile aus Ihrem Repository aus.
- Geben Sie den Dockerfile-Buildkontext ein, um den Satz von Dateien und Verzeichnissen an den Buildprozess zu übergeben (in der Regel denselben Ordner wie die Dockerfile). Diese Dateien werden verwendet, um das Image zu erstellen, und sie sind im endgültigen Bild enthalten, es sei denn, sie werden durch Einschluss in eine
.dockerignoreDatei ignoriert. - Wählen Sie eine vorhandene Azure-Containerregistrierung aus. Diese Registrierung wird verwendet, um das integrierte Anwendungsimage zu speichern. Jeder AKS-Cluster, der die Anwendung empfangen kann, muss Berechtigungen für die
AcrPullRegistry erhalten. - Legen Sie den Namen des Azure-Containerregistrierungsimages fest. Sie müssen diesen Imagenamen in Ihren Kubernetes-Bereitstellungsmanifesten verwenden.
Auswählen der Kubernetes-Manifestkonfiguration
Eine Anwendung, die auf Kubernetes ausgeführt wird, besteht aus vielen Kubernetes-Grundtypenkomponenten. Diese Komponenten beschreiben, welches Containerimage verwendet werden soll, wie viele Replikate ausgeführt werden sollen, wenn eine öffentliche IP erforderlich ist, um die Anwendung verfügbar zu machen usw. Weitere Informationen finden Sie in der offiziellen Kubernetes-Dokumentation. Wenn Ihr Quellcode-Repository noch nicht über Kubernetes-Manifeste verfügt, können automatisierte Bereitstellungen diese für Sie generieren. Sie können auch ein vorhandenes Helmdiagramm auswählen.
Warnung
Wählen Sie weder die fleet-system Namespaces noch einen der fleet-member Namespaces aus, da dies interne Namespaces sind, die von Fleet Manager verwendet werden, und können nicht verwendet werden, um Ihre Anwendung zu platzieren.
- Verwenden vorhandener Kubernetes-Manifeste
- Generieren von Kubernetes-Manifesten
- Vorhandenes Helmdiagramm verwenden
Wenn Ihr Code-Repository bereits über ein Kubernetes-Manifest verfügt, können Sie es auswählen, um zu steuern, welche Workload von einer Clusterressourcenplatzierung bereitgestellt und konfiguriert wird.
- Wählen Sie Vorhandene Kubernetes-Manifestbereitstellungsdateien verwenden für die Bereitstellungsoptionen.
- Wählen Sie die Kubernetes-Manifestdatei oder den Ordner aus Ihrem Repository aus.
- Wählen Sie den vorhandenen Flotten-Manager-Namespace aus, um die Arbeitsauslastung einzustufen.
- Wählen Sie die Schaltfläche Weiter aus.
Überprüfen der Konfiguration
Überprüfen Sie die Konfiguration für die Repository-, Image- und Bereitstellungskonfiguration.
Wählen Sie "Weiter" aus, um den Prozess zu starten, der diese Aktionen ausführt:
- Erstellen Sie Verbundanmeldeinformationen, um die GitHub-Aktion zuzulassen:
- Übertragen Sie das erstellte Container-Image in die Azure-Containerregistrierung.
- Stellen Sie die Kubernetes-Manifeste im ausgewählten Namespace im Hubcluster des Flottenmanagers bereit.
- Erstellen Sie eine Pull-Anforderung im Code-Repository mit allen generierten Dateien und dem Workflow.
Die Einrichtung dauert ein paar Minuten, also navigieren Sie nicht von der Seite "Bereitstellung" weg.
Überprüfen und Zusammenführen einer Pullanforderung
Wenn die Bereitstellungsphase abgeschlossen ist, wählen Sie die Schaltfläche " Pullanforderung genehmigen " aus, um die generierte Pullanforderung in Ihrem Code-Repository zu öffnen.
Hinweis
Es gibt ein bekanntes Problem mit der Benennung der generierten Pullanforderung, bei der angegeben wird, dass sie in AKS bereitgestellt wird. Trotz dieses falschen Namens stellt der resultierende Workflow Ihre Arbeitsauslastung im Hubcluster des Flottenmanagers im ausgewählten Namespace bereit.
- Überprüfen Sie die Änderungen unter "Dateien geändert ", und nehmen Sie alle gewünschten Änderungen vor.
- Wählen Sie "Zusammenführen"-Pullanforderung aus, um die Änderungen in Ihrem Code-Repository zusammenzuführen.
Beim Zusammenführen der Änderung wird der GitHub Actions-Workflow ausgeführt, der Ihre Anwendung in einem Containerimage erstellt und in der ausgewählten Azure-Containerregistrierung speichert.
Überprüfen der generierten Ressourcen
Nachdem die Pipeline abgeschlossen wurde, können Sie das erstellte Containerimage im Azure-Portal überprüfen, indem Sie die von Ihnen konfigurierte Azure-Containerregistrierungsinstanz suchen und das Image-Repository öffnen.
Sie können auch die Konfiguration für die automatisierte Bereitstellung von Fleet Manager anzeigen. Durch Auswählen des Namens workflow wird GitHub Action in GitHub geöffnet.
Schließlich können Sie bestätigen, dass die erwarteten Kubernetes-Ressourcen auf dem Fleet Manager-Hubcluster ausgeführt werden.
az fleet get-credentials \
--resource-group ${GROUP} \
--name ${FLEET}
kubectl describe deployments virtual-worker --namespace=contoso-store
Die Ausgabe sieht in etwa wie folgt aus. Eine Replikazahl von 0 ist zu erwarten, da keine Workloads im Hubcluster des Flottenmanagers geplant sind. Stellen Sie sicher, dass die Image Eigenschaft auf das integrierte Image in Ihrer Azure-Containerregistrierung verweist.
Name: virtual-worker
Namespace: contoso-store
CreationTimestamp: Thu, 24 Apr 2025 01:56:49 +0000
Labels: workflow=actions.github.com-k8s-deploy
workflowFriendlyName=contoso-store-deploy
Annotations: <none>
Selector: app=virtual-worker
Replicas: 1 desired | 0 updated | 0 total | 0 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=virtual-worker
Containers:
virtual-worker:
Image: contoso03.azurecr.io/virtual-worker:latest
Port: <none>
Host Port: <none>
Limits:
cpu: 2m
memory: 20Mi
Requests:
cpu: 1m
memory: 1Mi
Environment:
MAKELINE_SERVICE_URL: http://makeline-service:3001
ORDERS_PER_HOUR: 100
Mounts: <none>
Volumes: <none>
Node-Selectors: kubernetes.io/os=linux
Tolerations: <none>
Events: <none>
Definieren der Clusterressourcenplatzierung
Während der Vorschau können Sie zum Konfigurieren der Platzierung Ihrer mehrstufigen Workload an Mitgliedsclustern die folgenden Schritte ausführen.
Erstellen Sie im Quellcode-Repository für Ihre Anwendung einen Ordner im Repositorystamm namens Fleet.
Erstellen Sie eine neue Datei
deploy-contoso-ns-two-regions.yamlim Flottenordner , und fügen Sie den angezeigten Inhalt hinzu. In diesem Beispiel wird dercontoso-storeNamespace in zwei Clustern bereitgestellt, die sich in zwei verschiedenen Azure-Regionen befinden müssen.apiVersion: placement.kubernetes-fleet.io/v1 kind: ClusterResourcePlacement metadata: name: distribute-virtual-worker-two-regions spec: resourceSelectors: - group: "" kind: Namespace version: v1 name: contoso-store policy: placementType: PickN numberOfClusters: 2 topologySpreadConstraints: - maxSkew: 1 topologyKey: region whenUnsatisfiable: DoNotScheduleÄndern Sie die GitHub Action-Workflowdatei, und fügen Sie einen Verweis auf die CRP-Datei hinzu.
DEPLOYMENT_MANIFEST_PATH: | ./virtual-worker.yaml ./fleet/deploy-contoso-ns-two-regions.yamlÜbernehmen Sie das neue CRP-Manifest und die aktualisierte GitHub Actions-Workflowdatei.
Überprüfen Sie, ob die Arbeitslast gemäß der in der CRP-Definition definierten Richtlinie platziert ist. Sie überprüfen dies entweder über das Azure-Portal oder
kubectlin der Befehlszeile.