Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

ノヌト。 翻蚳。元ネタの䜜者はZalandoのHenning Jacobsです。 圌は、Kubernetes を操䜜するための新しい Web むンタヌフェむスを䜜成したした。これは、「Web 甚の kubectl」ずしお䜍眮付けられおいたす。 新しいオヌプン゜ヌス プロゞェクトがなぜ登堎したのか、既存の゜リュヌションではどのような基準が満たされなかったのか - 圌の蚘事を読んでください。

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

この投皿では、さたざたなオヌプン゜ヌス Kubernetes Web むンタヌフェむスをレビュヌし、ナニバヌサル UI の芁件を瀺し、開発した理由を説明したす。 Kubernetes WebView — 䞀床に耇数のクラスタヌのサポヌトずトラブルシュヌティングを容易にするように蚭蚈されたむンタヌフェむス。

ナヌスケヌス

Zalando では、倚数の Kubernetes ナヌザヌ (900 以䞊) ずクラスタヌ (100 以䞊) にサヌビスを提䟛しおいたす。 専甚 Web ツヌルのメリットが埗られる䞀般的な䜿甚䟋がいく぀かありたす。

  1. サポヌトを求める同僚ずのコミュニケヌション。
  2. むンシデントに察応し、その原因を調査したす。

サポヌト

私の経隓では、サポヌトに関するコミュニケヌションは次のようになりたす。

— 助けおください。サヌビス XYZ は利甚できたせん。
— 挔じるずきに芋えおくるものは䜕ですか kubectl describe ingress ...?

たたは CRD に぀いおも同様のもの:

— 本人確認サヌビスに問題がありたす...
— このコマンドは䜕を生成したすか? kubectl describe platformcredentialsset ...?

このような通信は通垞、コマンドのさたざたなバリ゚ヌションを入力するこずになりたす。 kubectl 問題を特定するために。 その結果、䌚話の双方が端末ず Web チャットを垞に切り替える必芁があり、さらに別の状況を芳察するこずになりたす。

したがっお、Kubernetes Web フロント゚ンドで次のこずを蚱可したいず考えおいたす。

  • ナヌザヌはできる リンクを亀換する そしお同じこずを芳察しおください。
  • 圹立぀だろう 人的ミスを避ける サポヌト䞭: たずえば、コマンドラむンでの間違ったクラスタヌぞのログむン、CLI コマンドのタむプミスなど。
  • 蚱可するだろう 独自のビュヌを生成する 同僚に送信するには、぀たりタグの列を远加し、XNUMX ペヌゞにさたざたな皮類のリ゜ヌスを衚瀺したす。
  • 理想的には、この Web ツヌルで次の蚭定ができる必芁がありたす。 YAML の特定のセクションぞの「ディヌプ」リンク (たずえば、倱敗の原因ずなっおいる間違ったパラメヌタを指摘する)。

むンシデント察応ず分析

むンフラストラクチャのむンシデントに察応するには、状況認識、圱響を評䟡し、クラスタヌ内のパタヌンを探す胜力が必芁です。 実際の䟋をいく぀か瀺したす。

  • 重芁な実皌働サヌビスに問題が発生しおいるため、次のこずを行う必芁がありたす。 すべおのクラスタヌ内のすべおの Kubernetes リ゜ヌスを名前で怜玢したすトラブルシュヌティングを行うため。
  • スケヌリング時にノヌドが枛少し始めるため、 すべおのクラスタヌでステヌタスが「保留䞭」であるすべおのポッドを怜玢したす問題の範囲を評䟡する。
  • 個々のナヌザヌが、すべおのクラスタヌにデプロむされた DaemonSet に関する問題を報告しおおり、それを解決する必芁がありたす。 問題は党䜓的なものですか?.

このような堎合の私の暙準的な解決策は次のようなものです for i in $clusters; do kubectl ...; done。 明らかに、同様の機胜を提䟛するツヌルを開発するこずが可胜です。

既存の Kubernetes Web むンタヌフェむス

Kubernetes ぞの Web むンタヌフェむスのオヌプン゜ヌスの䞖界はそれほど倧きくない*ため、次のコマンドを䜿甚しおさらに情報を収集しようずしたした。 Twitter:

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

*Kubernetes の Web むンタヌフェむスの数が限られおいるこずに぀いおの私の説明: クラりド サヌビスず Kubernetes ベンダヌは通垞、独自のフロント゚ンドを提䟛しおいるため、「優れた」無料の Kubernetes UI の垂堎は比范的小さいです。

あるツむヌトで知りたした K8ダッシュ, クベルネヌタヌ О オクタント。 これらず他の既存のオヌプン゜ヌス ゜リュヌションを芋お、それらが䜕であるかを理解しおみたしょう。

K8ダッシュ

「K8Dash は、Kubernetes クラスタヌを管理する最も簡単な方法です。」

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

K8ダッシュ 芋た目も良く、速いず感じたすが、䞊蚘の䜿甚䟋では倚くの欠点がありたす。

  • XNUMX ぀のクラスタヌの境界内でのみ機胜したす。
  • 䞊べ替えずフィルタリングは可胜ですが、パヌマリンクはありたせん。
  • カスタム リ゜ヌス定矩 (CRD) はサポヌトされおいたせん。

クベルネヌタヌ

「Kubernator は Kubernetes の代替 UI です。 高レベルの Kubernetes ダッシュボヌドずは異なり、クラスタヌ内のすべおのオブゞェクトに察する䜎レベルの制埡ず優れた可芖性を提䟛し、新しいオブゞェクトの䜜成、線集、競合の解決を行うこずができたす。 完党にクラむアント偎のアプリケヌション (kubectl など) であるため、Kubernetes API サヌバヌ自䜓以倖のバック゚ンドは必芁なく、クラスタヌのアクセス ルヌルも尊重されたす。」

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

これはかなり正確な説明です クベルネヌタヌ。 残念ながら、いく぀かの機胜が欠けおいたす。

  • XNUMX ぀のクラスタヌのみを提䟛したす。
  • リスト衚瀺モヌドはありたせん (぀たり、「保留䞭」ステヌタスのすべおのポッドを衚瀺するこずはできたせん)。

Kubernetesダッシュボヌド

「Kubernetes ダッシュボヌドは、Kubernetes クラスタヌ甚のナニバヌサル Web むンタヌフェむスです。 これにより、ナヌザヌはクラスタヌ自䜓を管理するだけでなく、クラスタヌ内で実行されおいるアプリケヌションの管理ずトラブルシュヌティングも行うこずができたす。」

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

残念なこずに、 Kubernetesダッシュボヌド 私のサポヌトやむンシデント察応掻動にはあたり圹に立ちたせん。理由は次のずおりです。

  • たずえば、リ゜ヌスをフィルタヌしたり䞊べ替え順序を倉曎したりする堎合、氞続的なリンクはありたせん。
  • ステヌタスでフィルタリングする簡単な方法はありたせん。たずえば、ステヌタスが「保留䞭」のすべおのポッドを衚瀺したす。
  • サポヌトされるクラスタヌは XNUMX ぀だけです。
  • CRD はサポヌトされおいたせん (この機胜は開発䞭です)。
  • カスタム列はありたせんタむプごずにラベルが付けられた列など kubectl -L).

Kubernetes オペレヌション ビュヌ (kube-ops-view)

「K8s クラスタヌ スペヌスのシステム ダッシュボヌド オブザヌバヌ」。

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

У Kubernetes の運甚ビュヌ たったく異なるアプロヌチ: このツヌルは、WebGL を䜿甚しおクラスタヌ ノヌドずポッドのみを衚瀺し、テキストによるオブゞェクトの詳现は衚瀺したせん。 これはクラスタヌの健党性 (ポッドが䜎䞋しおいるかどうか)* を簡単に抂芳するのには最適ですが、䞊蚘のサポヌトやむンシデント察応のナヌスケヌスには適しおいたせん。

* ノヌト。 翻蚳。: この意味で、あなたも私たちのプラグむンに興味があるかもしれたせん グラファナステヌタスマップで詳しく説明したした。 この蚘事.

Kubernetes リ゜ヌス レポヌト (kube-resource-report)

「ポッドず Kubernetes クラスタヌのリ゜ヌス リク゚ストを収集し、リ゜ヌス消費量ず比范しお、静的 HTML を生成したす。」

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

Kubernetes リ゜ヌス レポヌト クラスタヌ内のチヌム/アプリケヌション間のリ゜ヌス䜿甚量ずコスト配分に関する静的 HTML レポヌトを生成したす。 このレポヌトを䜿甚するず、アプリケヌションがデプロむされおいるクラスタヌをすばやく芋぀けるこずができるため、サポヌトやむンシデント察応に倚少圹立ちたす。

ノヌト。 翻蚳。: サヌビスずツヌルは、クラりド プロバむダヌ間のリ゜ヌスの割り圓おずそのコストに関する情報を衚瀺するのにも圹立぀堎合がありたす。 キュヌブコスト、レビュヌしたす 最近出版された.

オクタント

「Kubernetes クラスタヌの耇雑さをより深く理解できるように蚭蚈された、開発者向けの拡匵可胜な Web プラットフォヌムです。」

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

オクタントVMware が䜜成した は、私が比范的最近知った新しい補品です。 これを利甚するず、ロヌカル マシン䞊のクラスタヌを探玢するのに䟿利ですが (芖芚化もありたす)、サポヌトずむンシデント察応の問題には限られた範囲でしか察凊できたせん。 オクタントの欠点:

  • クラスタヌ怜玢はありたせん。
  • ロヌカル マシン䞊でのみ動䜜したす (クラスタヌにはデプロむされたせん)。
  • オブゞェクトの䞊べ替え/フィルタリングはできたせん (ラベル セレクタヌのみがサポヌトされおいたす)。
  • カスタム列を指定するこずはできたせん。
  • 名前空間ごずにオブゞェクトをリストするこずはできたせん。

たた、䞀郚の CRD では、Zalando クラスタヌを䜿甚した Octant の安定性にも問題がありたした。 圌は萜ちおいた.

Kubernetes Web View の玹介

「Web 甹 kubectl」。

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)

Kubernetes で利甚可胜なむンタヌフェむス オプションを分析した埌、新しいむンタヌフェむス オプションを䜜成するこずにしたした。 Kubernetes WebView。 結局のずころ、実際に必芁なのはすべおの力だけです kubectl りェブ䞊、぀たり:

  • ナヌザヌが kubectl の䜿甚を垌望するすべおの (読み取り専甚) 操䜜の可甚性。
  • すべおの URL は氞続的であり、同僚が共有したり他のツヌルで䜿甚したりできるように、ペヌゞを元の圢匏で衚す必芁がありたす。
  • すべおの Kubernetes オブゞェクトのサポヌト。これにより、あらゆる皮類の問題を解決できたす。
  • リ゜ヌス リストは、さらなる䜜業のためにダりンロヌドできる必芁がありたす (スプレッドシヌト、CLI ツヌルなど) grep) および保管 (䟋: 事埌分析甚)。
  • ラベルによるリ゜ヌスの遞択のサポヌト ( kubectl get .. -l);
  • さたざたなタむプのリ゜ヌスを組み合わせたリストを䜜成する機胜 ( kubectl get all) 同僚間で共通の運甚状況を把握するため (たずえば、むンシデント察応䞭)。
  • ダッシュボヌド、ロガヌ、アプリケヌション レゞストリなどの他のツヌルにカスタムのスマヌト ディヌプ リンクを远加する機胜。 トラブルシュヌティング/゚ラヌの解決ずむンシデントぞの察応を容易にするため。
  • JavaScript のフリヌズなどのランダムな問題を避けるために、フロント゚ンドはできる限りシンプル (玔粋な HTML) である必芁がありたす。
  • リモヌト コンサルティング䞭の察話を簡玠化するための耇数のクラスタのサポヌト (たずえば、URL を XNUMX ぀だけ芚えおおくため)。
  • 可胜であれば、状況分析を簡玠化する必芁がありたす (たずえば、すべおのクラスタヌ/名前空間のリ゜ヌスをダりンロヌドするためのリンクを䜿甚したす)。
  • 柔軟なリンクを䜜成し、テキスト情報を匷調衚瀺する远加の機䌚。たずえば、リ゜ヌス説明の特定のセクション (YAML の行) を同僚に瀺すこずができたす。
  • 特定のクラむアントの芁件に合わせおカスタマむズする機胜。たずえば、CRD 甚の特別な衚瀺テンプレヌト、独自のテヌブル ビュヌを䜜成したり、CSS スタむルを倉曎したりできたす。
  • コマンドラむンでさらに調査するためのツヌル (完党なコマンドの衚瀺など) kubectl、コピヌの準備ができたした);

Kubernetes Web View で解決されるタスクを超えお (ノンゎヌル) 残った:

  • Kubernetes オブゞェクトの抜象化。
  • アプリケヌション管理 (デプロむメント管理、Helm チャヌトなど)。
  • 曞き蟌み操䜜 (安党な CI/CD および/たたは GitOps ツヌルを通じお実行する必芁がありたす)。
  • 矎しいむンタヌフェむス (JavaScript、テヌマなど)。
  • 芖芚化を参照 kube-ops-view);
  • コスト分析を参照 kube-リ゜ヌス-レポヌト).

Kubernetes Web View はサポヌトずむンシデント察応にどのように圹立ちたすか?

サポヌト

  • すべおのリンクは氞続的です、同僚ずの情報亀換が容易になりたす。
  • 䜜成できたす あなたのアむデアたずえば、XNUMX ぀の特定のクラスタヌ内の特定のラベルを持぀すべおのデプロむメントずポッドを衚瀺したす (リンク内でカンマで区切っお耇数のクラスタヌ名ずリ゜ヌス タむプを指定できたす)。
  • 参照できたす YAML ファむル内の特定の行 オブゞェクト。オブゞェクトの仕様に朜圚的な問題があるこずを瀺したす。

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)
Kubernetes Web View でのクラスタヌによる怜玢

むンシデント察応

  • グロヌバル怜玢 (グロヌバル怜玢) すべおのクラスタヌ内のオブゞェクトを怜玢できたす。
  • リストビュヌ すべおのクラスタヌ内の特定の状態/列を持぀すべおのオブゞェクトを衚瀺できたす (たずえば、ステヌタスが「保留䞭」であるすべおのポッドを怜玢する必芁がありたす)。
  • オブゞェクトのリストをダりンロヌドできたす 埌で分析できるようにタブ区切り倀 (TSV) 圢匏で保存したす。
  • カスタマむズ可胜な倖郚リンク 関連するダッシュボヌドや他のツヌルに切り替えるこずができたす。

Kubernetes Web View の発衚 (および Kubernetes の他の Web UI の抂芁)
Kubernetes Web View: すべおのクラスタヌ内で「保留䞭」ステヌタスを持぀ポッドのリスト

Kubernetes Web View を詊しおみたい堎合は、チェックアりトするこずをお勧めしたす ドキュメンテヌション たたは芋おください ラむブデモ.

もちろん、むンタヌフェむスはさらに改善される可胜性がありたすが、珟時点では、Kubernetes Web View は、必芁に応じお URL パスを手動で操䜜するこずを厭わない「䞊玚ナヌザヌ」向けのツヌルです。 コメント/远加/提案がある堎合は、ご連絡ください。 Twitterで私ず䞀緒に!

この蚘事は、Kubernetes Web View の䜜成に至った背景の簡単な歎史です。 さらに続きたす (ノヌト。 翻蚳。: それらは期埅されるべきです 著者のブログ.)

PS翻蚳者より

私たちのブログもお読みください:

出所 habr.com

コメントを远加したす