تشخيص مشكلات الاتصال لمجموعات Kubernetes الممكنة في Azure Arc
إذا كنت تواجه مشكلات في توصيل نظام مجموعة ب Azure Arc، فمن المحتمل أن يكون ذلك بسبب إحدى المشكلات المدرجة هنا. نحن نقدم مخططين انسيابيين بمساعدة موجهة: أحدهما إذا كنت لا تستخدم خادما وكيلا، والآخر ينطبق إذا كان اتصال الشبكة يستخدم خادما وكيلا.
تلميح
تنطبق الخطوات الواردة في هذا المخطط الانسيابي سواء كنت تستخدم Azure CLI أو Azure PowerShell لتوصيل مجموعتك. ومع ذلك، تتطلب بعض الخطوات استخدام Azure CLI. إذا لم تكن قد قمت بتثبيت Azure CLI بالفعل، فتأكد من القيام بذلك قبل البدء.
الاتصال بدون وكيل
راجع هذا المخطط الانسيابي لتشخيص المشكلة عند محاولة توصيل نظام مجموعة ب Azure Arc بدون خادم وكيل. يتم توفير مزيد من التفاصيل حول كل خطوة أدناه.
هل لدى هوية 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>
عند إنشاء طلب الدعم، في قسم تفاصيل إضافية، استخدم خيار تحميل الملف لتحميل ملف السجل الذي تم إنشاؤه.
الاتصال مع خادم وكيل
إذا كنت تستخدم خادم وكيل على جهاز واحد على الأقل، فأكمل الخطوات الخمس الأولى من المخطط الانسيابي غير الوكيل (من خلال تسجيل موفر الموارد) للحصول على خطوات استكشاف الأخطاء وإصلاحها الأساسية. بعد ذلك، إذا كنت لا تزال تواجه مشكلات، فراجع المخطط الانسيابي التالي للحصول على خطوات إضافية لاستكشاف الأخطاء وإصلاحها. يتم توفير مزيد من التفاصيل حول كل خطوة أدناه.
هل يقوم الجهاز بتنفيذ الأوامر خلف خادم وكيل؟
إذا كان الجهاز ينفذ أوامر خلف خادم وكيل، فستحتاج إلى تعيين جميع متغيرات البيئة الضرورية. لمزيد من المعلومات، راجع الاتصال باستخدام خادم وكيل صادر.
على سبيل المثال:
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>
عند إنشاء طلب الدعم، في قسم تفاصيل إضافية، استخدم خيار تحميل الملف لتحميل ملف السجل الذي تم إنشاؤه.
الخطوات التالية
- عرض المزيد من تلميحات استكشاف الأخطاء وإصلاحها لاستخدام Kubernetes التي تدعم Azure Arc.
- راجع عملية توصيل مجموعة Kubernetes موجودة ب Azure Arc.