
システムを完全に操作するには、コマンドライン ユーティリティ (Kubernetes の場合、これは kubectl) を知っておくことが重要です。一方、よくデザインされ、思慮深いグラフィカルインターフェースは、多くのことを実現できます。о通常のタスクのほとんどを実行し、システムを操作するときに追加の機会を開きます。
昨年、私たちは翻訳版を出版しました Kubernetes向け、ウェブインターフェースの発表に合わせて 。この記事とユーティリティの著者である Zalando の Henning Jacobs 氏は、この新製品を「Web 用の kubectl」と位置付けています。彼は、技術サポートの形式でのやり取り(たとえば、Web リンクで問題をすばやく表示するなど)と、一度に多くのクラスター内の問題を検索するインシデント対応に便利な機能を備えたツールを作成したいと考えていました。彼の創作は今日でも発展し続けています (主に著者自身の努力によるものです)。
さまざまなサイズの複数の Kubernetes クラスターにサービスを提供する当社では、顧客に視覚的な作業ツールを提供できることにも関心があります。適切なインターフェースを選択する際に、次の機能が重要でした。
- ユーザー権限の差別化 (RBAC) のサポート。
- 名前空間と標準の Kubernetes プリミティブ (デプロイメント、StatefulSet、サービス、Cronjob、ジョブ、Ingress、ConfigMap、シークレット、PVC) の状態の視覚化。
- ポッド内のコマンドラインにアクセスする。
- ポッドログの表示。
- ポッドのステータスを表示(
describe status); - ポッドの取り外し。
消費されたリソースの表示 (ポッド/コントローラー/名前空間ごと) や K8s プリミティブの作成/編集などのその他の機能は、このワークフローには関係ありません。
私たちの標準である従来の Kubernetes ダッシュボードからレビューを始めます。世界は止まってはいない (つまり、Kubernetes は新しい GUI を継続的に入手している) ため、現在の代替手段についても説明し、記事の最後にある比較表にすべてをまとめます。
NB: このレビューでは、すでに検討した解決策を繰り返すことはありません。 ただし、完全性を期すために、関連するオプション (K8Dash、Octant、Kubernetes Web View) が最終的な表に含まれています。
1. Kubernetesダッシュボード
- ;
- (GitHub スター数 8000 以上)
- ライセンス: Apache 2.0;
- 簡単に言うと、「Kubernetes クラスター用のユニバーサル Web インターフェースです。ユーザーは、クラスター内で実行されているアプリケーションの管理とトラブルシューティングに加え、クラスター自体の管理も行えます。」

これは、Kubernetes の作成者が公式ドキュメントで説明している汎用パネルです。 (それでも デフォルト)。これは、クラスター内のアプリケーションの日常的な操作とデバッグのニーズに対応することを目的としています。私たちはこれを、開発者にクラスターへの必要かつ十分なアクセスを提供できる本格的な軽量ビジュアル ツールとして使用しています。その機能は、クラスターの使用中に発生するすべてのニーズをカバーします。 (中 パネルの機能の一部をデモンストレーションしました)。ご想像のとおり、これは上記のすべての要件を満たしていることを意味します。
Kubernetes ダッシュボードの主な機能は次のとおりです。
- ナビゲーション: 名前空間別に主要な K8s オブジェクトを表示します。
- 管理者権限がある場合、パネルにはノード、名前空間、永続ボリュームが表示されます。ノードのメモリ使用量、プロセッサ使用量、リソース割り当て、メトリック、ステータス、イベントなどの統計情報が利用できます。
- 名前空間にデプロイされたアプリケーションを、そのタイプ (デプロイメント、StatefulSet など)、それらの間の関係 (レプリカセット、水平ポッドオートスケーラー)、一般およびパーソナライズされた統計と情報別に表示します。
- サービスと Ingress、およびそれらとポッドやエンドポイントとの関係を表示します。
- ファイル オブジェクトとストレージを表示します: 永続ボリュームと永続ボリューム要求。
- ConfigMap と Secret を表示および編集します。
- ログを表示します。
- コンテナ内のコマンドライン アクセス。
大きな欠点(ただし、私たちにとってはそうではありません)は、マルチクラスター操作のサポートがないことです。このプロジェクトはコミュニティによって積極的に開発されており、Kubernetes APIの新しいバージョンと仕様のリリースで現在の機能をサポートしています。パネルの最新バージョンは 22 年 2020 月 1.18 日現在 - Kubernetes XNUMX との互換性がテスト済み。
2。 レンズ
- ;
- ;
- (GitHub スター数: 約 4800)
- ライセンス: MIT;
- 一言で言えば、「Kubernetes IDE」です。

このプロジェクトは、Kubernetes 用の本格的な統合開発環境 (IDE) として位置付けられています。さらに、複数のクラスターとその中で実行される多数のポッド (25 個のポッドでテスト済み) で動作するように最適化されています。
Lens の主な機能:
- クラスター内にインストールを必要としないスタンドアロンアプリケーション(より正確には、すべてのメトリックを取得するには Prometheus が必要ですが、既存のインストールを使用できます)。「メイン」インストールは、パーソナルコンピュータ上で実行されます。 Linux, macOS または Windows.
- マルチクラスター管理 (数百のクラスターをサポート)。
- クラスターのステータスをリアルタイムで視覚化します。
- 組み込みの Prometheus に基づくリソース使用状況のグラフと履歴の傾向。
- コンテナおよびクラスター ノードのコマンド ラインへのアクセス。
- Kubernetes RBAC を完全にサポートします。
現在のリリース - 16年2020月XNUMX日からオリジナル版はKontenaによって作成され、現在すべての知的財産は特別な組織に譲渡されています。 は、「Kontenaのオープンソースソフトウェアと製品を保存し、利用できるようにする」責任を負う「クラウドネイティブのオタクと技術者の団体」と説明されています。
Lens は、Kubernetes GUI カテゴリで Kubernetes Dashboard に次いで GitHub 上で 2 番目に人気のあるプロジェクトです。 CLI* カテゴリに属さないその他のオープン ソース ソリューションは、あまり人気がありません。
*レビューのボーナス部分でK9sについてご覧ください。
3. Kubernetes
- ;
- ;
- (GitHub スター数 200 以上)
- ライセンス: 独自のもの。
- 一言で言えば、「クラスター管理がシンプルになります。」

これはパーソナルコンピュータにインストールされる独自のアプリケーションです(サポート対象) Linux, macOS, Windows開発者たちは、コマンドラインユーティリティを完全に置き換えることで、コマンドを覚える必要がなくなり、動作速度が10倍に向上すると約束している。
このツールの興味深い機能の 1 つは、Helm チャートに対する組み込みサポートですが、欠点の 1 つは、アプリケーション パフォーマンス メトリックが不足していることです。
Kubernetes の主な機能:
- クラスターのステータスの便利な表示。関連するすべてのクラスター オブジェクトとその依存関係を 1 つの画面で表示します。すべてのオブジェクトの準備状態は赤/緑です。リアルタイムのステータス更新を備えたクラスター ステータス表示モード。
- アプリを削除および拡大縮小するためのクイックアクション ボタン。
- マルチクラスタ操作のサポート。
- 名前空間での作業が簡単になります。
- Helm チャートと Helm リポジトリ (プライベートのものを含む) のサポート。 Web インターフェースでチャートをインストールおよび管理します。
製品の現在の価格は、30 人のユーザーが任意の数の名前空間とクラスターを使用して XNUMX ユーロの XNUMX 回限りの支払いです。
4. キュベビアス
- ;
- ;
- (GitHub スター数: 約 500)
- ライセンス: Apache 2.0
- 一言で言えば、「Kubevious は、Kubernetes クラスター、アプリケーション構成、および状態の可視性を安全かつわかりやすくします。」

このプロジェクトのアイデアは、クラスターにデプロイされたアプリケーションの構成を分析およびデバッグするために設計されたツールを作成することです。著者は主にこれらの機能の実装に重点を置き、より一般的なことは後回しにしました。
Kubevious の主な特徴と機能:
- アプリケーション指向の方法でクラスターを視覚化します。インターフェイス内の関連オブジェクトは階層にグループ化されます。
- 構成の依存関係と、その変更による連鎖的な結果を視覚的に表示します。
- クラスター構成エラーを表示します(ラベルの誤った使用、ポートの欠落など)。 (ちなみに、この機能に興味がある方は、 それについて私たちは .)
- 前述の点に加えて、潜在的に危険なコンテナの検出も可能です。つまり、権限(属性)が多すぎるコンテナなどです。
hostPID,hostNetwork,hostIPC、取り付けdocker.sock等)。 - 高度なクラスター検索システム (オブジェクト名だけでなく、そのプロパティでも検索)。
- 容量計画とリソースの最適化のためのツール。
- 組み込みの「タイムマシン」(オブジェクトの構成で以前に発生した変更を確認する機能)。
- Roles、RoleBindings、ServiceAccounts のピボット テーブルを使用して RBAC を管理します。
- 1 つのクラスターでのみ動作します。
このプロジェクトの歴史は非常に短く(最初のリリースは11年2020月XNUMX日に行われました)、開発の安定化または減速の期間が出現したようです。以前のバージョンが頻繁にリリースされていた場合、最新リリース( (15年2020月4日) 当初の開発ペースより遅れております。これはおそらく貢献者の数が少ないことが原因です。リポジトリの履歴には XNUMX 人しかおらず、実際の作業はすべて XNUMX 人の人物によって行われています。
5. キューブワイズ
- ;
- ライセンス: 独自ライセンス (オープンソースになる予定)
- 一言で言えば、「Kubernetes 用のシンプルなマルチプラットフォーム クライアント」です。

VMware の新製品。もともと社内ハッカソン (2019 年 XNUMX 月) の一環として作成されました。これはパソコンにインストールされ、 (サポート対象) Linux, macOS и Windows)また、kubectl のバージョンが v1.14.0 以上である必要があります。
Kubewise の主な機能:
- 最も頻繁に使用される Kubernetes エンティティ (ノード、名前空間など) とインターフェースで対話します。
- 異なるクラスターに対する複数の kubeconfig ファイルのサポート。
- 環境変数を設定できるターミナル
KUBECONFIG. - 指定された名前空間のカスタム kubeconfig ファイルを生成します。
- 高度なセキュリティ機能 (RBAC、パスワード、サービス アカウント)。
今のところ、このプロジェクトにはバージョン1つのリリースしかありません 26年2019月2020日から。さらに、著者はこれをオープンソースとしてすぐにリリースする予定でしたが、内部的な問題(技術的な問題とは関係ありません)により、それができませんでした。 XNUMX 年 XNUMX 月現在、著者は次のリリースに取り組んでおり、同時にオープンソース プロセスを開始する予定です。
6. OpenShiftコンソール
- ;
- (GitHub スター数: 約 150)
- ライセンス: Apache 2.0;
- 一言で言えば、「OpenShift クラスターの UI」です。

このウェブインターフェースはOpenShiftディストリビューションの一部ですが( )、著者 通常の (バニラ) Kubernetes インストールでインストール/使用できる機能。
OpenShift Console は長い間進化を続けており、多くの機能を吸収してきました。主なものを挙げてみましょう:
- インターフェースへの共通のアプローチ - コンソールで利用できる機能の 2 つの「観点」: 管理者向けと開発者向け。モード 開発者の視点 オブジェクトを開発者にとってより理解しやすい形式 (アプリケーション別) でグループ化し、アプリケーションのデプロイ、ビルド/デプロイ ステータスの追跡、Eclipse Che によるコード編集などの一般的なタスクを解決するためのインターフェイスを構築します。
- ワークロード、ネットワーク、ストレージ、アクセス権を管理します。
- プロジェクトとアプリケーションのワークロードを論理的に分離します。最新リリースの4.3つであるvXNUMXでは、 特別な プロジェクトダッシュボード、プロジェクトの断面における使い慣れたデータ(デプロイメント、ポッドなどの数とステータス、リソース消費量やその他のメトリック)を表示します。
- クラスターのステータスとクラスター内で発生した変更 (イベント) をリアルタイムで更新して表示します。ログの表示。
- Prometheus、Alertmanager、Grafana に基づいて監視データを表示します。
- 管理オペレータは、 .
- Docker経由で実行されるビルドの管理(Dockerfileで指定されたリポジトリから) または任意の外部ユーティリティ。
NB: 他の比較は追加しませんでした Kubernetesディストリビューション (例えば、あまり知られていない ): これらのアプリケーションのグラフィカル インターフェイスは非常に高度ですが、通常は、より大規模なシステムの統合スタックの一部として提供されます。ただし、標準の K8s インストールでは完全に機能するソリューションがいくつか欠けていると思われる場合は、コメントでお知らせください。
ボーナス
1. Kubernetes 上の Portainer ベータ版
- ;
- (GitHub スター数: 約 100)
- ライセンス: Zlib(?) (これは親プロジェクトのものです).
Docker を操作するための同名の人気のインターフェースを開発した Portainer チームのプロジェクトです。このプロジェクトはまだ開発の初期段階にあるため(最初の、そして唯一のベータ版) 16年2020月XNUMX日現在、この機能は評価されていません。しかし、これは多くの人にとって興味深いことかもしれません。これがあなたにとって興味深いことであれば、今後の展開に注目してください。
2. アイスパネル
- ;
- ライセンス: 独自のもの。
- 一言で言えば、「Kubernetes ビジュアル エディター」です。

この新しいデスクトップ アプリケーションは、シンプルなドラッグ アンド ドロップ インターフェースを使用して、Kubernetes リソースをリアルタイムで視覚化および管理することを目的としています。現在サポートされているオブジェクトは、Pod、Service、Deployment、StatefulSet、PersistentVolume、PersistentVolumeClaim、ConfigMap、および Secret です。彼らはすぐにHelmのサポートを追加することを約束しています。主な欠点は、コードの閉鎖性( )そして支援の欠如 Linux (現時点ではバージョンのみが利用可能です) Windows и macOS(もっとも、これも時間の問題である可能性が高い)。
3. k9s
- ;
- ;
- (GitHub スター数: 約 7700)
- ライセンス: Apache 2.0;
- 一言で言えば、「クラスターをスタイリッシュに管理できる Kubernetes のコンソール インターフェース」です。

このユーティリティは、コンソール GUI を提供しているため、レビューのボーナス部分にのみ登場しました。しかし、作者は文字通りターミナルから最大限の機能を引き出し、便利なインターフェースだけでなく、6 つの定義済みデザイン テーマ、開発されたキーボード ショートカット システム、コマンドのエイリアスも提供しました。彼らの徹底したアプローチは外見だけにとどまりません。k9s の機能は実に印象的で、リソース管理、クラスター ステータスの表示、依存関係のある階層的なリソースの表示、ログの表示、RBAC のサポート、プラグインによる機能の拡張など、幅広い K8s コミュニティに好評を博しました。プロジェクトの GitHub スターの数は、公式の Kubernetes ダッシュボードとほぼ同じです。
4. アプリケーションコントロールパネル
そしてレビューの最後には、別のミニカテゴリがあります。これには、Kubernetes クラスターの包括的な管理用ではなく、クラスターにデプロイされているものを管理するために設計された 2 つの Web インターフェースが含まれています。
ご存知のとおり、Kubernetes で複雑なアプリケーションをデプロイするための最も成熟し普及しているツールの 1 つは Helm です。存在期間を通じて、簡単に展開できるように多くのパッケージ (Helm チャート) が蓄積されてきました。 。したがって、チャートのライフサイクルを管理できる適切な視覚ツールが登場するのは当然のことです。
4.1.単眼鏡
- (GitHub スター数 1300 以上)
- ライセンス: Apache 2.0;
- 簡単に言うと、「複数のリポジトリにわたって Helm チャートを検索および検出するための Web アプリケーション。Helm ハブ プロジェクトの基盤として機能します。」

Helm の作者によるこの開発は Kubernetes にインストールされ、1 つのクラスター内で動作して、割り当てられたタスクを実行します。しかし、現時点ではプロジェクトはほとんど進展していない。その主な目的は、Helm Hub の存在をサポートすることです。その他のニーズについては、著者は Kubeapps (下記参照) または Red Hat Automation Broker (OpenShift の一部ですが、開発は終了しています) を推奨しています。
4.2. Kubeapps
- ;
- ;
- (GitHub スター数: 約 2100)
- ライセンス: Apache 2.0
- 一言で言えば、「Kubernetes 用のアプリ ダッシュボード」です。

Bitnami の製品で、Kubernetes クラスターにもインストールされますが、プライベート リポジトリでの作業に当初重点が置かれている点で Monocular とは異なります。
Kubeapps の主な特徴と機能:
- リポジトリから Helm チャートを表示およびインストールします。
- クラスターにインストールされている Helm ベースのアプリケーションを確認、更新、削除します。
- カスタムおよびプライベート チャート リポジトリの操作をサポートします (ChartMuseum および JFrog Artifactory をサポートします)。
- サービス カタログおよびサービス ブローカーからの外部サービスを表示および操作します。
- サービス カタログ バインディングを使用してインストールされたアプリケーションを公開します。
- RBAC を使用した認証と権限の分離のサポート。
ファイナルテーブル
以下は、既存のビジュアル インターフェースの主な機能を要約して集約し、比較しやすくした概要表です。
(表のオンライン版 .)
まとめ
Kubernetes GUI は、かなり特殊で新しいニッチ分野です。しかし、非常に活発に発展しており、すでにかなり成熟したソリューションと、まだ成長の余地がある非常に新しいソリューションの両方が見つかります。さまざまなアプリケーションに対応し、ほぼすべての好みに合う機能と外観を提供します。このレビューが、現在のニーズに最適なツールを選択する際に役立つことを願っています。
PS
ありがとう 比較表の OpenShift コンソール データ用です。
私たちのブログもお読みください:
- «";
- «";
- «";
- «'。
出所: habr.com
