(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, erstellen Sie ein kostenloses Konto, 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. Beispiel für „Testen Sie es.“ für Azure Cloud Shell
Rufen Sie https://shell.azure.com auf, oder wählen Sie die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. Starten von Cloud Shell in einem neuen Fenster
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. Cloud Shell-Schaltfläche im Azure-Portal

Ausführen des Codes in diesem Artikel in Azure Cloud Shell:

  1. Starten Sie Cloud Shell.

  2. Wählen Sie die Schaltfläche Kopieren für einen Codeblock, um den Code zu kopieren.

  3. Fügen Sie den Code mit STRG+UMSCHALT+V unter Windows und Linux oder Cmd+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.

  4. 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 finden. 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:

Abbildung: Navigieren zu IIS

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.