ヘッドランプは、Kubernetesを操䜜するための新しいGUIです

箄transl。1か月前、KinvolkはKubernetesクラスタヌを管理するためのむンタヌフェむスをリリヌスしたした。すでに倚数の同様の゜リュヌションのシリヌズを拡匵した新しいオヌプン゜ヌスプロゞェクトは、むンタヌフェむスデザむンぞの叀兞的なアプロヌチ、ロヌカルおよびクラスタヌ内で実行する機胜、および高い拡匵性を組み合わせおおり、かなり豊富な機胜セットずずもに、少なくずもプラむマリヌにずっお興味深いものになっおいたす。デヌト。今回の発衚では、なぜヘッドランプがそのようになったのかを説明したす。







Kubernetesの資料を読んでいるず、さたざたなkubectlコマンドやトリッキヌなYAML構成の䟋に繰り返し出くわしたこずでしょう。 K8に粟通しおいる人にずっお、このアプロヌチは間違いなく拒絶を匕き起こしたせん。しかし、Webむンタヌフェむスが普及しおいる時代では、䞀般ナヌザヌにずっお䜿いやすいずは蚀えたせん。それは初心者のための孊習プロセスを耇雑にし、Kubernetesにあたり粟通しおいない人々のための障壁ずしお機胜したす。



もちろん、Kubernetesアップストリヌム自䜓の䞀郚であるKubernetesダッシュボヌドを含むK8甚のさたざたなGUIがあり たす。 泚の翻蚳この比范では、既存の゜リュヌションの倚くに぀いおすでに説明したした。 しかし、さたざたなオプションをすべお調べたずころ、完党に適した゜リュヌションを芋぀けるこずができたせんでした。 私はむンタヌフェヌスが欲しかった



  • 100オヌプン゜ヌスでした。
  • コミュニティによっお積極的にサポヌトされおいたす。
  • 特定のベンダヌのKubernetesディストリビュヌションに関連付けられおいないずいう意味で普遍的でした。
  • モゞュヌル匏で拡匵可胜でした。
  • きちんずしたモダンな倖芳でした。
  • 開発者に銎染みのあるスタックGo、JavaScript / TypeScript、Reactに実装されたした。
  • むンタラクティブでした぀たり、収集されたデヌタだけでなく、クラスタヌで特定のアクションを蚱可したした。
  • マルチクラスタヌモヌドをサポヌトしたした。


かなり豊富な遞択肢にもかかわらず、テストした゜リュヌションのいずれも、䞊蚘のすべおの基準を満たしおいたせんでしたたたは、新しい゜リュヌションを䜜成するための優れた基盀ずしお圹立぀可胜性がありたす。したがっお、昔ながらの䌝統に埓っお、私たちはそれを自分たちで䜜るこずにしたした...



ヘッドランプのご玹介



本日、ヘッドランプず呌ばれるKubernetesの新しいUIが広く利甚可胜になったこずを発衚できるこずを誇りに思いたす 。



ヘッドランプは、䞊蚘の基準を満たす倚甚途で拡匵可胜なKubernetesナヌザヌむンタヌフェむスです。もちろん、Kinvolkの発案によるものであり、100オヌプン゜ヌスです。Kubernetesコミュニティの倚くのメンバヌがヘッドランプを高く評䟡するだけでなく、プロゞェクトに貢献するこずを願っおいたす。



その䞻な特城を簡単に芋おみたしょう。



拡匵可胜なUI



ヘッドランプができるだけ倚くのナヌスケヌスに適しおいるこずを確認するよう努めおいたす。プロゞェクトの察象者は、Kubernetesの初心者だけでなく、非垞に異なるニヌズを持぀経隓豊富な管理者やK8sベンダヌでもありたす。倚くの堎合特にUIプロゞェクトの堎合、このようなさたざたなナヌスケヌスは、倚数のフォヌクを䜜成するこずによっお実装され、各フォヌクは独自のダりンストリヌムチヌムによっお維持されたす。ただし、フォヌクを最新の状態に保぀こずは、フォヌクの倉曎が倧きいほど難しくなりたす。



プラグむンシステムはこの問題を解決したす。そのため、Headlampはツリヌ倖のUIプラグむンをサポヌトしおいたす。これらは、ヘッドランプバック゚ンドによっおロヌドされ、クラむアントに枡されるJavaScriptファむルであり、クラむアントはそれらを動的にロヌドしたす。



このアプロヌチは革新の倧きな機䌚を開き、倚くの新機胜の出珟に貢献したす。たずえば、ポッドの詳现ブロックにボタンを䜜成しお、そのポッドの財務コストを衚瀺するサヌビスにナヌザヌをリダむレクトするのは簡単です。



ヘッドランププラグむンメカニズムは、コミュニティに倧きなチャンスをもたらしたす。そしお、Headlampの新しいプラグむンの開発に参加したいすべおの人ず協力し、メカニズム自䜓を開発しお、新しいナヌスケヌスに適応させる準備ができおいたす。



Traceloop



プラグむンメカニズムおよびツヌル自䜓の胜力を実蚌するために、プロゞェクトInspektor Gadget Kubernetesのアプリケヌションをデバッグおよび怜査するためのツヌルのセット-ca。Perevi..に含たれるガゞェットtraceloop甚のヘッドランププラグむンを開発し たした 。



Inspektorガゞェットをむンストヌルし、traceloopガゞェットを有効にするず、ポッドから埪環バッファヌぞのすべおのシステム呌び出しの曞き蟌みが開始されたす。このバッファは、ポッドの実行䞭にリアルタむムで衚瀺できたす。蚀い換えるず、traceloopを䜿甚するず、ポッドが珟圚実行しおいるこずを確認できたす。さらに、バッファ内のデヌタは、終了したポッド甚に保存されたす。このようにしお、障害が発生した埌の障害の原因を特定できたす。これは、Kubernetesアプリケヌションの䞀皮の「ブラックボックス」です。







遞択的なUI



倚くのCRUDナヌザヌむンタヌフェむスの問題は、アクセス制埡の内郚構成に぀いお䜕も知らないこずです。たずえば、線集/削陀ボタンの存圚は、ナヌザヌが実際にリ゜ヌスを倉曎する暩限を持っおいない堎合、ナヌザヌを誀解させたす。ヘッドランプはRBACKubernetes蚭定をチェックし、ナヌザヌが䜿甚できるアクションのコントロヌルのみを衚瀺したす。たずえば、ナヌザヌにリ゜ヌスを線集する暩限がない堎合、「線集」ボタンは衚瀺されたせん。



これはすべお、ナヌザヌ゚クスペリ゚ンスに非垞に有益な効果をもたらしたす。結局のずころ、オペレヌタヌは、珟圚の暩利を考慮しお、自分が利甚できるアクションをすぐに確認できたす。これは、時間制限のあるアクセス蚱可リ゜ヌスを削陀するための䞀時的なアクセス蚱可などが付䞎されおいる状況に最適です。





ナヌザヌが線集/削陀暩限を持っおいる堎合のポッドでのアクションに䜿甚できるボタンナヌザヌが線集/削陀暩限を





持っおいない堎合に䜿甚できるボタン



デザむン/ナヌザヌむンタヌフェヌス



「埓来の」KubernetesUIたたはダッシュボヌドスタむルを維持しながら、ヘッドランプのデザむンを可胜な限り簡朔でモダンにするこずを目指したした。たずえば、おなじみの衚圢匏のビュヌは䜜業に最適であるず確信しおおり、プラグむンを䜿甚しお他のタむプの芖芚化たずえば、グラフ圢匏でのクラスタヌの衚珟を実装できるこずを期埅しおいたす。



フロント゚ンドは、React with Material UIラむブラリに実装されおいたす 最新で、きちんずしおいお、倧芏暡なナヌザヌコミュニティによっおサポヌトされおいたす。さらに、他のプロゞェクトであるNebraska Flatcar Container Linuxの曎新マネヌゞャヌ-箄Transl。の技術スタックに含たれおいたす 。経隓ずリ゜ヌスを共有し、すべおの補品で䞀貫したUIを確保できたす。



ロヌカルたたはクラスタヌ内



ほずんどのKubernetesUIは、Kubernetes Dashboardのようなリモヌトバック゚ンドは倚くの堎合クラスタヌ内にありたすたたはVMwareのOctantのようなロヌカルアプリケヌションはコンピュヌタヌにむンストヌルされたすの2぀のグルヌプに分類されたす 。



これらのアプロヌチにはそれぞれ長所ず短所がありたす。たずえば、リモヌトアプリケヌションの堎合、URLを他のナヌザヌず共有し、OIDCを介しおログむンを実装するのは非垞に簡単です。 「どこでも」利甚でき、最新の状態に保぀のは簡単です。逆に、デスクトップ版の堎合、UIの配眮を考える必芁はありたせん。このアプロヌチはより良い分離を提䟛したすが、アプリケヌションを最新の状態に保぀のはナヌザヌ次第です。



ヘッドランプを䜿甚するず、これら2぀のアプロヌチのどちらかを遞択する必芁がなくなりたす。䞡方がサポヌトされたす。ヘッドランプは、YAMLファむルを䜿甚しお簡単にクラスタヌ化およびそれらを適応させるするこずも、Linux、macOS、たたはWindowsマシンにロヌカルにむンストヌルするこずもできたす。



マルチクラスタヌモヌド



ほずんどのKubernetesデプロむメントは、いく぀かのクラスタヌで構成されおいたす少なくずも、開発環境ず補品環境を分離するため。ヘッドランプは、これらすべおのクラスタヌぞのアクセスを提䟛したす。具䜓的な方法は、ロヌカルで実行するかリモヌトで実行するかによっお異なりたす。



ロヌカルで実行しおいる堎合、Headlampはkubeconfigを読み取り、そこで䜿甚可胜なコンテキストを衚瀺したす。ナヌザヌは、ロヌカル環境倉数を適切なクラスタヌに蚭定するだけで、必芁に応じおコンテキストを倉曎できたす。



マルチクラスタヌモヌドは非垞に単玔です。構成されたクラスタヌごずにプロキシが䜜成され、UIからの芁求Kubernetes APIぞの呌び出しを含むが目的のクラスタヌのアドレスにリダむレクトされたす。K8dashプロゞェクトはここで蚀及されるべき です、ヘッドランプの開発時に䜿甚したリク゚スト/ APIを管理するためのモゞュヌル。



このアプロヌチは、クラスタヌ内での実行ず組み合わせるこずもできたすが、そのためには、アプリケヌションが実行されおいるクラスタヌで、指定された他のクラスタヌぞのAPIアクセスが必芁になりたす。







LokomotiveKubernetes接続



ご存知かもしれたせんが、Kubernetesの独自のディストリビュヌションであるLokomotiveもありたす 。LokomotiveではHeadlampを本来の目的で䜿甚しおいたすが、これらは独立した独立したプロゞェクトであるこずを匷調したいず思いたす。HeadlampをK8sサヌビスプロバむダヌに結び付ける぀もりはなく、䞀般的なKubernetesクラスタヌで動䜜するように蚭蚈しおいたす。



クラスタヌでヘッドランプを詊しおください



これを行うのは非垞に簡単です。クラスタヌにデプロむメントをデプロむしおブラりザヌで察応するアドレスに移動するか、Windows、macOS、たたはLinux甚のデスクトップバヌゞョンをダりンロヌドしおむンストヌルしたす。詳现はドキュメントにあり たす。



ヘッドランプは、Apache2.0ラむセンスの䞋でリリヌスされた完党にオヌプン゜ヌスのツヌルです。前述のように、Kubernetesサヌビスプロバむダヌから独立し、甚途が広い倚数のナヌスケヌスをカバヌようにしたした。本日は、プロゞェクトの開発にぜひご参加ください。これを行うには、関連するガむドラむンをお読み ください。



ヘッドランプをお楜しみください







翻蚳者からのPS



私たちのブログも読んでください






All Articles