Подключение по протоколу RDP к узлам кластера Службы Azure Kubernetes (AKS) Windows Server для обслуживания или устранения неполадок
На протяжении жизненного цикла кластера Службы Azure Kubernetes (AKS) вам может потребоваться доступ к узлу AKS Windows Server. Этот доступ используется для обслуживания, сбора журналов или других операций по устранению неполадок. Доступ к узлам AKS Windows Server можно получить с помощью протокола удаленного рабочего стола (RDP). В целях безопасности узлы AKS недоступны через Интернет.
Кроме того, если вы хотите использовать SSH к узлам WINDOWS Server AKS, вам потребуется доступ к той же паре ключей, которая использовалась во время создания кластера. Следуйте инструкциям Входа через SSH в узлы кластера Службы Azure Kubernetes (AKS).
В этой статье показано, как создать RDP-подключение к узлу AKS с использованием его частного IP-адреса.
Подготовка к работе
В этой статье предполагается, что у вас есть кластер AKS с узлом Windows Server. Если вам требуется кластер AKS, см. статью о создании кластера AKS с контейнером Windows с помощью Azure CLI. Также необходимо имя пользователя и пароль администратора Windows для узла Windows Server, для которого требуется устранить неполадки. Также вам потребуется клиент RDP, например Удаленный рабочий стол (Майкрософт).
При необходимости смены пароля используйте az aks update
.
az aks update --resource-group myResourceGroup --name myAKSCluster --windows-admin-password $WINDOWS_ADMIN_PASSWORD
Если необходимо сбросить имя пользователя и пароль, см. раздел "Сброс служб удаленных рабочих столов" или его пароль администратора на виртуальной машине Windows.
Кроме того, нужно установить и настроить Azure CLI версии 2.0.61 или более поздней. Чтобы узнать версию, выполните команду az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
Развертывание виртуальной машины в одинаковой с кластером подсети
Узлы Windows Server кластера AKS не имеют IP-адресов, доступных из внешней сети. Чтобы создать RDP-подключение, можно развернуть виртуальную машину с общедоступным IP-адресом в той же подсети, что и узлы Windows Server.
В следующем примере создается виртуальная машина с именем myVM в группе ресурсов myResourceGroup.
Необходимо получить идентификатор подсети, используемый пулом узлов Windows Server, и запросить:
- Группа ресурсов узла кластера
- Виртуальная сеть
- Имя подсети
- Идентификатор подсети
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)
Теперь, когда у вас есть идентификатор SUBNET_ID, выполните следующую команду в том же окне Azure Cloud Shell, чтобы создать виртуальную машину:
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
Следующий пример выходных данных показывает, что виртуальная машина была успешно создана. Также он отображает общедоступный IP-адрес виртуальной машины.
13.62.204.18
Запишите общедоступный IP-адрес виртуальной машины. Этот адрес будет использоваться в дальнейшем.
Разрешение доступа к виртуальной машине
Подсети пула узлов AKS по умолчанию защищены группами безопасности сети. Чтобы получить доступ к виртуальной машине, необходимо включить доступ в NSG.
Примечание.
Группы безопасности сети управляются службой AKS. Любые изменения, внесенные в группу безопасности сети, будут в любой момент перезаписаны на уровне управления.
Сначала получите группу ресурсов и имя NSG, к которой нужно добавить правило:
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)
Затем создайте правило NSG:
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"
Получение адреса узла
Управлять кластером Kubernetes можно c помощью kubectl, клиента командной строки Kubernetes. Если вы используете Azure Cloud Shell, kubectl
уже установлен. Чтобы установить kubectl
локально, используйте команду az aks install-cli:
az aks install-cli
Чтобы настроить kubectl
на подключение к кластеру Kubernetes, выполните команду az aks get-credentials. Эта команда скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования.
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Выведите список внутренних IP-адресов узлов Windows Server с помощью команды kubectl get:
kubectl get nodes -o wide
В выходных данных примера ниже показаны внутренние IP-адреса всех узлов в кластере, включая узлы Windows Server.
$ 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
Запишите внутренний IP-адрес узла Windows Server, для которого требуется устранить неполадки. Этот адрес будет использоваться в дальнейшем.
Подключение к виртуальной машине и узлу
Подключитесь к общедоступному IP-адресу виртуальной машины, созданной ранее с помощью клиента RDP, такого как Удаленный рабочий стол (Майкрософт).
После подключения к виртуальной машине подключитесь к внутреннему IP-адресу узла Windows Server, который необходимо устранить с помощью клиента RDP из виртуальной машины.
Вы подключились к узлу Windows Server.
Теперь можно запускать любые команды устранения неполадок в окне cmd. Поскольку узлы Windows Server используют Windows Server Core, при подключении к узлу Windows Server по протоколу удаленного рабочего стола не нужно использовать полный графический интерфейс или другие средства графического пользовательского интерфейса.
Удаление доступа по протоколу RDP
По завершению выйдите из RDP-подключения к узлу Windows Server и завершите сеанс RDP на виртуальной машине. После выхода из обоих сеансов RDP удалите виртуальную машину с помощью команды az vm delete:
# Delete the virtual machine
az vm delete \
--resource-group myResourceGroup \
--name myVM
Удалите общедоступный IP-адрес, связанный с виртуальной машиной:
az network public-ip delete \
--resource-group myResourceGroup \
--name $PUBLIC_IP_ADDRESS
Удалите правило NSG:
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
Работа со службой "Бастион Azure"
Кроме того, можно использовать Бастион Azure для подключения к узлу Windows Server.
Развертывание Бастиона Azure
Чтобы развернуть Бастион Azure, необходимо найти виртуальную сеть, к которому подключен кластер AKS.
- На портале Azure выберите Виртуальные машины. Выберите виртуальную сеть, к которому подключен кластер AKS.
- В разделе Параметры выберите Бастион, а затем выберите Развернуть бастион. Дождитесь завершения процесса, прежде чем перейти к следующему шагу.
Подключение к узлам Windows Server с помощью Бастиона Azure
Перейдите в группу ресурсов узла кластера AKS. Выполните приведенную ниже команду в Azure Cloud Shell, чтобы получить имя группы ресурсов узла:
az aks show --name myAKSCluster --resource-group myResourceGroup --query 'nodeResourceGroup' -o tsv
- Выберите Обзор, а затем — масштабируемый набор виртуальных машин пула узлов Windows.
- В разделе Параметры выберите Экземпляры. Выберите узел сервера Windows, к которому вы хотите подключиться.
- В разделе Поддержка и устранение неполадок выберите Бастион.
- Введите учетные данные, настроенные при создании кластера AKS. Нажмите Подключиться.
Теперь можно запускать любые команды устранения неполадок в окне cmd. Поскольку узлы Windows Server используют Windows Server Core, при подключении к узлу Windows Server по протоколу удаленного рабочего стола не нужно использовать полный графический интерфейс или другие средства графического пользовательского интерфейса.
Примечание.
При закрытии окна терминала нажмите CTRL+ALT+END, выберите Диспетчер задач, Дополнительные сведения, Файл, Выполнить новую задачу и введите cmd.exe, чтобы открыть другой терминал. Вы также можете выйти из системы и повторно подключиться к Бастиону.
Удаление доступа к Бастиону
По завершении закройте сеанс Бастиона и удалите ресурс Бастиона.
- На портале Azure перейдите в Бастион и выберите созданный вами ресурс Бастиона.
- В верхней части страницы выберите команду Удалить. Прежде чем переходить к следующему шагу, дождитесь завершения развертывания.
- На портале Azure выберите Виртуальные машины. Выберите виртуальную сеть, к которой подключен кластер AKS.
- В разделе Параметры выберите Подсеть и удалите подсеть AzureBastionSubnet, созданную для ресурса Бастиона.
Следующие шаги
Если вам нужны дополнительные сведения об устранении неполадок, вы можете просмотреть журналы главного узла Kubernetes или ознакомиться со статьей об Azure Monitor.
Azure Kubernetes Service