कुबेरनेट्स डैशबोर्ड - लॉगिन के बाद अज्ञात सर्वर त्रुटि


9

मैंने कुबेरपेटे के माध्यम से कुबेरनेट्स को सफलतापूर्वक तैनात किया और सब कुछ ठीक काम करने लगता है। मैं kubectl और सूची नोड्स, पॉड्स, सेवाओं, रहस्यों और इतने पर के माध्यम से क्लस्टर का उपयोग करने में सक्षम हूं। नए स्रोतों को लागू करना भी संभव है और डैशबोर्ड समापन बिंदु मुझे डैशबोर्ड लॉगिन पृष्ठ मिलता है।

मैं अलग-अलग सर्विसेकाउंट (डिफ़ॉल्ट, कुबेरनेट्स-डैशबोर्ड, कुबेरनेट्स-एडमिन, ...) के टोकन के साथ लॉग इन करता हूं ... हर लॉगिन के साथ मुझे वही पॉपअप मिलते हैं जो उदाहरण के लिए मना किए गए पॉपअप में क्यूब्सप्राय डैशबोर्ड चेतावनी में वर्णित हैं ।

इसलिए मैंने वर्णित के रूप में डिफ़ॉल्ट सेवा खाते के लिए क्लैरोलबाइंडिंग लागू किया। जब मैं अब डिफ़ॉल्ट खाता टोकन के साथ लॉगिन करता हूं, तो मुझे केवल एक मिलता है

Unknown Server Error (404)
the server could not find the requested resource
Redirecting to previous state in 3 seconds...

बॉक्स जो मुझे लॉगिन पृष्ठ पर बाद में पुनर्निर्देशित करता है। अगर मैं डैशबोर्ड के माध्यम से कनेक्ट करता हूं तो इसका वही व्यवहार है kubectl proxy। एक्सेस एक सार्वजनिक क्लस्टर आईपी पर HTTPS है और प्रॉक्सी पर HTTP भी है

मैं Kubernetes 1.16.2 और नवीनतम Kubespray मास्टर 18d19d9e का उपयोग कर रहा हूं

संपादित करें: मैंने नष्ट कर दिया और सभी चरणों को निर्धारित करने के लिए क्लस्टर को एक ताजा Kubespray- उपबंधित उदाहरण प्राप्त करने के लिए क्लस्टर को फिर से तैयार किया, अधिक जानकारी जोड़कर ...

kubectl -n kube-system logs --follow kubernetes-dashboard-556b9ff8f8-jbmgg -- एक लॉगिन प्रयास के दौरान मुझे देता है

2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/csrftoken/login request from 10.233.74.0:57458: { contents hidden }
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 POST /api/v1/login request from 10.233.74.0:57458: { contents hidden }
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/login/status request from 10.233.74.0:57458: {}
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/csrftoken/token request from 10.233.74.0:57458: {}
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 POST /api/v1/token/refresh request from 10.233.74.0:57458: { contents hidden }
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/login/status request from 10.233.74.0:57458: {}
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/csrftoken/token request from 10.233.74.0:57458: {}
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 POST /api/v1/token/refresh request from 10.233.74.0:57458: { contents hidden }
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/overview/default?filterBy=&itemsPerPage=10&name=&page=1&sortBy=d,creationTimestamp request from 10.233.74.0:57458: {}
2019/12/16 12:35:03 Getting config category
2019/12/16 12:35:03 Getting discovery and load balancing category
2019/12/16 12:35:03 Getting lists of all workloads
2019/12/16 12:35:03 the server could not find the requested resource
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Outcoming response to 10.233.74.0:57458 with 404 status code
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 Getting pod metrics
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Incoming HTTP/2.0 GET /api/v1/systembanner request from 10.233.74.0:57458: {}
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Incoming HTTP/2.0 GET /api/v1/login/status request from 10.233.74.0:57458: {}
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Incoming HTTP/2.0 GET /api/v1/rbac/status request from 10.233.74.0:57458: {}
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:12 Metric client health check failed: the server could not find the requested resource (get services heapster). Retrying in 30 seconds.
2019/12/16 12:35:42 Metric client health check failed: the server could not find the requested resource (get services heapster). Retrying in 30 seconds.

I `ve को डैशबोर्ड काम करने के लिए एक अजीब सा बदलाव मिला , लेकिन यह हमारे लिए उत्पादन में उपयोग करने योग्य नहीं है, शायद कोई इसे समझा सकता है:

  1. मैं उदाहरण के लिए serviceaccount लेता हूं kube-system:default(नोट: यह एक cluster-adminइस बिंदु पर नहीं सौंपा गया है
  2. मैं इसका टोकन प्राप्त करता हूं और उसी के साथ लॉगिन करता हूं
  3. डैशबोर्ड स्पष्ट रूप से मुझे "निषिद्ध-पॉपअप" दिखाता है
  4. अभी भी लॉग इन करते समय, मैं दौड़ता हूं kubectl create clusterrolebinding default-admin --clusterrole cluster-admin --serviceaccount=kube-system:default
  5. मैं अपने डैशबोर्ड सत्र को धारण करने वाले ब्राउज़र टैब को रीफ्रेश करता हूं ... वेटीला, सब कुछ सही तरीके से दिखाता है।

इसलिए मैं लॉगआउट करने और फिर से लॉगिन करने में सक्षम नहीं हूं, मुझे हमेशा क्लैरोलबाइंडिंग को हटाना होगा, फिर लॉग इन करना होगा और बाद में फिर से क्लैरोलबाइंडिंग लागू करना होगा।

ऐसा लगता है कि कूबसराय के प्रावधान वाले समूहों से दृढ़ता से जुड़ा हुआ है, इसलिए कोई भी इसे क्यूबस्प्रे के साथ पुन: पेश करने में सक्षम है?


क्या आप कुबेरनेट्स डैशबोर्ड पॉड के लॉग को साझा कर सकते हैं और लॉग इन करने के लिए आप किस सेवा खाते के टोकन का उपयोग कर रहे हैं?
उमेश कुम्हार

परिनियोजन यामल्स और आपके द्वारा आजमाए गए चरणों को साझा करें
P Ekambaram

जवाबों:


7

यदि आपका प्रमाणपत्र आपको कनेक्ट करने के लिए प्रमाणपत्र का उपयोग कर रहा है, तो सिस्टम में होना चाहिए: स्वामी समूह इसलिए "विषय: O = प्रणाली: स्वामी, CN =" शामिल करें

आप एक टोकन भी बना सकते हैं और फिर प्रमाणपत्र के बजाय टोकन का उपयोग कर सकते हैं:

इस बात की संभावना हो सकती है कि आपकी क्लस्टर भूमिका "सेवा खाता" से जुड़ी हो, लेकिन आपके समूह की नहीं, आपको अपने समूह को yaml फ़ाइल में जांचना चाहिए। आपके सेवा खाते में एक पहुंच टोकन है, जो आपके प्रमाणपत्र के बजाय प्रमाणित करने के लिए उपयोग करें।

टोकन बनाने के लिए इसका उपयोग करें और इसका उपयोग करें।

kubectl describe secret $(kubectl get secret | grep cluster-admin | awk '{print $1}')

टोकन:

उस टोकन का उपयोग करके अपने आप को प्रमाणित करने के लिए कुबेकॉन्फ़िग को अपडेट करें, आपके द्वारा वर्तमान में उपयोग किए जा रहे प्रमाणपत्र के बजाय, और आपको उस क्लस्टर-व्यवस्थापक सेवा खाते के रूप में सफलतापूर्वक प्रमाणित किया जाना चाहिए।

कुबेरनेट्स आरबीएसी - अतिरिक्त विशेषाधिकार प्रदान करने के लिए निषिद्ध प्रयास


यह मुझे "डिफ़ॉल्ट" नेमस्पेस में "डिफ़ॉल्ट" सर्विसिक का टोकन देता है, क्योंकि कोई भी "क्लस्टर-एडमिन" परिभाषित नहीं है। यहां तक ​​कि जब मैं "--all-namespaces" जोड़ता हूं, तो ऐसा लगता है कि क्यूब्सप्राय ने क्लस्टर-एडमिन सर्विस अकाउंट का प्रावधान नहीं किया है। आम तौर पर बोलना: मुझे टोकन के उपयोग के बारे में पता है कि मैं एक विशिष्ट सेवा के रूप में प्रमाणित करता हूं जो कि टोकन के लिए बाध्य है। दुर्भाग्य से मुझे अपना सेवा खाता काम नहीं करता है, भले ही मैं क्लस्टर
Jürgen Zornig

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.