(VERALTET) Bereitstellen eines Kubernetes-Clusters für Windows-Container
Warnung
Azure Container Service (ACS) wird ausgemustert. Für ACS werden keine neuen Features oder Funktionen mehr hinzugefügt. Sämtliche APIs, Portalfunktionen, CLI-Befehle und Dokumentationen werden als veraltet gekennzeichnet.
2017 wurde Azure Kubernetes Service (AKS) eingeführt, um die Verwaltung, die Bereitstellung und den Betrieb von Kubernetes zu vereinfachen. Falls Sie den Kubernetes-Orchestrator verwenden, migrieren Sie bitte bis spätestens 31. Januar 2020 zu Azure Kubernetes Service. Informationen zu den ersten Schritten finden Sie unter Migration von Azure Container Service (ACS) zu Azure Kubernetes Service (AKS).
Weitere Informationen finden Sie unter Einstellung von Azure Container Service am 31. Januar 2020.
Die Azure CLI dient zum Erstellen und Verwalten von Azure-Ressourcen über die Befehlszeile oder mit Skripts. In dieser Anleitung wird die Bereitstellung eines Kubernetes-Clusters in Azure Container Service über die Azure-Befehlszeilenschnittstelle beschrieben. Nach dem Bereitstellen des Clusters verbinden Sie diesen mit dem Kubernetes-Befehlszeilentool kubectl
und stellen dann den ersten Windows-Container bereit.
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Verwenden von Azure Cloud Shell
Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.
Starten von Azure Cloud Shell:
Option | Beispiel/Link |
---|---|
Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren. Durch die Auswahl von Ausprobieren wird der Code nicht automatisch in Cloud Shell kopiert. | ![]() |
Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. | ![]() |
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. | ![]() |
Ausführen des Codes in diesem Artikel in Azure Cloud Shell:
Starten Sie Cloud Shell.
Wählen Sie die Schaltfläche Kopieren für einen Codeblock, um den Code zu kopieren.
Fügen Sie den Code mit STRGUMSCHALTV unter Windows und Linux oder CmdUMSCHALTV unter macOS in die Cloud Shell-Sitzung ein.
Drücken Sie die EINGABETASTE, um den Code auszuführen.
Wenn Sie die CLI lokal installieren und verwenden möchten, müssen Sie für diesen Schnellstart die Azure CLI-Version 2.0.4 oder höher ausführen. Führen Sie az --version
aus, um die Version zu ermitteln. Installations- und Upgradeinformationen finden Sie bei Bedarf unter Installieren von Azure CLI.
Hinweis
Die Unterstützung für Windows-Container in Kubernetes in Azure Container Service befindet sich in der Vorschauphase.
Erstellen einer Ressourcengruppe
Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure-Ressourcen bereitgestellt und verwaltet werden.
Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus.
az group create --name myResourceGroup --location eastus
Erstellen eines Kubernetes-Clusters
Erstellen Sie mit dem Befehl az acs create einen Kubernetes-Cluster in Azure Container Service.
Im folgenden Beispiel wird ein Cluster mit dem Namen myK8sCluster mit einem Linux-Masterknoten und zwei Windows-Agentknoten erstellt. In diesem Beispiel werden die für die Verbindung mit dem Linux-Masterknoten erforderlichen SSH-Schlüssel erstellt. In dem Beispiel wird azureuser als Administratorbenutzername und myPassword12 als Kennwort für die Windows-Knoten verwendet. Aktualisieren Sie diese Werte auf andere, für Ihre Umgebung geeignete Werte.
az acs create --orchestrator-type=kubernetes \
--resource-group myResourceGroup \
--name=myK8sCluster \
--agent-count=2 \
--generate-ssh-keys \
--windows --admin-username azureuser \
--admin-password myPassword12
Nach einigen Minuten ist der Befehl abgeschlossen, und es werden Informationen zu der Bereitstellung angezeigt.
Installieren von kubectl
Zum Herstellen der Verbindung mit dem Kubernetes-Cluster auf Ihrem Clientcomputer verwenden Sie kubectl
(den Kubernetes-Befehlszeilenclient).
Bei Verwendung von Azure Cloud Shell ist kubectl
bereits installiert. Wenn Sie ihn lokal installieren möchten, verwenden Sie den Befehl az acs kubernetes install-cli.
Im folgenden Azure CLI-Beispiel wird kubectl
in Ihrem System installiert. Führen Sie diesen Befehl unter Windows als Administrator aus.
az acs kubernetes install-cli
Verbinden mit kubectl
Führen Sie den Befehl az acs kubernetes get-credentials aus, um kubectl
für die Verbindung mit dem Kubernetes-Cluster zu konfigurieren. Im folgenden Beispiel wird die Clusterkonfiguration für den Kubernetes-Cluster heruntergeladen.
az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster
Um die Verbindung zwischen dem Cluster und Ihrem Computer zu überprüfen, führen Sie folgenden Befehl aus:
kubectl get nodes
kubectl
listet den Master- und die Agentknoten auf.
NAME STATUS AGE VERSION
k8s-agent-98dc3136-0 Ready 5m v1.5.3
k8s-agent-98dc3136-1 Ready 5m v1.5.3
k8s-master-98dc3136-0 Ready,SchedulingDisabled 5m v1.5.3
Bereitstellen eines Windows IIS-Containers
Sie können einen Docker-Container in einem Kubernetes-Pod ausführen, der einen oder mehrere Container enthält.
In diesem einfachen Beispiel wird mithilfe einer JSON-Datei ein Microsoft-Internetinformationsdienst-Container (IIS) angegeben und dann mit dem Befehl kubctl apply
der Pod erstellt.
Erstellen Sie eine lokale Datei mit dem Namen iis.json
, und kopieren Sie den folgenden Text. Diese Datei weist Kubernetes an, IIS unter Windows Server 2016 Nano Server mithilfe eines öffentlichen Containerimages von Docker Hub auszuführen. Der Container verwendet Port 80. Zunächst kann auf ihn aber nur innerhalb des Clusternetzwerks zugegriffen werden.
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "iis",
"labels": {
"name": "iis"
}
},
"spec": {
"containers": [
{
"name": "iis",
"image": "microsoft/iis:nanoserver",
"ports": [
{
"containerPort": 80
}
]
}
],
"nodeSelector": {
"beta.kubernetes.io/os": "windows"
}
}
}
Geben Sie zum Starten des Pods Folgendes ein:
kubectl apply -f iis.json
Geben Sie zum Nachverfolgen des Bereitstellungstyps Folgendes ein:
kubectl get pods
Während der Bereitstellung des Pods lautet der Status ContainerCreating
. Es kann einige Minuten dauern, bis der Container in den Status Running
wechselt.
NAME READY STATUS RESTARTS AGE
iis 1/1 Running 0 32s
Anzeigen der IIS-Willkommensseite
Geben Sie den folgenden Befehl ein, um den Pod mit einer öffentlichen IP-Adresse global verfügbar zu machen:
kubectl expose pods iis --port=80 --type=LoadBalancer
Dieser Befehl bewirkt, dass Kubernetes einen Dienst und eine Azure Load Balancer-Regel mit einer öffentlichen IP-Adresse für den Dienst erstellt.
Führen Sie den folgenden Befehl aus, um den Status des Diensts anzuzeigen.
kubectl get svc
Zunächst wird die IP-Adresse als pending
angezeigt. Nach ein paar Minuten ist die externe IP-Adresse des iis
-Pods festgelegt:
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.0.0.1 <none> 443/TCP 21h
iis 10.0.111.25 13.64.158.233 80/TCP 22m
Sie können die IIS-Standardwillkommensseite unter der externen IP-Adresse in einem Webbrowser Ihrer Wahl anzeigen:
Löschen von Clustern
Wenn der Cluster nicht mehr benötigt wird, können Sie mit dem Befehl az group delete die Ressourcengruppe, den Containerdienst und alle zugehörigen Ressourcen entfernen.
az group delete --name myResourceGroup
Nächste Schritte
In diesem Schnellstart haben Sie einen Kubernetes-Cluster bereitgestellt, mit kubectl
verbunden und einen Pod mit einem IIS-Container bereitgestellt. Weitere Informationen zu Azure Container Service erhalten Sie, wenn Sie mit dem Kubernetes-Tutorial fortfahren.