Kubernetes · 1 min read · Feb 03, 2026

KubernetesのWeb UIダッシュボード

Kubernetesダッシュボードは、クラスターのためのWebベースのUIを提供します。ダッシュボードを使用してクラスターにアプリケーションをデプロイしたり、クラスター内の既存のアプリケーションをトラブルシューティングしたりできます。また、ダッシュボードはクラスター内のリソースに関する洞察も提供します。このダッシュボードはKubernetesによって公式に提供されています。ダッシュボードを使用してKubernetesオブジェクトを作成、変更、更新、削除できます。

この記事では、Kubernetesが提供する公式ダッシュボードをインストールし、それにアクセスするためのサービスアカウントを設定します。この記事を進める前に、Kubernetesに精通しており、Kubernetesクラスターを持っていることを前提としています。

前提条件

  1. 少なくとも1つのワーカーノードを持つKubernetesクラスター。 Kubernetesクラスターの作成方法を学びたい場合は、こちらをクリックしてください。このガイドでは、AWS Ubuntu 18.04 EC2インスタンス上に1つのマスターと2つのワーカーノードを持つKubernetesクラスターを作成する手助けをします。
  2. Kubernetesの基本的な理解。

何をするか?

  1. Kubernetesダッシュボードをデプロイします。
  2. KubernetesダッシュボードにアクセスするためのServiceAccountを設定します。
  3. Kubernetesダッシュボードにアクセスします。

Kubernetesダッシュボードをデプロイする

Kubernetesダッシュボードをデプロイするには、Githubからそのオブジェクトファイルをダウンロードできます。以下のコマンドを使用してオブジェクトファイルをダウンロードします。このファイルには、Namespace、ServiceAccount、Service、Secret、ConfigMap、Role、ClusterRole、RoleBinding、ClusterRoleBinding、Deployment、およびServiceの定義が含まれています。

pwd
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml

テンプレートをダウンロード

ファイルの名前を変更し、サービスのタイプをNodePortに変更します。以下のスクリーンショットを参照してください。

mv recommended.yaml kubernetes-dashboard-deployment.yml
vim kubernetes-dashboard-deployment.yml

サービスのタイプをNodePortに変更

サービスのタイプをNodePortに変更したら、Kubernetesダッシュボードをデプロイするために必要なすべてのオブジェクトを作成する時が来ました。

kubectl apply -f kubernetes-dashboard-deployment.yml

上記のコマンドによって作成されたデプロイメント、Pod、およびサービスを確認します。上記のコマンドは、Namespace、ServiceAccount、Service、Secret、ConfigMap、Role、ClusterRole、RoleBinding、ClusterRoleBinding、Deployment、およびServiceも作成します。

kubectl get deployments -n kubernetes-dashboard
kubectl get svc
kubectl get pods
kubectl get pods -n kubernetes-dashboard
kubectl get svc -n kubernetes-dashboard

ダッシュボードのためのKubernetesオブジェクトを作成

上記のスクリーンショットでは、タイプ「NodePort」のKubernetesダッシュボードサービスが作成されたことがわかります。これは、ダッシュボードがNodePort「32304」のノードのいずれかのIPで利用可能であることを意味します。クラスター内のサービスに対して異なるポートが表示される場合があります。

以下のコマンドを使用して、後の手順で必要となるノードのIPを取得します。

kubectl get nodes -o wide

KubernetesダッシュボードにアクセスするためのServiceAccountを設定する

Kubernetesダッシュボードにアクセスするには、トークンが必要です。トークンを作成するには、まずServiceAccountを作成する必要があります。

新しいファイルを作成し、以下の内容を追加してServiceAccountを作成します。私のGithubリポジトリからオブジェクトファイルをダウンロードすることもできます。

vim admin-sa.yml
cat admin-sa.yml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: rahul-admin
  namespace: kube-system

オブジェクトファイルを取得したら、以下のコマンドを実行してServiceAccountを作成します。

kubectl apply -f admin-sa.yml

サービスアカウントを作成

次に、ServiceAccount「rahul-admin」をクラスター役割「cluster-admin」に関連付ける必要があります。以下の内容で新しいファイルを作成してClusterRoleBindingを作成するか、私のGithubリポジトリからオブジェクトファイルをダウンロードするためにこちらをクリックしてください。

vim admin-rbac.yml
cat admin-rbac.yml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: rahul-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: rahul-admin
    namespace: kube-system

以下のコマンドを実行して「ClusterRoleBinding」を作成します。

kubectl apply -f admin-rbac.yml

ClusterRoleBindingを作成

これで、「ClusterRole」–>「cluster-admin」が「ServiceAccount」–>「rahul-admin」にバインドされました。

Kubernetesダッシュボードにログインするために使用するトークンを取得する準備が整いました。トークンを取得するには、以下のコマンドを実行します。

SA_NAME="rahul-admin"
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk '{print $1}')

トークンを取得

上記のスクリーンショットでは、Kubernetesダッシュボードにログインするために使用するトークンが表示されます。このトークンをコピーし、「NodeIP:NodePort」のダッシュボードURLにアクセスします。

ここで、NodeIPはクラスター内のノードのいずれかのIPで、NodePortは作成したサービスのポート(この場合は32304、あなたの場合は異なるポートがあるかもしれません)です。

「NodeIP:NodePort」のURLにアクセスすると、以下のような画面が表示されます。ここで、「Token」オプションを選択し、上記の手順で取得したトークンを入力して「サインイン」ボタンをクリックします。

Kubernetesダッシュボードにアクセスする

IP:NodePortでダッシュボードにアクセス

サインインに成功すると、以下のようなKubernetesダッシュボードが表示されます。

ダッシュボード - デフォルトのNamespace

画面の上部では、Namespaceを変更してその中のリソースを見ることもできます。これで、Kubernetesダッシュボードを探索する準備が整いました。

ダッシュボード - kubernetes-dashboard Namespace

結論

この記事では、クラスターにダッシュボードを持つために必要なすべてのKubernetesオブジェクトをデプロイしました。Kubernetesダッシュボードにアクセスするためのトークンを持つためにServiceAccountとClusterRoleBindingを作成しました。ダッシュボードは、クラスターを理解し、その中にあるすべてのオブジェクトを見るのに役立ちます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。