Kubernetes ダッシュボードとは何ですか?Kubernetes Dashboard は、Kubernetes クラスターを管理するための Web ベースのユーザーインターフェース (Web UI) です。開発者や管理者は、アプリケーション、ノード、ストレージ、ネットワークなどの情報を含むクラスターのステータスを、グラフィカルユーザーインターフェースを通じて簡単に表示、管理、監視できます。 Kubernetes ダッシュボードは次の機能を提供します。 1. リソース ビュー: ノード、ポッド、サービス、デプロイメントなど、Kubernetes クラスター内のすべてのリソースを表示できます。
3. ログの表示: コンテナのログとイベントを表示できます。 4. ヘルス ステータス: ポッド、ノード、サービスのヘルス ステータスを表示できます。 5. 視覚化されたメトリック: 視覚化ツールを使用して、CPU、メモリ、ネットワーク使用量などのクラスター内のメトリック データを表示できます。 Kubernetes Dashboard は、Kubernetes クラスターをシンプルかつ直感的に管理できるツールです。コマンドラインの操作にあまり慣れていないユーザーや、日常業務で頻繁に Kubernetes クラスターを管理する必要がある開発者や管理者にとって、非常に便利で役立つツールです。 Kubernetes ダッシュボードは Web UI を通じてクラスターを管理するため、比較的高いセキュリティ要件があり、適切に構成および保護する必要があることに注意することが重要です。 Kubernetesは、コアオペレーションを処理するための「kubectl」と呼ばれるコマンドラインインターフェース(CLI)コンポーネントを提供しています。しかし、エンタープライズ規模でCLIを使用するには、2つの大きな障害があります。
Dashboard by Kubernetes(Kubernetes Dashboardとも呼ばれます)は、Kubernetesクラスターへのアプリケーションのデプロイ、すべてのリソースの健全性の監視、発生した問題のトラブルシューティングを行うためのWebベースのユーザーインターフェースです。このアプリケーションは、DevOps、Ops、SREチームがデプロイメント、ステートフルセット、ジョブなどのKubernetesリソースを管理するのに役立ちます。アプリケーションはマニフェストファイルを使用して迅速にデプロイでき、ヘルプはUIから直接更新できます。 Kubernetesダッシュボードの機能Kubernetes ダッシュボードの主な機能は次のとおりです。
まとめると、Kubernetes DashboardはKubernetesクラスターの管理を大幅に簡素化し、開発者や管理者がクラスターを容易に確認・管理できるようにすることで、作業効率を向上させます。さらに、Kubernetes Dashboardは堅牢なセキュリティを提供し、Kubernetesクラスターへの安全なアクセスを保証します。 Kubernetes ダッシュボードは、主に次の 2 つの機能により DevOps チームにとって魅力的です。
クラスタ全体の可視性とトラブルシューティングKubernetesダッシュボードでは、実行中のさまざまなワークロードとその合計数を確認できます。DevOpsエンジニアは、ワークロード、サービス、構成、ストレージ、クラスタービューを可視化できます。 Kubernetes クラスタでは、サービスをより効率的かつ確実に管理するために、開発者と管理者はクラスタ全体の可視性とトラブルシューティングを確保する必要があります。クラスタ全体の可視性とトラブルシューティングを確保するための一般的な方法を以下に示します。
企業やアプリケーションによってニーズや制限が異なるため、開発者や管理者は実際の状況に基づいて適切な可視性およびトラブルシューティング ソリューションを選択する必要があることに注意することが重要です。 ワークロードビューワークロード ビューは、Kubernetes ダッシュボードの機能の 1 つで、デプロイメント、StatefulSet、DaemonSet など、Kubernetes クラスターで実行されているアプリケーションのさまざまなリソースに関する情報を表示します。 ワークロード ビューでは、次の側面に関する情報が提供されます。
ワークロードビューを使用すると、開発者と管理者は、Kubernetes クラスターで実行されているアプリケーションのさまざまなリソース(ランタイムステータス、サービス、ストレージボリューム、関連するポッドなど)をより簡単に確認できます。これにより、開発者と管理者は問題をより迅速に特定して解決できるようになり、システムの信頼性と可用性が向上します。ワークロードビューでは、デプロイメント、ポッド、レプリカセット、デーモンセット、ジョブ、ステートフルセットなど、クラスター内のすべての名前空間で実行されているワークロードリソースに関する詳細情報を取得できます。クラスター内の特定の名前空間に基づいて、きめ細かな検索を実行することもできます。 ポッドビューPod View は、Kubernetes クラスターで実行中の Pod に関する詳細情報 (Pod のステータス、コントローラー情報、関連するコンテナーなど) を表示する Kubernetes ダッシュボードの機能です。 ポッド ビューでは、次の側面に関する情報が提供されます。
ワークロードの最も重要な側面の 1 つは、特定のノードとその名前空間で実行されているポッドの数です。 ユーザーは、ポッドに関する次のような詳細情報を受け取ります。
同様に、Kubernetes ダッシュボードは、名前空間の集約ビューのほか、名前空間内のサービスとエントリ オブジェクト、構成マッピング、ネットワーク ポリシー、機密ボリューム クレームと永続ボリューム クレームの詳細ビューも提供します。 サービスと入場ビューエントリービューでは、Kubernetes ダッシュボードはユーザーが Kubernetes クラスターにアクセスするためのゲートウェイとして機能します。ユーザーは Web ブラウザから Kubernetes ダッシュボードにアクセスし、Kubernetes のリソースとワークロードを表示および管理できます。Kubernetes ダッシュボードでは、コンテナ、デプロイメント、サービス、名前空間などのリソースを表示および編集できるほか、アプリケーションの実行状況の監視グラフも表示できます。 Kubernetes ダッシュボードは、実行中のサービスと Ingress オブジェクトを可視化します。これには、各サービスまたは Ingress が属する名前空間、ラベル、クラスター IP が含まれます。ユーザーは、各サービスのラベル、ポッド、エンドポイントなど、より詳細な情報を取得できます。 構成とストレージビュー構成ビューとストレージ ビューは、IT サービスの構成とストレージ管理を記述するために使用される ITIL フレームワークの 2 つのビューです。 構成ビューは、ITILフレームワークにおけるサービスとインフラストラクチャの構成を記述するビューです。ITリソースからサービスまで、あらゆるレベルを網羅しています。構成ビューは、サービスコンポーネントの構成、それらの関係性、依存関係をより深く理解するのに役立ちます。また、サーバーのハードウェア構成情報、ネットワークトポロジ、ソフトウェアおよびアプリケーションのバージョンと設定など、さまざまな構成項目とそれらの関係性も構成ビューに含まれます。 ストレージビューとは、ITILフレームワークにおけるストレージ管理を記述するビューです。ストレージリソースの構成とストレージの割り当て方法が含まれます。ストレージビューは、ユーザーがストレージの構造と仕様をより深く理解し、ストレージリソースの使用状況、パフォーマンス、および可用性を監視するのに役立ちます。 構成ビューとストレージビューは通常、手動で作成・管理され、ITサービス管理において重要な役割を果たします。これらの2つのビューを利用することで、ITプロフェッショナルはITリソースの構成と設定をより深く理解し、これらの情報に迅速にアクセスして連携できるため、サービスの品質と効率性が向上します。 他のオブジェクトビューと同様に、Kubernetes ダッシュボードには、クラスター内の永続ボリュームクレーム (PCV) に関する詳細情報が表示されます。これには、ステータス、ストレージボリューム、ストレージクラス、アノテーション、タグ、ネームスペースなどが含まれます。また、ダッシュボードには、クラスター内のアプリケーションにデプロイされたクラスター構成も表示され、UI から直接編集できます。 UIベースの展開UIベースのデプロイメントとは、スクリプトやコマンドラインコードを記述することなく、グラフィカルユーザーインターフェース(UI)を使用してアプリケーションやサービスを迅速に作成、構成、デプロイすることを指します。このアプローチは、デプロイメントや構成にコマンドラインを使いたくない、あるいは使い慣れていない開発者や管理者に適しています。 ユーザーインターフェース(UI)は通常、ユーザーフレンドリーなインターフェースを提供し、ユーザーが簡単な手順でアプリケーションやシステムをデプロイできるようにします。UIを通じて、ユーザーはコンテナイメージ、ネットワーク構成、ストレージオプションなど、必要なデプロイおよびインストールオプションを選択・設定できます。また、UIはデプロイ状況やエラーメッセージに関するリアルタイムのフィードバックを提供することで、ユーザーが問題をより適切に追跡・解決できるようにします。 UIベースのデプロイメントは、プラットフォームやサービスプロバイダー固有のものでも、Dockerのような汎用的なものでも構いません。エンタープライズIT環境では、このアプローチによりデプロイメント速度の向上、ユーザーエラー率の低減、メンテナンスの簡素化が期待できます。Kubernetesダッシュボードを使用すると、UIから任意の(ワークロード)リソースをデプロイできます。マニフェストファイルはブラウザで作成することも、Gitなどのソースからアップロードすることもできます。KubernetesダッシュボードはKubernetesコントローラーと直接通信し、作成されたリソースオブジェクトを取得します。以下の例では、NGINX 1.19.0イメージを使用して、ポッドを作成するためのマニフェストファイルを作成しました。 KubernetesダッシュボードアーキテクチャKubernetes ダッシュボードは、Kubernetes アーキテクチャ上に開発された外部サービスです。ダッシュボードは内部的に API を使用し、クラスター全体の情報を読み取り、単一のペインで可視化します。また、リソースとアプリケーションをクラスターにデプロイする際にも API を使用します。CLI と Kubernetes ダッシュボードはどちらも、リクエストの処理に kube-API-server を使用します。CLI を使い始めるには、運用チームが Kubernetes ダッシュボードを同じクラスター内にデプロイする必要があります(Kubectl のデプロイと同様)。 Kubernetes ダッシュボードを使い始めるKubernetes ダッシュボードの使用を開始するには、クラスターで次のコマンドを実行する必要があります。 ステップ1: KubernetesダッシュボードをデプロイするKubernetes Dashboard アプリケーションをデプロイするには、次のコマンドを実行します。 kubectl apply -fhttps://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml ローカルマシンから Kubernetes ダッシュボードにアクセスするには、次のコマンドを実行して、K8s クラスターにアクセスするための安全なチャネルを作成します。 kubectlプロキシ 次の URL を使用してダッシュボードにアクセスできます。 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ ステップ2: サービスアカウントを作成するKubernetesダッシュボードは最小限のRBAC権限でインストールされるため、ベアラートークンを使用してアクセスできます。そのため、サービスアカウントを作成し、管理者権限でクラスターにバインドすることができます。以下のサービスアカウントYAMLファイルを使用できます。 apiVersion : v1kind : ServiceAccountmetadata : name : admin -ユーザー名前空間: kubernetes -ダッシュボード コマンドを使用してサービス リソースを作成します。 kubectl - apply - f << serviceaccount .yaml >> 次の ClusterRoleBinding YAML を使用して、サービス アカウント cluster-admin を作成できます。 apiVersion : v1kind : ClusterRoleBindingmetadata : name : admin - userroleRef : apiGroup : rbac.authorization.k8s.io kind : ClusterRole name : cluster - adminsubjects : kind : ServiceAccount name : admin - user namespace : kubernetes - dashboard 同様に、YAML ファイルを使用してクラスター内に ClusterRoleBinding リソースを作成します。 ステップ3: ベアラートークンを生成するコマンドを使用してベアラー トークンを生成します。 kubectl - n kubernetes -ダッシュボードでシークレットを取得します$ ( kubectl - n kubernetes -ダッシュボードでsa / admin - user - o jsnotallow = "{.secrets[0].name}" ) - o go - template = "{{.data.token | Base64decode}}" ステップ4: トークンを使用してダッシュボードの使用を開始するKubernetes ダッシュボードの使用を開始するには、ベアラー トークンを貼り付けることができます。 Kubernetesダッシュボードの制限CLIではなくUIベースのKubernetesダッシュボードを使用するのは、間違いなく良いアイデアです。しかし、そのユースケースを小規模なスタートアップに限定するいくつかの制限があります。
Kubernetes ダッシュボードは UI のデプロイメントを容易にするために開発されましたが、現在のところ UI アプリケーションからの高度なデプロイメント戦略 (カナリアなど) のためのメカニズムは存在しないことに注意してください。 Kubernetesダッシュボードのオープンソース代替品Kubernetes ダッシュボードには、独立して構築することも、ダッシュボード プロジェクト上に構築して UI からデプロイ、監視、トラブルシューティングする機能を強化できるオープンソースの代替手段が 4 つあります。 1. Devtron Kubernetes ダッシュボード:Devtronは、CI/CD、GitOps、セキュリティとガバナンス、増分デプロイメント、可観測性、監視、トラブルシューティングなど、ソフトウェアデリバリープロセス全体を自動化するオープンソースのKubernetesネイティブDevOpsプラットフォームを提供しています。Devtron Kubernetesダッシュボードは、強力な機能を単一のペインで提供し、DevOps、SRE、そして開発者の業務を簡素化します。
2. レンズを開くMITライセンスでライセンスされているこのオープンソースソフトウェアは、複数のクラスターにまたがるワークロードの管理と監視に使用されます。HELMの基本的なリソース管理とリソースのグループ化機能も備えていますが、習得に時間がかかる場合があります。また、マルチクラスター展開用のHELMチャートグループやチャート設定の違いなど、いくつかの盲点があります。 3. 8/8円OctaneはVMwareが立ち上げたオープンソースのダッシュボードでしたが、現在はアーカイブ化されています。コミュニティからのサポートはなく、自分で開発する必要がありました。当初、このプロジェクトは開発者がUIを使用してクラスタにコードをより迅速に送信できるようにすることを目的としていました。Octaneには、クラスタの可視化と管理に関する機能が限られていました。 表の比較Vanilla Kubernetes ダッシュボードと Devtron Kubernetes ダッシュボードと OpenLens の比較。 クラスターとリソース管理安全性 |