Kubernetes: لوحة القيادة https غير مصرح به

تم إنشاؤها على ٣٠ أغسطس ٢٠١٦  ·  3تعليقات  ·  مصدر: kubernetes/kubernetes

إصدار لوحة القيادة: 1.1
إصدار Kubernetes: 1.3.6
نظام التشغيل: ubuntu14.04
نسخة Go: 1.6.2
Ideploy kubernetes ولوحة القيادة كـ http://kubernetes.io/docs/getting-started-guides/ubuntu/

يمكنني الوصول إلى لوحة القيادة http: // master-ip : 8080 /
bur عندما أصل إلى https: // master-ip : 6443 / ، يتم إرجاع "غير مصرح به"
لماذا ا؟

areapiserver

التعليق الأكثر فائدة

أظن أن مجموعاتك تستخدم شهادات للاتصال الآمن عبر HTTPS. هناك مشكلتان هنا.

  1. لا يتعرف المستعرض على المرجع المصدق الجذر لذا لا يمكنه الوثوق في أن الاتصال آمن. يمكننا تجاوز ذلك وما زلنا نستخدمه. هذا الجزء ليس مانع. :)
    zrzut ekranu z 2016-09-15 15-50-35
  2. يحتاج خادم API إلى شهادة العميل / الرمز المميز / المستخدم وتمرير (يعتمد على التكوين) لتفويض العميل وإلا فسيعيد Unauthorized .

من السهل التفويض باستخدام curl لأنه يمكنك بسهولة توفير البيانات المطلوبة.
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN""

مع المتصفح الأمر أكثر تعقيدًا من ذلك. هناك عدة طرق للوصول إلى لوحة القيادة:

  1. يمكنك عرضه من خلال الخدمة باستخدام NodePort والوصول إليه بـ <MASTER_IP>:<NODE_PORT> . (غير آمن)
  2. استيراد الشهادات إلى المستعرض الخاص بك.
  3. استخدم kubectl proxy وانتقل إلى http://127.0.0.1:8001/ (يمكن تغيير عنوان الربط). سيتعامل مع نفق SSL إذا تم تكوين ملف kubeconfig الخاص بك لاستخدام اتصال آمن.

بخصوص الخيار الثاني. يمكنني تقديم بعض المعلومات حول كيفية القيام بذلك باستخدام Firefox.

  1. استيراد شهادة CA التي تم إنشاؤها في المتصفح.
    zrzut ekranu z 2016-09-15 16-05-47
  2. استيراد شهادة المستخدم إلى Your Certificates . إذا كان لديك شهادتان منفصلتان crt و key فمن الأفضل دمجها في شهادة PFX/PKCS#12 لأنه من السهل استيرادها مباشرة إلى مخزن شهادات المتصفح. يمكنك استخدام هذه الصفحة أو القيام بذلك يدويًا باستخدام openssl .
    zrzut ekranu z 2016-09-15 16-09-44

إذا تم إنشاء الشهادات بشكل صحيح ، فسيتم عرض نافذة منبثقة في المحاولة التالية للوصول إلى خادم api عبر HTTPS. قد تحتاج إلى مسح ذاكرة التخزين المؤقت للمتصفح.
zrzut ekranu z 2016-09-15 16-12-04

يجب أن ترى لوحة القيادة الآن. :)
zrzut ekranu z 2016-09-15 16-14-16

لا أعرف كيفية استخدام رمز الحامل المميز في المتصفح. ربما يتطلب الأمر بعض الأعمال اليدوية لإضافة البيانات إلى رأس HTTP قبل إرسال الطلب إلى خادم api.

هناك بالطبع خيارات أخرى لتفويض المستخدم. يدعم Kubernetes ABAC و RBAC وغير ذلك الكثير.

ال 3 كومينتر

لدي نفس المشكلة. وأعتقد أن المؤلف ربما لم يفكر في الأمر بعد.
https://github.com/kubernetes/dashboard/issues/1116

أظن أن مجموعاتك تستخدم شهادات للاتصال الآمن عبر HTTPS. هناك مشكلتان هنا.

  1. لا يتعرف المستعرض على المرجع المصدق الجذر لذا لا يمكنه الوثوق في أن الاتصال آمن. يمكننا تجاوز ذلك وما زلنا نستخدمه. هذا الجزء ليس مانع. :)
    zrzut ekranu z 2016-09-15 15-50-35
  2. يحتاج خادم API إلى شهادة العميل / الرمز المميز / المستخدم وتمرير (يعتمد على التكوين) لتفويض العميل وإلا فسيعيد Unauthorized .

من السهل التفويض باستخدام curl لأنه يمكنك بسهولة توفير البيانات المطلوبة.
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN""

مع المتصفح الأمر أكثر تعقيدًا من ذلك. هناك عدة طرق للوصول إلى لوحة القيادة:

  1. يمكنك عرضه من خلال الخدمة باستخدام NodePort والوصول إليه بـ <MASTER_IP>:<NODE_PORT> . (غير آمن)
  2. استيراد الشهادات إلى المستعرض الخاص بك.
  3. استخدم kubectl proxy وانتقل إلى http://127.0.0.1:8001/ (يمكن تغيير عنوان الربط). سيتعامل مع نفق SSL إذا تم تكوين ملف kubeconfig الخاص بك لاستخدام اتصال آمن.

بخصوص الخيار الثاني. يمكنني تقديم بعض المعلومات حول كيفية القيام بذلك باستخدام Firefox.

  1. استيراد شهادة CA التي تم إنشاؤها في المتصفح.
    zrzut ekranu z 2016-09-15 16-05-47
  2. استيراد شهادة المستخدم إلى Your Certificates . إذا كان لديك شهادتان منفصلتان crt و key فمن الأفضل دمجها في شهادة PFX/PKCS#12 لأنه من السهل استيرادها مباشرة إلى مخزن شهادات المتصفح. يمكنك استخدام هذه الصفحة أو القيام بذلك يدويًا باستخدام openssl .
    zrzut ekranu z 2016-09-15 16-09-44

إذا تم إنشاء الشهادات بشكل صحيح ، فسيتم عرض نافذة منبثقة في المحاولة التالية للوصول إلى خادم api عبر HTTPS. قد تحتاج إلى مسح ذاكرة التخزين المؤقت للمتصفح.
zrzut ekranu z 2016-09-15 16-12-04

يجب أن ترى لوحة القيادة الآن. :)
zrzut ekranu z 2016-09-15 16-14-16

لا أعرف كيفية استخدام رمز الحامل المميز في المتصفح. ربما يتطلب الأمر بعض الأعمال اليدوية لإضافة البيانات إلى رأس HTTP قبل إرسال الطلب إلى خادم api.

هناك بالطبع خيارات أخرى لتفويض المستخدم. يدعم Kubernetes ABAC و RBAC وغير ذلك الكثير.

المتصفح مطلوب للمصادقة عند الوصول إلى منفذ خادم API الآمن. كما يوضح https://github.com/kubernetes/kubernetes/issues/31665#issuecomment -247342834 ، يمكن إجراء ذلك باستخدام المصادقة المستندة إلى الشهادة.

للمصادقة القائمة على الرمز المميز ، لا تمنحك المستعرضات طريقة لإرسال الرموز المميزة لحاملها تلقائيًا مع طلباتك.

تصف لوحة القيادة كيف يمكنك استخدام kubectl proxy الذي يضيف بيانات اعتماد المصادقة الخاصة بك ، ويتيح لك الوصول إلى لوحة القيادة محليًا من خلال الوكيل - https://github.com/kubernetes/dashboard#usage

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات