مشاركة عبر


الاتصال من خلال RDP إلى كتلة خدمة Azure Kubernetes Service (AKS) وعقد خادم Windows للصيانة أو استكشاف الأخطاء وإصلاحها

خلال دورة حياة كتلة Azure Kubernetes Service (AKS)، قد تحتاج إلى الوصول إلى عقدة خادم Windows AKS. قد يكون هذا الوصول للصيانة، أو جمع السجلات، أو عمليات أخرى لاستكشاف الأخطاء وإصلاحها. يمكنك الوصول إلى عقد خادم WINDOWS AKS باستخدام RDP. لأغراض أمنية، لا تتعرض عقد AKS للإنترنت.

بدلا من ذلك، إذا كنت تريد SSH إلى عقد AKS Windows Server، فأنت بحاجة إلى الوصول إلى نفس زوج المفاتيح الذي تم استخدامه أثناء إنشاء نظام المجموعة. اتبع الخطوات الواردة في SSH في عقد نظام مجموعة Azure Kubernetes Service (AKS).

توضح هذه المقالة كيفية إنشاء اتصال RDP مع عقدة AKS باستخدام عناوين IP الخاصة بهم.

قبل البدء

تفترض هذه المقالة أن لديك كتلة AKS حالية مع عقدة خادم Windows. إذا كنت بحاجة إلى كتلة AKS، راجع المقالة حول إنشاء كتلة AKS مع حاوية Windows باستخدام Azure CLI. تحتاج إلى اسم مستخدم وكلمة مرور مسؤول Windows لعقدة خادم Windows الذي تريد استكشاف أخطائه وإصلاحها. تحتاج أيضًا إلى عميل RDP مثل Microsoft Remote Desktop.

إذا كنت بحاجة إلى إعادة تعيين كلمة المرور، فاستخدم az aks update لتغيير كلمة المرور.

az aks update --resource-group myResourceGroup --name myAKSCluster --windows-admin-password $WINDOWS_ADMIN_PASSWORD

إذا كنت بحاجة إلى إعادة تعيين اسم المستخدم وكلمة المرور، فشاهد إعادة تعيين خدمات سطح المكتب البعيد أو كلمة مرور المسؤول في جهاز ظاهري يعمل بنظام Windows.

تحتاج أيضًا إلى الإصدار 2.0.61 من Azure CLI أو أحدث وتثبيته وضبطه. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

نشر جهاز ظاهري في نفس الشبكة الفرعية كالكتلة الخاصة بك

عقد خادم Windows من كتلة AKS ليست لديها عناوين IP يمكن الوصول إليها من الخارج. لإجراء اتصال RDP، يمكنك نشر جهاز ظاهري مع عنوان IP يمكن الوصول إليه بشكل عام في نفس الشبكة الفرعية مثل عقد خادم Windows الخاص بك.

المثال التالي لإنشاء جهاز ظاهري يُسمى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

يظهر ناتج المثال التالي النجاح في إنشاء VM ويعرض عنوان IP العام للجهاز الظاهري.

13.62.204.18

تسجيل عنوان IP العام للجهاز ظاهري. ستستخدم هذا العنوان في خطوة لاحقة.

السماح بالوصول إلى الجهاز الظاهري

الشبكات الفرعية لتجمع عقدة AKS محمية بواسطة NSGs (مجموعات أمان الشبكة) بشكل افتراضي. للوصول إلى الجهاز الظاهري، سيكون عليك تمكين الوصول في NSG.

إشعار

يتم التحكم في NSGs من قبل خدمة AKS. أي تغيير تقوم به في NSG ستتم الكتابة فوقه في أي وقت بواسطة لوحة التحكم.

أولاً، احصل على مجموعة الموارد واسم 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، استخدم سطر أوامر العميل Kubernetes، kubectl. kubectl والذي سيكون مثبتًا بالفعل في حال كنت تستخدم Azure Cloud Shell. للتثبيت kubectl محليًا، استخدمالأمرaz aks install-cli:

az aks install-cli

لتكوين kubectl للاتصال بنظام مجموعتك في Kubernetes، يمكن استخدام الأمر az aks get-credentials. هذا الأمر يقوم بتحميل بيانات الاعتماد وضبط Kubernetes CLI لاستخدامها.

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

سرد عنوان IP الداخلي لعقد خادم Windows باستخدام الأمرالحصول على kubectl:

kubectl get nodes -o wide

ناتج المثال التالي يُظهر عناوين IP الداخلية لكافة العقد في الكتلة، بما في ذلك عقد خادم Windows.

$ 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 الذي ترغب في استكشاف أخطائه وإصلاحها. ستستخدم هذا العنوان في خطوة لاحقة.

الاتصال بالجهاز الظاهري والعقدة

الاتصال بعنوان IP العام للجهاز الظاهري الذي قمت بإنشائه مسبقًا باستخدام عميل RDP مثل Microsoft Remote Desketop.

صورة للاتصال بالجهاز الظاهري باستخدام عميل RDP

بعد الاتصال بجهازك الظاهري، اتصل بعنوان IP الداخلي لعقدة Windows Server التي تريد استكشاف الأخطاء وإصلاحها باستخدام عميل RDP من داخل جهازك الظاهري.

صورة الاتصال بعقدة خادم Windows باستخدام عميل RDP

أنت الآن متصل بعقدة نظام Windows الخاص بك.

صورة نافذة cmd في عقدة خادم Windows

يمكنك الآن تشغيل أي أوامر استكشاف الأخطاء وإصلاحها فينافذةcmd. حيث إن عقد خادم Windows تستخدم خادم Windows الأساسي، ليست هناك GUI كاملة أو غيرها من أدوات GUI عند الاتصال بعقدة خادم Windows عبر RDP.

إزالة وصول RDP

عند الانتهاء، قم بالخروج من اتصال RDP بعقدة خادم Windows ثم الخروج من جلسة RDP في الجهاز الظاهري. بعد الخروج من جلستي RDP، قم بحذف الجهاز الظاهري باستخدامأمر حذف az vm:

# 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 Bastion

بدلاً من ذلك، يمكنك استخدام Azure Bastion للاتصال بعقدة نظام مجموعة Windows.

نشر Azure Bastion

لتوزيع Azure Bastion، ستحتاج إلى العثور على الشبكة الظاهرية التي يتصل بها نظام مجموعة AKS.

  1. في مدخل Microsoft Azure، انتقل إلى الشبكات الظاهرية. حدد الشبكة الظاهرية التي يتصل بها نظام مجموعة AKS.
  2. ضمن إعدادات، حدد Bastion، ثم حدد توزيع Bastion. انتظر حتى تنتهي العملية قبل الانتقال إلى الخطوة التالية.

الاتصال بعقد نظام Windows باستخدام Azure Bastion

انتقل إلى مجموعة موارد العقدة لمجموعة AKS. قم بتشغيل الأمر أدناه في Azure Cloud Shell للحصول على اسم مجموعة موارد العقدة الخاصة بك:

az aks show --name myAKSCluster --resource-group myResourceGroup --query 'nodeResourceGroup' -o tsv
  1. حدد نظرة عامة، وحدد مجموعة مقياس الجهاز الظاهري لتجمع عقدة Windows.
  2. ضمن «الإعدادات»، اختر «مثيلات». حدد عقدة نظام Windows التي تريد الاتصال بها.
  3. ضمن الدعم + استكشاف الأخطاء وإصلاحها، حدد Bastion.
  4. أدخل بيانات الاعتماد التي قمت بإعدادها عند إنشاء نظام مجموعة AKS. حدد اتصال.

يمكنك الآن تشغيل أي أوامر استكشاف الأخطاء وإصلاحها فينافذةcmd. حيث إن عقد خادم Windows تستخدم خادم Windows الأساسي، ليست هناك GUI كاملة أو غيرها من أدوات GUI عند الاتصال بعقدة خادم Windows عبر RDP.

إشعار

إذا قمت بإغلاق نافذة المحطة الطرفية، فاضغط على CTRL + ALT + End، وحدد إدارة المهام، وحدد المزيد من التفاصيل، وحدد ملف، وحدد تشغيل مهمة جديدة، وأدخل cmd.exe لفتح محطة طرفية أخرى. يمكنك أيضًا تسجيل الخروج وإعادة الاتصال بـ Bastion.

إزالة الوصول إلى Bastion

عند الانتهاء، قم بإنهاء جلسة Bastion وإزالة مورد Bastion.

  1. في مدخل Microsoft Azure، انتقل إلى Bastion وحدد مورد Bastion الذي أنشأته.
  2. في الجزء العلوي من الصفحة، حدد حذف. انتظر حتى تكتمل العملية قبل المتابعة إلى الخطوة التالية.
  3. في مدخل Microsoft Azure، انتقل إلى الشبكات الظاهرية. حدد الشبكة الظاهرية التي يتصل بها نظام مجموعة AKS.
  4. ضمن إعدادات، حدد الشبكة الفرعية، واحذف الشبكة الفرعية AzureBastionSubnet التي تم إنشاؤها لمورد Bastion.

الخطوات التالية

إذا كنت بحاجة إلى المزيد من بيانات استكشاف الأخطاء وإصلاحها، يمكنك عرض سجلات العقدة الأساسية لـ Kubernetes أو Azure Monitor.