تشخيص مشكلات الاتصال لمجموعات Kubernetes الممكنة في Azure Arc

إذا كنت تواجه مشكلات في توصيل نظام مجموعة ب Azure Arc، فمن المحتمل أن يكون ذلك بسبب إحدى المشكلات المدرجة هنا. نحن نقدم مخططين انسيابيين بمساعدة موجهة: أحدهما إذا كنت لا تستخدم خادما وكيلا، والآخر ينطبق إذا كان اتصال الشبكة يستخدم خادما وكيلا.

تلميح

تنطبق الخطوات الواردة في هذا المخطط الانسيابي سواء كنت تستخدم Azure CLI أو Azure PowerShell لتوصيل مجموعتك. ومع ذلك، تتطلب بعض الخطوات استخدام Azure CLI. إذا لم تكن قد قمت بتثبيت Azure CLI بالفعل، فتأكد من القيام بذلك قبل البدء.

الاتصال بدون وكيل

راجع هذا المخطط الانسيابي لتشخيص المشكلة عند محاولة توصيل نظام مجموعة ب Azure Arc بدون خادم وكيل. يتم توفير مزيد من التفاصيل حول كل خطوة أدناه.

Flowchart showing a visual representation of checking for connection issues when not using a proxy.

هل لدى هوية Azure أذونات كافية؟

راجع المتطلبات الأساسية لتوصيل نظام مجموعة وتأكد من أن الهوية التي تستخدمها للاتصال بالمجموعة لديها الأذونات اللازمة.

هل تقوم بتشغيل أحدث إصدار من Azure CLI؟

تأكد من تثبيت أحدث إصدار.

إذا قمت بتوصيل نظام المجموعة باستخدام Azure PowerShell، فتأكد من تشغيل أحدث إصدار.

هل الملحق connectedk8s هو أحدث إصدار؟

تحديث ملحق Azure CLI connectedk8s إلى أحدث إصدار عن طريق تشغيل هذا الأمر:

az extension update --name connectedk8s

إذا لم تكن قد قمت بتثبيت الملحق بعد، يمكنك القيام بذلك عن طريق تشغيل الأمر التالي:

az extension add --name connectedk8s

هل يشير kubeconfig إلى نظام المجموعة الصحيح؟

قم بتشغيل kubectl config get-contexts لتأكيد اسم السياق الهدف. ثم قم بتعيين السياق الافتراضي إلى نظام المجموعة الصحيح عن طريق تشغيل kubectl config use-context <target-cluster-name>.

هل جميع موفري الموارد المطلوبين مسجلين؟

تأكد من تسجيل موفري موارد Microsoft.Kubernetes وMicrosoft.KubernetesConfiguration وMicrosoft.ExtendedLocation.

هل تم استيفاء جميع متطلبات الشبكة؟

راجع متطلبات الشبكة وتأكد من عدم حظر نقاط النهاية المطلوبة.

هل جميع القرون في azure-arc مساحة الاسم قيد التشغيل؟

إذا كان كل شيء يعمل بشكل صحيح، يجب أن تكون جميع الحجيرات الخاصة بك في Running الحالة. قم بتشغيل kubectl get pods -n azure-arc لتأكيد ما إذا كانت حالة أي جراب ليست Running.

هل ما زلت تواجه مشكلات؟

ستحل الخطوات أعلاه العديد من مشكلات الاتصال الشائعة، ولكن إذا كنت لا تزال غير قادر على الاتصال بنجاح، فنشئ ملف سجل استكشاف الأخطاء وإصلاحها ثم افتح طلب دعم حتى نتمكن من التحقيق في المشكلة بشكل أكبر.

لإنشاء ملف سجل استكشاف الأخطاء وإصلاحها، قم بتشغيل الأمر التالي:

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

عند إنشاء طلب الدعم، في قسم تفاصيل إضافية، استخدم خيار تحميل الملف لتحميل ملف السجل الذي تم إنشاؤه.

الاتصال مع خادم وكيل

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

Flowchart showing a visual representation of checking for connection issues when using a proxy.

هل يقوم الجهاز بتنفيذ الأوامر خلف خادم وكيل؟

إذا كان الجهاز ينفذ أوامر خلف خادم وكيل، فستحتاج إلى تعيين جميع متغيرات البيئة الضرورية. لمزيد من المعلومات، راجع الاتصال باستخدام خادم وكيل صادر.

على سبيل المثال:

export HTTP_PROXY="http://<proxyIP>:<proxyPort>"
export HTTPS_PROXY="https://<proxyIP>:<proxyPort>"
export NO_PROXY="<cluster-apiserver-ip-address>:<proxyPort>"

هل يقبل الخادم الوكيل الشهادات الموثوق بها فقط؟

تأكد من تضمين مسار ملف الشهادة عن طريق تضمين --proxy-cert <path-to-cert-file> عند تشغيل az connectedk8s connect الأمر.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>

هل الخادم الوكيل قادر على الوصول إلى نقاط نهاية الشبكة المطلوبة؟

راجع متطلبات الشبكة وتأكد من عدم حظر نقاط النهاية المطلوبة.

هل يستخدم الخادم الوكيل HTTP فقط؟

إذا كان الخادم الوكيل الخاص بك يستخدم HTTP فقط، يمكنك استخدام proxy-http لكلا المعلمتين.

إذا تم إعداد الخادم الوكيل الخاص بك مع كل من HTTP وHTTPS، فقم بتشغيل az connectedk8s connect الأمر مع --proxy-https المعلمات و --proxy-http المحددة. تأكد من استخدام --proxy-http لوكيل HTTP ووكيل --proxy-https HTTPS.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port>  

هل يتطلب الخادم الوكيل نطاقات تخطي للاتصال من خدمة إلى خدمة؟

إذا كنت تحتاج إلى تخطي النطاقات، فاستخدم --proxy-skip-range <excludedIP>,<excludedCIDR> في الأمر الخاص بك az connectedk8s connect .

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR>

هل جميع القرون في azure-arc مساحة الاسم قيد التشغيل؟

إذا كان كل شيء يعمل بشكل صحيح، يجب أن تكون جميع الحجيرات الخاصة بك في Running الحالة. قم بتشغيل kubectl get pods -n azure-arc لتأكيد ما إذا كانت حالة أي جراب ليست Running.

هل ما زلت تواجه مشكلات؟

ستحل الخطوات أعلاه العديد من مشكلات الاتصال الشائعة، ولكن إذا كنت لا تزال غير قادر على الاتصال بنجاح، فنشئ ملف سجل استكشاف الأخطاء وإصلاحها ثم افتح طلب دعم حتى نتمكن من التحقيق في المشكلة بشكل أكبر.

لإنشاء ملف سجل استكشاف الأخطاء وإصلاحها، قم بتشغيل الأمر التالي:

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

عند إنشاء طلب الدعم، في قسم تفاصيل إضافية، استخدم خيار تحميل الملف لتحميل ملف السجل الذي تم إنشاؤه.

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