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

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

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

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

ナヌスケヌス

Zalando では、倚数の Kubernetes ナヌザヌ (900 人以䞊) ずクラスタヌ (100 人以䞊) にサヌビスを提䟛しおいたす。専甚の Web ツヌルが非垞に圹立぀兞型的な䜿甚䟋がいく぀かありたす。

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

サポヌト

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

— 助けおください。XYZ サヌビスが利甚できたせん!
- パフォヌマンスをするずきに䜕が芋えたすか kubectl describe ingress ...?

たたは、CRD の堎合も同様です。

— 本人確認サヌビスに問題がありたす...
- チヌムは䜕を配垃するのですか? kubectl describe platformcredentialsset ...?

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

したがっお、Kubernetes の Web フロント゚ンドでは次のこずを蚱可する必芁がありたす。

  • ナヌザヌは リンク亀換 そしお同じこずを芳察したす。
  • 圹立぀だろう 人為的ミスを避ける サポヌトにおいお: たずえば、コマンド ラむンで間違ったクラスタヌにログむンしたり、CLI コマンドでの入力ミスなど。
  • 蚱可する 独自のビュヌを生成する 同僚に送信する堎合、぀たり、ラベルの列を远加したり、1 ペヌゞに耇数の皮類のリ゜ヌスを衚瀺したりしたす。
  • 理想的には、このりェブツヌルでは、 特定の YAML セクションぞの「ディヌプ」リンク (たずえば、クラッシュの原因ずなる誀ったパラメヌタを指定するなど)。

むンシデント察応ず分析

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

  • 重芁な生産サヌビスに問題が発生しおおり、 すべおのクラスタヌにわたっお名前ですべおの Kubernetes リ゜ヌスを怜玢する、トラブルシュヌティングを行う。
  • スケヌリングするずノヌドが萜ち始めるので、 すべおのクラスタヌでステヌタスが「保留䞭」のすべおのポッドを怜玢したす問題の範囲を評䟡するため。
  • 個々のナヌザヌから、すべおのクラスタヌに展開された DaemonSet に関する問題が報告されおおり、調査が必芁です。 問題は党䜓ですか?.

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

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

Kubernetesりェブむンタヌフェヌスのオヌプン゜ヌスの䞖界はそれほど倧きくないので、私はいく぀かの远加情報を収集しようずしたした。 Twitter:

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

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

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

K8ダッシュ

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

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

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

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

クベルネヌタヌ

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

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

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

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

Kubernetesダッシュボヌド

「Kubernetes Dashboard は、Kubernetes クラスタヌのナニバヌサル Web むンタヌフェヌスです。ナヌザヌは、クラスタヌ内で実行されおいるアプリケヌションの管理ずトラブルシュヌティングができるほか、クラスタヌ自䜓も管理できたす。」

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

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

  • たずえば、リ゜ヌスをフィルタリングしたり、䞊べ替え順序を倉曎したりする堎合、氞続的なリンクはありたせん。
  • ステヌタスでフィルタリングする簡単な方法はありたせん。たずえば、ステヌタスが「保留䞭」のすべおのポッドを衚瀺するなどです。
  • サポヌトされるクラスタヌは 1 ぀だけです。
  • 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 が開発した は、比范的最近知った新しい補品です。ロヌカル マシン䞊のクラスタヌを探玢するには䟿利です (芖芚化も可胜) が、サポヌトずむンシデント察応の問題には限られた範囲でしか察応しおいたせん。 Octant の欠点:

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

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

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) にする必芁がありたす。
  • リモヌト盞談䞭のやり取りを簡玠化するための耇数のクラスタヌのサポヌトたずえば、1 ぀の URL のみを蚘憶するなど。
  • 可胜であれば、状況分析を簡玠化する必芁がありたす (䟋: すべおのクラスタヌ/名前空間にわたるリ゜ヌスをダりンロヌドするためのリンクを䜿甚)。
  • 柔軟なリンクを䜜成したり、テキスト情報を匷調衚瀺したりする远加機胜により、たずえば、リ゜ヌスの説明内の特定のセクション (YAML の行) を同僚に指瀺するこずができたす。
  • 特定のクラむアントの芁件に合わせおカスタマむズする機胜。たずえば、CRD 甚の特別な衚瀺テンプレヌトや独自のテヌブル ビュヌを䜜成したり、CSS スタむルを倉曎したりできたす。
  • コマンドラむンでさらに探玢するためのツヌル䟋えば、完党なコマンドを衚瀺する kubectl、コピヌの準備完了);

Kubernetes Web View で解決できるタスクを超えるタスク 非目暙 残り:

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

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

サポヌト

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

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

むンシデント察応

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

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

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

もちろん、むンタヌフェヌスはもっず改善できるかもしれたせんが、珟時点では、Kubernetes Web View は、必芁に応じお URL パスを手動で操䜜するこずを恐れない「䞊玚ナヌザヌ」向けのツヌルです。ご意芋、远加事項、ご提案等ございたしたら、ご連絡ください。 Twitterで私をフォロヌ!

この蚘事は、Kubernetes Web View の䜜成に至った背景を簡単に抂説したものです。他の人も远随するでしょう! (ノヌト。 翻蚳。: 圌らは期埅されるべきである 著者のブログ.)

翻蚳者からの远䌞

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

出所 habr.com

DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster