Herstellen einer RDP-Verbindung mit Windows Server-Knoten in Azure Kubernetes Service-Clustern (AKS) zur Wartung oder Problembehandlung
Während des Lebenszyklus des Azure Kubernetes Service-Clusters (AKS) müssen Sie möglicherweise auf einen AKS-Windows Server-Knoten zugreifen. Dieser Zugriff kann zur Wartung, Protokollsammlung oder für andere Vorgänge der Problembehandlung erforderlich sein. Sie können auf den AKS-Windows Server-Knoten über RDP zugreifen. Aus Sicherheitsgründen werden die AKS-Knoten nicht im Internet verfügbar gemacht.
Wenn Sie alternativ per SSH auf Ihre AKS Windows Server-Knoten zugreifen möchten, benötigen Sie Zugriff auf das gleiche Schlüsselpaar, das bei der Erstellung des Clusters verwendet wurde. Befolgen Sie die Schritte unter Zugreifen per SSH auf Azure Kubernetes Service-Clusterknoten (AKS)
In diesem Artikel wird gezeigt, wie Sie eine RDP-Verbindung mit einem AKS-Knoten über die privaten IP-Adressen erstellen.
Voraussetzungen
Es wird vorausgesetzt, dass Sie über einen AKS-Cluster mit einem Windows Server-Knoten verfügen. Wenn Sie einen AKS-Cluster benötigen, lesen Sie den Artikel Erstellen eines Windows Server-Containers in einem AKS-Cluster (Azure Kubernetes Service) mit der Azure-Befehlszeilenschnittstelle. Sie benötigen Windows-Administratorbenutzernamen und -kennwort für den Windows Server-Knoten, bei dem Sie ein Problem behandeln möchten. Sie benötigen auch einen RDP-Client wie z. B. Microsoft Remotedesktop.
Wenn Sie das Kennwort zurücksetzen müssen, verwenden Sie az aks update
, um das Kennwort zu ändern.
az aks update --resource-group myResourceGroup --name myAKSCluster --windows-admin-password $WINDOWS_ADMIN_PASSWORD
Wenn Sie den Benutzernamen und das Kennwort zurücksetzen müssen, finden Sie weitere Informationen unter Zurücksetzen von Remotedesktopdienste oder dem zugehörigen Administratorkennwort auf einer Windows-VM.
Außerdem muss mindestens die Version 2.0.61 der Azure CLI installiert und konfiguriert sein. Führen Sie az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
Bereitstellen eines virtuellen Computers in dem gleichen Subnetz, in dem sich Ihr Cluster befindet
Die Windows Server-Knoten Ihres AKS-Clusters haben keine IP-Adressen für externen Zugriff. Um eine RDP-Verbindung herzustellen, können Sie einen virtuellen Computer mit einer öffentlich zugänglichen IP-Adresse in dem gleichen Subnetz bereitstellen, in dem sich Ihre Windows Server-Knoten befinden.
Im folgenden Beispiel wird eine VM mit dem Namen myVM in der Ressourcengruppe myResourceGroup erstellt.
Sie müssen die von Ihrem Windows Server-Knotenpool verwendete Subnetz-ID ermitteln und Folgendes abfragen:
- Die Knotenressourcengruppe des Clusters
- Das virtuelle Netzwerk
- Den Namen des Subnetzes
- Die Subnetz-ID
CLUSTER_RG=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv)
VNET_NAME=$(az network vnet list --resource-group $CLUSTER_RG --query [0].name -o tsv)
SUBNET_NAME=$(az network vnet subnet list --resource-group $CLUSTER_RG --vnet-name $VNET_NAME --query [0].name -o tsv)
SUBNET_ID=$(az network vnet subnet show --resource-group $CLUSTER_RG --vnet-name $VNET_NAME --name $SUBNET_NAME --query id -o tsv)
Nachdem Sie nun über SUBNET_ID verfügen, führen Sie den folgenden Befehl im gleichen Azure Cloud Shell-Fenster aus, um den virtuellen Computer zu erstellen:
PUBLIC_IP_ADDRESS="myVMPublicIP"
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image win2019datacenter \
--admin-username azureuser \
--admin-password {admin-password} \
--subnet $SUBNET_ID \
--nic-delete-option delete \
--os-disk-delete-option delete \
--nsg "" \
--public-ip-address $PUBLIC_IP_ADDRESS \
--query publicIpAddress -o tsv
Die folgende Beispielausgabe zeigt, dass der virtuelle Computer erfolgreich erstellt wurde, und zeigt die öffentliche IP-Adresse des virtuellen Computers an.
13.62.204.18
Notieren Sie sich die öffentliche IP-Adresse des virtuellen Computers. Sie verwenden diese Adresse in einem späteren Schritt.
Zulassen des Zugriffs auf den virtuellen Computer
Subnetze mit AKS-Knotenpools werden standardmäßig mit NSGs (Netzwerksicherheitsgruppen) geschützt. Um Zugriff auf den virtuellen Computer zu erhalten, müssen Sie den Zugriff in der NSG aktivieren.
Hinweis
Die NSGs werden vom AKS-Dienst gesteuert. Alle an der NSG vorgenommenen Änderungen werden jederzeit von der Steuerungsebene überschrieben.
Rufen Sie zunächst die Ressourcengruppe und den Namen der NSG ab, der die Regel hinzugefügt werden soll:
CLUSTER_RG=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv)
NSG_NAME=$(az network nsg list --resource-group $CLUSTER_RG --query [].name -o tsv)
Erstellen Sie dann die NSG-Regel:
az network nsg rule create \
--name tempRDPAccess \
--resource-group $CLUSTER_RG \
--nsg-name $NSG_NAME \
--priority 100 \
--destination-port-range 3389 \
--protocol Tcp \
--description "Temporary RDP access to Windows nodes"
Abrufen der Knotenadresse
Verwenden Sie zum Verwalten eines Kubernetes-Clusters den Kubernetes-Befehlszeilenclient kubectl. Bei Verwendung von Azure Cloud Shell ist kubectl
bereits installiert. Verwenden Sie für die lokale Installation von kubectl
den Befehl az aks install-cli:
az aks install-cli
Mit dem Befehl az aks get-credentials können Sie kubectl
fü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 myResourceGroup --name myAKSCluster
Listen Sie mithilfe des Befehls kubectl get die interne IP-Adresse der Windows Server-Knoten auf:
kubectl get nodes -o wide
Die folgende Beispielausgabe zeigt die internen IP-Adressen aller Knoten im Cluster – einschließlich der Windows Server-Knoten.
$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
aks-nodepool1-42485177-vmss000000 Ready agent 18h v1.12.7 10.240.0.4 <none> Ubuntu 16.04.6 LTS 4.15.0-1040-azure docker://3.0.4
aksnpwin000000 Ready agent 13h v1.12.7 10.240.0.67 <none> Windows Server Datacenter 10.0.17763.437
Notieren Sie sich zur Problembehandlung die interne IP-Adresse des Windows Server-Knotens. Sie verwenden diese Adresse in einem späteren Schritt.
Herstellen einer Verbindung mit dem virtuellen Computer und Knoten
Stellen Sie mit einem RDP-Client wie z.B. Microsoft-Remotedesktop eine Verbindung mit der öffentlichen IP-Adresse des virtuellen Computers her, den Sie zuvor erstellt haben.
Nachdem Sie eine Verbindung zu Ihrer VM hergestellt haben, stellen Sie mithilfe eines RDP-Clients von Ihrer VM aus eine Verbindung zur internen IP-Adresse des Windows Server-Knotens her, für den Sie eine Fehlersuche durchführen möchten.
Sie sind jetzt mit Ihrem Windows Server-Knoten verbunden.
Sie können nun alle Befehle zur Problembehandlung im CMD-Fenster ausführen. Da Windows Server-Knoten Windows Server Core verwenden, gibt es keine vollständige GUI oder andere GUI-Tools, wenn Sie per RDP eine Verbindung mit einem Windows Server-Knoten herstellen.
Entfernen des RDP-Zugriffs
Abschließend beenden Sie die RDP-Verbindung mit dem Windows Server-Knoten und dann die RDP-Sitzung mit dem virtuellen Computer. Nachdem Sie beide RDP-Sitzungen beendet haben, löschen Sie den virtuellen Computer mit dem Befehl az vm delete:
# Delete the virtual machine
az vm delete \
--resource-group myResourceGroup \
--name myVM
Löschen Sie die öffentliche IP-Adresse, die dem virtuellen Computer zugeordnet ist:
az network public-ip delete \
--resource-group myResourceGroup \
--name $PUBLIC_IP_ADDRESS
Löschen Sie die NSG-Regel:
CLUSTER_RG=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv)
NSG_NAME=$(az network nsg list --resource-group $CLUSTER_RG --query [].name -o tsv)
az network nsg rule delete \
--resource-group $CLUSTER_RG \
--nsg-name $NSG_NAME \
--name tempRDPAccess
Verbinden mit Azure Bastion
Alternativ können Sie auch Azure Bastion verwenden, um eine Verbindung mit Ihrem Windows Server-Knoten herzustellen.
Bereitstellen von Azure Bastion
Um Azure Bastion bereitzustellen, müssen Sie das virtuelle Netzwerk finden, mit dem Ihr AKS-Cluster verbunden ist.
- Wechseln Sie im Azure-Portal zu Virtuelle Netzwerke. Wählen Sie das virtuelle Netzwerk aus, mit dem Ihr AKS-Cluster verbunden ist.
- Wählen Sie unter Einstellungen entsprechend Bastion und dann Bastion bereitstellen aus. Warten Sie, bis der Vorgang abgeschlossen ist, bevor Sie mit dem nächsten Schritt fortfahren.
Herstellen einer Verbindung mit Ihren Windows Server-Knoten mithilfe von Azure Bastion
Wechseln Sie zu der Knotenressourcengruppe des AKS-Clusters. Führen Sie den folgenden Befehl in der Azure Cloud Shell aus, um den Namen Ihrer Knotenressourcengruppe abzurufen:
az aks show --name myAKSCluster --resource-group myResourceGroup --query 'nodeResourceGroup' -o tsv
- Wählen Sie Übersicht und dann Ihre VM-Skalierungsgruppe des Windows-Knotenpools aus.
- Klicken Sie unter Einstellungen auf Instanzen. Wählen Sie einen Windows-Serverknoten aus, mit dem Sie eine Verbindung herstellen möchten.
- Wählen Sie im Abschnitt Support und Problembehandlung die Option Bastion aus.
- Geben Sie die Anmeldeinformationen ein, die Sie festgelegt haben, als der AKS-Cluster erstellt wurde. Wählen Sie Verbinden.
Sie können nun alle Befehle zur Problembehandlung im CMD-Fenster ausführen. Da Windows Server-Knoten Windows Server Core verwenden, gibt es keine vollständige GUI oder andere GUI-Tools, wenn Sie per RDP eine Verbindung mit einem Windows Server-Knoten herstellen.
Hinweis
Wenn Sie das Terminalfenster schließen, drücken Sie STRG+ALT+ENDE, wählen Task-Manager, Weitere Details, Datei und Neue Aufgabe ausführen aus und geben cmd.exe ein, um ein anderes Terminal zu öffnen. Sie können sich auch abmelden und die Verbindung mit Bastion neu herstellen.
Entfernen des Zugriffs auf Bastion
Wenn Sie fertig sind, beenden Sie die Bastion-Sitzung und entfernen die Bastion-Ressource.
- Wechseln Sie im Azure-Portal zu Bastion, und wählen Sie die von Ihnen erstellte Bastion-Ressource aus.
- Wählen Sie oben auf der Seite Löschen aus. Warten Sie, bis der Vorgang abgeschlossen ist, bevor Sie mit dem nächsten Schritt fortfahren.
- Wechseln Sie im Azure-Portal zu Virtuelle Netzwerke. Wählen Sie das virtuelle Netzwerk aus, mit dem Ihr AKS-Cluster verbunden ist.
- Wählen Sie unter Einstellungen die Option Subnetz aus, und löschen Sie das Subnetz AzureBastionSubnet, das für die Bastion-Ressource erstellt wurde.
Nächste Schritte
Wenn Sie weitere Problembehandlungsdaten benötigen, können Sie die primären Kubernetes-Knotenprotokolle anzeigen oder Azure Monitor verwenden.
Azure Kubernetes Service