إصدار لوحة القيادة: 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 / ، يتم إرجاع "غير مصرح به"
لماذا ا؟
لدي نفس المشكلة. وأعتقد أن المؤلف ربما لم يفكر في الأمر بعد.
https://github.com/kubernetes/dashboard/issues/1116
أظن أن مجموعاتك تستخدم شهادات للاتصال الآمن عبر HTTPS. هناك مشكلتان هنا.
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"
مع المتصفح الأمر أكثر تعقيدًا من ذلك. هناك عدة طرق للوصول إلى لوحة القيادة:
<MASTER_IP>:<NODE_PORT>
. (غير آمن)kubectl proxy
وانتقل إلى http://127.0.0.1:8001/
(يمكن تغيير عنوان الربط). سيتعامل مع نفق SSL إذا تم تكوين ملف kubeconfig
الخاص بك لاستخدام اتصال آمن.بخصوص الخيار الثاني. يمكنني تقديم بعض المعلومات حول كيفية القيام بذلك باستخدام Firefox.
Your Certificates
. إذا كان لديك شهادتان منفصلتان crt
و key
فمن الأفضل دمجها في شهادة PFX/PKCS#12
لأنه من السهل استيرادها مباشرة إلى مخزن شهادات المتصفح. يمكنك استخدام هذه الصفحة أو القيام بذلك يدويًا باستخدام openssl
.إذا تم إنشاء الشهادات بشكل صحيح ، فسيتم عرض نافذة منبثقة في المحاولة التالية للوصول إلى خادم api عبر HTTPS. قد تحتاج إلى مسح ذاكرة التخزين المؤقت للمتصفح.
يجب أن ترى لوحة القيادة الآن. :)
لا أعرف كيفية استخدام رمز الحامل المميز في المتصفح. ربما يتطلب الأمر بعض الأعمال اليدوية لإضافة البيانات إلى رأس HTTP قبل إرسال الطلب إلى خادم api.
هناك بالطبع خيارات أخرى لتفويض المستخدم. يدعم Kubernetes ABAC و RBAC وغير ذلك الكثير.
المتصفح مطلوب للمصادقة عند الوصول إلى منفذ خادم API الآمن. كما يوضح https://github.com/kubernetes/kubernetes/issues/31665#issuecomment -247342834 ، يمكن إجراء ذلك باستخدام المصادقة المستندة إلى الشهادة.
للمصادقة القائمة على الرمز المميز ، لا تمنحك المستعرضات طريقة لإرسال الرموز المميزة لحاملها تلقائيًا مع طلباتك.
تصف لوحة القيادة كيف يمكنك استخدام kubectl proxy
الذي يضيف بيانات اعتماد المصادقة الخاصة بك ، ويتيح لك الوصول إلى لوحة القيادة محليًا من خلال الوكيل - https://github.com/kubernetes/dashboard#usage
التعليق الأكثر فائدة
أظن أن مجموعاتك تستخدم شهادات للاتصال الآمن عبر HTTPS. هناك مشكلتان هنا.
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"
مع المتصفح الأمر أكثر تعقيدًا من ذلك. هناك عدة طرق للوصول إلى لوحة القيادة:
<MASTER_IP>:<NODE_PORT>
. (غير آمن)kubectl proxy
وانتقل إلىhttp://127.0.0.1:8001/
(يمكن تغيير عنوان الربط). سيتعامل مع نفق SSL إذا تم تكوين ملفkubeconfig
الخاص بك لاستخدام اتصال آمن.بخصوص الخيار الثاني. يمكنني تقديم بعض المعلومات حول كيفية القيام بذلك باستخدام Firefox.
Your Certificates
. إذا كان لديك شهادتان منفصلتانcrt
وkey
فمن الأفضل دمجها في شهادةPFX/PKCS#12
لأنه من السهل استيرادها مباشرة إلى مخزن شهادات المتصفح. يمكنك استخدام هذه الصفحة أو القيام بذلك يدويًا باستخدامopenssl
.إذا تم إنشاء الشهادات بشكل صحيح ، فسيتم عرض نافذة منبثقة في المحاولة التالية للوصول إلى خادم api عبر HTTPS. قد تحتاج إلى مسح ذاكرة التخزين المؤقت للمتصفح.
يجب أن ترى لوحة القيادة الآن. :)
لا أعرف كيفية استخدام رمز الحامل المميز في المتصفح. ربما يتطلب الأمر بعض الأعمال اليدوية لإضافة البيانات إلى رأس HTTP قبل إرسال الطلب إلى خادم api.
هناك بالطبع خيارات أخرى لتفويض المستخدم. يدعم Kubernetes ABAC و RBAC وغير ذلك الكثير.