KuView: वेब-आधारित रीयल-टाइम Kubernetes डैशबोर्ड
(github.com/iwanhae)मुझे व्यक्तिगत रूप से Kubernetes काफ़ी पसंद है, लेकिन फिर भी अगर कुछ कमियाँ बतानी हों, तो उनमें एक यह है कि abstraction इतना अच्छी तरह किया गया है कि वास्तविक physical elements छिप जाते हैं और उन्हें देखना मुश्किल हो जाता है.
उदाहरण के लिए
- अगर किसी Pod में समस्या आ रही है, तो उसी node पर deploy किए गए दूसरे Pod किस स्थिति में हैं?
- क्या इस समय Service से जुड़े सभी Pod ठीक से काम कर रहे हैं?
- इस समय node का CPU और memory usage कितना है? और उसमें अलग-अलग Pod का हिस्सा कितना है?
- इस समय node से जुड़े PV की सूची क्या है?
बेशक जानकारी पूरी तरह अनुपस्थित नहीं है, इसलिए kubectl के अलग-अलग संयोजन और Prometheus जैसे monitoring tools के ज़रिए इसे visualize करने के तरीके मौजूद हैं, लेकिन यह काफ़ी झंझट भरा भी है.
ऐसी स्थिति में मदद के लिए बनाया गया यह एक वेब-आधारित रीयल-टाइम Kubernetes डैशबोर्ड है. इसमें अलग से कुछ install करने की ज़रूरत नहीं है; अगर सिर्फ kubectl proxy कमांड इस्तेमाल की जा सकती है, तो यह WASM रूप में वेब ब्राउज़र के अंदर Kubernetes के सभी resources को WATCH करते हुए काम करता है.
7 टिप्पणियां
Running / Terminatingकी संख्या 1 सेकंड नहीं बल्कि 0.00x सेकंड के अंतराल में बदलती हुई लगती है, तो यह लगातार किस सिद्धांत पर बदलती रहती है? क्या यह लगातार k8s API को हिट करता है?इसे इस्तेमाल करना चाहता हूँ, लेकिन थोड़ा चिंता हो रही है कि कहीं यह k8s API Read Request पर बहुत ज़्यादा लोड तो नहीं डालता, इसलिए पूछ रहा हूँ!
यह K8s की WATCH API का उपयोग करता है।
https://kubernetes.io/docs/reference/…
क्योंकि यह केवल बदलावों को protobuf और SSE के जरिए प्राप्त करता है, इसलिए यह काफ़ी efficient है और लोड बहुत ही मामूली स्तर का है। (लगभग उतना ही लोड जितना kubelet, kube apiserver पर डालता है)
हालाँकि, अगर कई लोग इसे एक साथ इस्तेमाल कर रहे हों, तो wasm की बजाय server mode की सिफारिश है। इसमें server उनकी ओर से requests लाता है और उन्हें in-memory रखकर देता है, इसलिए kube apiserver पर लोड कम हो जाता है.
WASM फ़ाइल लगभग 90mb की है, इसलिए काफ़ी बड़ी लगती है।
आकार बड़ा है, लेकिन ऐसा नहीं लगता कि entropy बहुत ज़्यादा है। अभी
curlसे डाउनलोड करने पर gzip की गई फ़ाइल का आकार सिर्फ़ लगभग 14MB आता है। असल में जब WASM serve किया जाता है, तब आजकल आम तौर पर gzip, zstd, brotoli जैसे encoding algorithms लागू होते हैं, इसलिए वास्तव में ट्रांसफ़र होने वाला ट्रैफ़िक ज़्यादा नहीं होगा, ऐसा अनुमान है।यह भी जानने की जिज्ञासा है कि क्या binary को zstd से compress करने पर भी ऐसा होता है।
थोड़ी अलग बात है, लेकिन मैं जानना चाहता हूँ कि WASM में conversion और उसका उपयोग कितना smooth था (क्या आपको कोई असुविधा नहीं हुई)!
पहले इसे WASM से जल्दी-जल्दी बना लिया था, फिर बाद में सिर्फ common logic को बाँधकर server-side code को अलग निकाला, इसलिए खास तौर पर कोई असुविधा नहीं हुई। बल्कि अभी तो हालत यह है कि कोड को हल्के-फुल्के तरीके से भी बदलें तो वह Server और WASM दोनों तरफ लागू हो जाता है, इसलिए मैं काफ़ी संतुष्टि के साथ इसका इस्तेमाल कर रहा हूँ। haha