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.
Azure Kubernetes Service (AKS) ist ein verwalteter Kubernetes-Dienst, mit dem Sie schnell Cluster bereitstellen und verwalten können. In diesem Artikel verwenden Sie das Azure CLI, um einen AKS-Cluster einzurichten, auf dem Windows Server-Container ausgeführt werden. Sie stellen auch eine ASP.NET-Beispielanwendung in einem Windows Server-Container für den Cluster bereit.
Hinweis
Um schnell mit der Bereitstellung eines AKS-Clusters zu beginnen, enthält dieser Artikel Schritte zum Bereitstellen eines Clusters mit Standardeinstellungen nur zu Evaluierungszwecken. Bevor Sie einen produktionsbereiten Cluster bereitstellen, empfehlen wir Ihnen, sich mit unserer Baselinereferenzarchitektur vertraut zu machen, um zu prüfen, inwiefern sie Ihren Geschäftsanforderungen entspricht.
Voraussetzungen
Für diese Schnellstartanleitung werden Grundkenntnisse in Bezug auf die Kubernetes-Konzepte vorausgesetzt. Weitere Informationen finden Sie unter Grundlegende Kubernetes-Konzepte für Azure Kubernetes Service (AKS).
- Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Um den Authentifizierungsprozess abzuschließen, führen Sie die in Ihrem Terminal angezeigten Schritte aus. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Für diesen Artikel ist mindestens Version 2.0.64 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
- Stellen Sie sicher, dass die Identität, die Sie zum Erstellen Ihres Clusters verwenden, über die erforderlichen Mindestberechtigungen verfügt. Weitere Informationen zu Zugriff und Identität für AKS finden Sie unter Zugriffs- und Identitätsoptionen für Azure Kubernetes Service (AKS).
- Wenn Sie über mehrere Azure-Abonnements verfügen, wählen Sie mithilfe des Befehls
az account setdie ID des Abonnements aus, in dem die Ressourcen fakturiert werden sollen. Weitere Informationen finden Sie unter Verwalten von Azure-Abonnementen – Azure CLI. - Wenn Sie
--os-sku Windows2025verwenden, müssen Sie dieaks-previewErweiterung installieren und das Vorschauflag registrieren. Die Mindestversion ist 18.0.0b40.
Installieren der aks-preview Erweiterung
Von Bedeutung
AKS-Vorschaufunktionen sind auf Selbstbedienungsbasis und freiwillig verfügbar. Vorschauversionen werden „im Istzustand“ und „wie verfügbar“ bereitgestellt und sind von den Service Level Agreements und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:
- Installieren Sie die Azure CLI-Speichererweiterung
aks-previewmit dem Befehlaz extension add.
az extension add --name aks-preview
- Führen Sie mit dem Befehl
az extension updateein Update auf die neueste Version der Erweiterung aus. Windows Server 2025 erfordert mindestens 18.0.0b40.
az extension update --name aks-preview
Registriere die AksWindows2025Preview-Feature-Flag
- Registrieren Sie das Featureflag
AksWindows2025Previewmithilfe des Befehls [az feature register][az-feature-register].
az feature register --name AksWindows2025Preview --namespace Microsoft.ContainerService
- Überprüfen Sie den Registrierungsstatus mithilfe des Befehls [
az feature show][az-feature-show]. Es dauert einige Minuten, bis der Status Registered (Registriert) angezeigt wird.
az feature show --name AksWindows2025Preview --namespace Microsoft.ContainerService
Wenn der Status Registered lautet, aktualisieren Sie die Registrierung des Ressourcenanbieters Microsoft.ContainerService mithilfe des Befehls [
az provider register][az-provider-register].az provider register --namespace Microsoft.ContainerService
Erstellen einer Ressourcengruppe
Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure-Ressourcen bereitgestellt und verwaltet werden. Wenn Sie eine Ressourcengruppe erstellen, müssen Sie einen Speicherort angeben. Hier werden die Metadaten der Ressourcengruppe gespeichert und Ihre Ressourcen in Azure ausgeführt, wenn Sie bei der Ressourcenerstellung keine andere Region angeben.
Erstellen Sie eine Ressourcengruppe mit dem Befehl
az group create. Im folgenden Beispiel wird eine Ressourcengruppe namens myResourceGroup im WestUS2-Standort erstellt.export RANDOM_SUFFIX=$(openssl rand -hex 3) export REGION="canadacentral" export MY_RESOURCE_GROUP_NAME="myAKSResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RESOURCE_GROUP_NAME --location $REGIONErgebnisse:
{ "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupxxxxx", "location": "WestUS2", "managedBy": null, "name": "myResourceGroupxxxxx", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
Erstellen eines AKS-Clusters
In diesem Abschnitt erstellen wir einen AKS-Cluster mit der folgenden Konfiguration:
- Der Cluster ist mit zwei Knoten konfiguriert, um zu gewährleisten, dass er zuverlässig funktioniert. Ein Knoten ist ein virtueller Azure-Computer (Virtual Machine, VM), der die Kubernetes-Knotenkomponenten und die Containerruntime ausführt.
- Die Parameter
--windows-admin-passwordund--windows-admin-usernamelegen die Administratoranmeldeinformationen für alle Windows Server-Knoten auf dem Cluster fest und müssen die Kennwortanforderungen von Windows Server erfüllen. - Der Knotenpool verwendet
VirtualMachineScaleSets.
Führen Sie die folgenden Schritte aus, um den AKS-Cluster mit Azure CLI zu erstellen:
Erstellen Sie einen Benutzernamen, der für die Administratoranmeldeinformationen für die Windows Server-Knoten in Ihrem Cluster verwendet wird.
export WINDOWS_USERNAME="winadmin"Erstellen Sie ein Kennwort für den Administrator-Benutzernamen, den Sie im vorherigen Schritt angelegt haben. Das Kennwort mindestens 14 Zeichen lang sein und den Komplexitätsvoraussetzungen von Windows Server-Kennwörtern entsprechen.
export WINDOWS_PASSWORD=$(echo "P@ssw0rd$(openssl rand -base64 10 | tr -dc 'A-Za-z0-9!@#$%^&*()' | cut -c1-6)")Erstellen Sie Ihren Cluster mithilfe des
az aks createBefehls und geben Sie die Parameter--windows-admin-usernameund--windows-admin-passwordan. Mit dem folgenden Beispielbefehl wird ein Cluster mithilfe der WerteWINDOWS_USERNAMEerstellt, die Sie in den vorherigen Befehlen mitWINDOWS_PASSWORDfestgelegt haben. Ein zufälliges Suffix wird an den Clusternamen zur Eindeutigkeit angefügt.export MY_AKS_CLUSTER="myAKSCluster$RANDOM_SUFFIX" az aks create \ --resource-group $MY_RESOURCE_GROUP_NAME \ --name $MY_AKS_CLUSTER \ --node-count 2 \ --enable-addons monitoring \ --generate-ssh-keys \ --windows-admin-username $WINDOWS_USERNAME \ --windows-admin-password $WINDOWS_PASSWORD \ --vm-set-type VirtualMachineScaleSets \ --network-plugin azureNach wenigen Minuten ist die Ausführung des Befehls abgeschlossen, und es werden Informationen zum Cluster im JSON-Format zurückgegeben. Gelegentlich kann die Bereitstellung des Clusters länger als ein paar Minuten dauern. Geben Sie der Bereitstellung bis zu 10 Minuten Zeit.
Falls Sie für das Kennwort einen Überprüfungsfehler erhalten und das von Ihnen festgelegte Kennwort die Längen- und Komplexitätsvoraussetzungen erfüllt, versuchen Sie, Ihre Ressourcengruppe in einer anderen Region zu erstellen. Versuchen Sie anschließend, den Cluster mit der neuen Ressourcengruppe zu erstellen.
Wenn Sie bei der Erstellung des Knotenpools keinen Administratorbenutzernamen und kein Kennwort angeben, wird der Benutzername auf azureuser und das Kennwort auf einen Zufallswert festgelegt. Weitere Informationen finden Sie unter Häufig gestellte Fragen zu Windows Server.
Sie können den Administratorbenutzernamen nicht ändern, aber Sie können das Administratorkennwort ändern, das Ihr AKS-Cluster für die Windows Server-Knoten verwendet, indem Sie
az aks updateverwenden. Weitere Informationen finden Sie unter Häufig gestellte Fragen zu Windows Server.Um einen AKS-Cluster auszuführen, der Knotenpools für Windows Server-Container unterstützt, muss Ihr Cluster eine Netzwerkrichtlinie verwenden, die das Azure CNI-Netzwerk-Plug-In (Erweitert) verwendet. Der Parameter
--network-plugin azuredient zum Angeben von Azure CNI.
Hinzufügen eines Knotenpools
Standardmäßig werden alle AKS-Cluster mit einem Knotenpool erstellt, der Linux-Container ausführen kann. Sie müssen einen Windows-Knotenpool hinzufügen, der Windows Server-Container zusammen mit dem Linux-Knotenpool ausführen kann. Um zu überprüfen, ob Sie über einen Windows-Knotenpool in Ihrem Cluster verfügen, können Sie die Knoten auf Ihrem Cluster mithilfe des kubectl get nodes -o wide Befehls anzeigen.
Um einen Windows-Node-Pool zu erstellen, müssen Sie einen unterstützten OsType und OsSku angeben. Verwenden Sie die Informationen in der folgenden Tabelle, um zu bestimmen, welche für Ihren Cluster geeignet ist:
OsType |
OsSku |
Standard | Unterstützte K8s-Versionen | Einzelheiten |
|---|---|---|---|---|
windows |
Windows2025 |
Befindet sich aktuell in der Vorschauversion. Nicht Standard. | 1,32+ | Aktualisierte Standardwerte: Containerd 2.0, Generation 2-Image wird standardmäßig verwendet. |
windows |
Windows2022 |
Standardeinstellung in K8s 1.25-1.35 | In K8s 1.36+ nicht verfügbar | Wird im März 2027 außer Betrieb genommen. Aktualisierte Standardwerte: FIPS ist standardmäßig aktiviert. |
windows |
Windows2019 |
Standard in K8s Version 1.24 und darunter | In K8s 1.33+ nicht verfügbar | Geht im März 2026 in den Ruhestand. |
Windows Server 2022 ist das Standardbetriebssystem für Kubernetes-Versionen 1.25-1.35. Für frühere Versionen ist das Standardbetriebssystem Windows Server 2019. Wenn Sie keine bestimmte Betriebssystem-SKU angeben, erstellt Azure den neuen Knotenpool mit der Standard-SKU für die vom Cluster verwendete Kubernetes-Version.
Hinweis
- Windows Server 2019 wird am 1. März 2026 eingestellt. Nach diesem Datum produziert AKS keine neuen Knotenimages mehr oder stellt Sicherheitspatches bereit. Nach diesem Datum können Sie keine neuen Knotenpools mit Windows Server 2019 in jeder Kubernetes-Version erstellen. Alle vorhandenen Knotenpools mit Windows Server 2019 werden nicht unterstützt. Windows Server 2019 wird in Kubernetes, Version 1.33 und höher, nicht unterstützt. Ab dem 1. April 2027 entfernt AKS alle vorhandenen Knotenimages für Windows Server 2019, was bedeutet, dass Skalierungsvorgänge fehlschlagen.
- Windows Server 2022 wird am 15. März 2027 eingestellt. Nach diesem Datum produziert AKS keine neuen Knotenimages mehr oder stellt Sicherheitspatches bereit. Nach diesem Datum können Sie keine neuen Knotenpools mit Windows Server 2022 in jeder Kubernetes-Version erstellen. Alle vorhandenen Knotenpools mit Windows Server 2022 werden nicht unterstützt. Windows Server 2022 wird in Kubernetes, Version 1.36 und höher, nicht unterstützt. Ab dem 1. April 2028 entfernt AKS alle vorhandenen Knotenimages für Windows Server 2022, was bedeutet, dass Skalierungsvorgänge fehlschlagen.
Weitere Informationen finden Sie in den AKS-Versionshinweisen. Weitere Informationen, um über die neuesten Windows Server-Betriebssystemversionen auf dem neuesten Stand zu bleiben, und zu unserer Roadmap, was für den Support in AKS geplant ist, finden Sie in unserer öffentlichen AKS-Roadmap.
Fügen Sie einen Windows-Nodepool mithilfe des
az aks nodepool add-Befehls mit den angegebenenOsType- undOsSku-Parametern hinzu. Wenn Sie keine bestimmte Betriebssystem-SKU angeben, erstellt Azure den neuen Knotenpool mit der Standard-SKU für die vom Cluster verwendete Kubernetes-Version.az aks nodepool add \ --resource-group $MY_RESOURCE_GROUP_NAME \ --cluster-name $MY_AKS_CLUSTER \ --os-type Windows \ --os-sku Windows2022 \ --name npwin \ --node-count 1Dieser Befehl erstellt einen neuen Knotenpool namens npwin und fügt ihn zu myAKSCluster hinzu. Der Befehl verwendet auch das Standardsubnetz im Standard-VNet, das beim Ausführen von
az aks createerstellt wurde.
Herstellen einer Verbindung mit dem Cluster
Sie verwenden kubectl, den Kubernetes-Befehlszeilenclient, um Ihre Kubernetes-Cluster zu verwalten. Bei Verwendung von Azure Cloud Shell ist kubectl bereits installiert. Wenn Sie lokal installieren und ausführen kubectl möchten, verwenden Sie den az aks install-cli Befehl.
Mit dem Befehl
kubectlkönnen Sieaz aks get-credentialsfür die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren. Mit diesem Befehl werden die Anmeldeinformationen heruntergeladen, und die Kubernetes-Befehlszeilenschnittstelle wird für deren Verwendung konfiguriert.az aks get-credentials --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_AKS_CLUSTERÜberprüfen Sie die Verbindung zu Ihrem Cluster mit dem Befehl
kubectl get, der eine Liste der Clusterknoten zurückgibt.kubectl get nodes -o wideDie folgende Beispielausgabe zeigt alle Knoten im Cluster. Stellen Sie sicher, dass der Status aller Knoten Bereit ist:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME aks-nodepool1-20786768-vmss000000 Ready agent 22h v1.27.7 10.224.0.4 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aks-nodepool1-20786768-vmss000001 Ready agent 22h v1.27.7 10.224.0.33 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aksnpwin000000 Ready agent 20h v1.27.7 10.224.0.62 <none> Windows Server 2022 Datacenter 10.0.20348.2159 containerd://1.6.21+azureHinweis
Die Containerruntime für jeden Knotenpool wird unter CONTAINER-RUNTIMEangezeigt. Die Werte für die Containerruntime beginnen mit
containerd://, was bedeutet, dass jeweilscontainerdfür die Containerruntime verwendet wird.
Bereitstellen der Anwendung
Eine Kubernetes-Manifestdatei definiert einen gewünschten Zustand (Desired State) für den Cluster – also beispielsweise, welche Containerimages ausgeführt werden sollen. In diesem Artikel verwenden Sie ein Manifest, um alle Objekte zu erstellen, die für die Ausführung der ASP.NET-Beispielanwendung in einem Windows Server-Container benötigt werden. Dieses Manifest beinhaltet eine Kubernetes-Bereitstellung für die ASP.NET-Beispielanwendung und einen externen Kubernetes-Dienst für den Zugriff auf die Anwendung über das Internet.
Die ASP.NET-Beispielanwendung wird als Teil des .NET Framework-Beispiels bereitgestellt und in einem Windows Server-Container ausgeführt. AKS verlangt, dass Windows Server-Container auf Images von Windows Server 2019 oder höher basieren. Mit der Kubernetes-Manifestdatei muss auch eine Knotenauswahl definiert werden. So wird Ihrem AKS-Cluster mitgeteilt, dass der Pod Ihrer ASP.NET-Beispielanwendung auf einem Knoten ausgeführt werden soll, für den die Ausführung von Windows Server-Containern möglich ist.
Erstellen Sie eine Datei namens
sample.yamlund kopieren Sie sie in der folgenden YAML-Definition:apiVersion: apps/v1 kind: Deployment metadata: name: sample labels: app: sample spec: replicas: 1 template: metadata: name: sample labels: app: sample spec: nodeSelector: "kubernetes.io/os": windows containers: - name: sample image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp resources: limits: cpu: 1 memory: 800M ports: - containerPort: 80 selector: matchLabels: app: sample --- apiVersion: v1 kind: Service metadata: name: sample spec: type: LoadBalancer ports: - protocol: TCP port: 80 selector: app: sampleEine Aufschlüsselung der YAML-Manifestdateien finden Sie unter Bereitstellungen und YAML-Manifeste.
Wenn Sie die YAML-Datei lokal erstellen und speichern, können Sie die Manifestdatei in Ihr Standardverzeichnis in CloudShell hochladen, indem Sie die Schaltfläche Dateien hochladen/herunterladen auswählen und die Datei aus Ihrem lokalen Dateisystem auswählen.
Stellen Sie die Anwendung über den Befehl „
kubectl apply“ bereit, und geben Sie den Namen Ihres YAML-Manifests an.kubectl apply -f sample.yamlIn der folgende Beispielausgabe sind die erfolgreich erstellten Bereitstellungen und Dienste aufgeführt:
{ "deployment.apps/sample": "created", "service/sample": "created" }
Testen der Anwendung
Wenn die Anwendung ausgeführt wird, macht ein Kubernetes-Dienst das Anwendungs-Front-End im Internet verfügbar. Dieser Vorgang kann einige Minuten dauern. Gelegentlich kann die Bereitstellung des Diensts länger als ein paar Minuten dauern. Geben Sie der Bereitstellung bis zu 10 Minuten Zeit.
Überprüfen Sie den Status der bereitgestellten Pods mithilfe des Befehls
kubectl get pods. Stellen Sie sicher, dass alle Pods den StatusRunninghaben, bevor Sie fortfahren.kubectl get podsVerwenden Sie zum Überwachen des Fortschritts den Befehl
kubectl get servicemit dem Argument--watch.while true; do export EXTERNAL_IP=$(kubectl get service sample -o jsonpath="{.status.loadBalancer.ingress[0].ip}" 2>/dev/null) if [[ -n "$EXTERNAL_IP" && "$EXTERNAL_IP" != "<pending>" ]]; then kubectl get service sample break fi echo "Still waiting for external IP assignment..." sleep 5 doneZunächst zeigt die Ausgabe die EXTERNAL-IP für den Beispieldienst als ausstehend an:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer xx.xx.xx.xx pending xx:xxxx/TCP 2mSobald die externe IP-Adresse (EXTERNAL-IP) von pending (ausstehend) in eine tatsächliche öffentliche IP-Adresse geändert wurde, verwenden Sie
CTRL-C, um diekubectl-Überwachung zu beenden.Die folgende Beispielausgabe zeigt eine gültige öffentliche IP-Adresse, die dem Dienst zugewiesen ist:
{ "NAME": "sample", "TYPE": "LoadBalancer", "CLUSTER-IP": "10.0.37.27", "EXTERNAL-IP": "52.179.23.131", "PORT(S)": "80:30572/TCP", "AGE": "2m" }Sehen Sie sich die Beispiel-App in Aktion an, indem Sie nach ein paar Minuten einen Webbrowser für die externe IP-Adresse Ihres Diensts öffnen.
Nächste Schritte
In dieser Schnellstartanleitung haben Sie einen Kubernetes-Cluster und eine ASP.NET-Beispielanwendung in einem Windows Server-Container bereitgestellt. Diese Beispielanwendung dient nur zu Demozwecken und stellt nicht alle bewährten Methoden für Kubernetes-Anwendungen dar. Anleitungen zum Erstellen vollständiger Lösungen mit AKS für die Produktion finden Sie unter AKS-Lösungsleitfaden.
Weitere Informationen zu AKS sowie ein vollständiges Beispiel vom Code bis zur Bereitstellung finden Sie im Kubernetes-Clustertutorial.