الاتصال من خلال 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.
بعد الاتصال بجهازك الظاهري، اتصل بعنوان IP الداخلي لعقدة Windows Server التي تريد استكشاف الأخطاء وإصلاحها باستخدام عميل RDP من داخل جهازك الظاهري.
أنت الآن متصل بعقدة نظام 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.
- في مدخل Microsoft Azure، انتقل إلى الشبكات الظاهرية. حدد الشبكة الظاهرية التي يتصل بها نظام مجموعة AKS.
- ضمن إعدادات، حدد Bastion، ثم حدد توزيع Bastion. انتظر حتى تنتهي العملية قبل الانتقال إلى الخطوة التالية.
الاتصال بعقد نظام Windows باستخدام Azure Bastion
انتقل إلى مجموعة موارد العقدة لمجموعة AKS. قم بتشغيل الأمر أدناه في Azure Cloud Shell للحصول على اسم مجموعة موارد العقدة الخاصة بك:
az aks show --name myAKSCluster --resource-group myResourceGroup --query 'nodeResourceGroup' -o tsv
- حدد نظرة عامة، وحدد مجموعة مقياس الجهاز الظاهري لتجمع عقدة Windows.
- ضمن «الإعدادات»، اختر «مثيلات». حدد عقدة نظام Windows التي تريد الاتصال بها.
- ضمن الدعم + استكشاف الأخطاء وإصلاحها، حدد Bastion.
- أدخل بيانات الاعتماد التي قمت بإعدادها عند إنشاء نظام مجموعة AKS. حدد اتصال.
يمكنك الآن تشغيل أي أوامر استكشاف الأخطاء وإصلاحها فينافذةcmd. حيث إن عقد خادم Windows تستخدم خادم Windows الأساسي، ليست هناك GUI كاملة أو غيرها من أدوات GUI عند الاتصال بعقدة خادم Windows عبر RDP.
إشعار
إذا قمت بإغلاق نافذة المحطة الطرفية، فاضغط على CTRL + ALT + End، وحدد إدارة المهام، وحدد المزيد من التفاصيل، وحدد ملف، وحدد تشغيل مهمة جديدة، وأدخل cmd.exe لفتح محطة طرفية أخرى. يمكنك أيضًا تسجيل الخروج وإعادة الاتصال بـ Bastion.
إزالة الوصول إلى Bastion
عند الانتهاء، قم بإنهاء جلسة Bastion وإزالة مورد Bastion.
- في مدخل Microsoft Azure، انتقل إلى Bastion وحدد مورد Bastion الذي أنشأته.
- في الجزء العلوي من الصفحة، حدد حذف. انتظر حتى تكتمل العملية قبل المتابعة إلى الخطوة التالية.
- في مدخل Microsoft Azure، انتقل إلى الشبكات الظاهرية. حدد الشبكة الظاهرية التي يتصل بها نظام مجموعة AKS.
- ضمن إعدادات، حدد الشبكة الفرعية، واحذف الشبكة الفرعية AzureBastionSubnet التي تم إنشاؤها لمورد Bastion.
الخطوات التالية
إذا كنت بحاجة إلى المزيد من بيانات استكشاف الأخطاء وإصلاحها، يمكنك عرض سجلات العقدة الأساسية لـ Kubernetes أو Azure Monitor.
Azure Kubernetes Service