はじめに
Kubernetes Dashboard は、Kubernetes クラスタの管理と監視を簡素化するウェブベースのユーザーインターフェイスです。これは、アプリケーションの展開と管理、クラスタ リソースの表示と分析を行うための直感的な方法を提供します。この実験では、Kubernetes Dashboard の展開とアクセス方法を案内します。
Kubernetes クラスタを起動する
Kubernetes Dashboard を展開する前に、クラスタが稼働していることを確認します。この実験では Minikube を使用します。
ターミナルを開き、プロジェクト ディレクトリに移動します。
cd ~/projectMinikube クラスタを起動します。
minikube startMinikube はローカルの Kubernetes クラスタを作成し、Dashboard のような機能をテストしやすくします。セットアップには数分かかる場合があります。
Minikube の状態を確認して、稼働していることを確認します。
minikube statusクラスタが稼働していない場合は、
minikube deleteを実行してからminikube startで再起動します。
Kubernetes Dashboard を展開する
クラスタにはデフォルトで Kubernetes Dashboard は含まれていません。公式の展開用 YAML ファイルを使用して展開します。
次のコマンドを実行して Dashboard を展開します。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yamlこのコマンドは、Deployment、Service、および Role-Based Access Control (RBAC) 設定を含む、Dashboard に必要なすべてのリソースを作成します。
Dashboard が稼働していることを確認します。
kubectl get pods -n kubernetes-dashboard名前が
kubernetes-dashboardのポッドを探し、その状態がRunningであることを確認します。Dashboard の名前空間を確認します。
kubectl get ns | grep kubernetes-dashboardkubernetes-dashboardという名前空間が存在する必要があります。
サービス アカウントとロール バインディングを作成する
デフォルトでは、Kubernetes Dashboard はアクセスを制限します。管理者特権でログインするには、サービス アカウントを作成してクラスタ ロールにバインドする必要があります。
dashboard-admin.yamlという名前のファイルを作成します。nano ~/project/dashboard-admin.yaml次の内容をファイルに追加します。
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
このファイルは、サービス アカウント admin-user を定義し、クラスタ全体に管理者特権を付与します。
ファイルを保存するには、Ctrl+X、Y、そして Enter を押します。
構成を適用します。
kubectl apply -f dashboard-admin.yamlサービス アカウントとロール バインディングを確認します。
kubectl get sa -n kubernetes-dashboardadmin-userサービス アカウントが表示されるはずです。kubectl get clusterrolebindingadmin-userクラスタ ロール バインディングが表示されるはずです。
Kubernetes Dashboard にアクセスする
今、Dashboard が稼働し、権限が構成されたので、ブラウザを使ってアクセスしましょう。
ログイン トークンを生成します。
kubectl -n kubernetes-dashboard create token admin-user生成されたトークンをコピーします。これをログインに使用します。
Dashboard Service を編集して、NodePort で公開します。
kubectl edit service -n kubernetes-dashboard kubernetes-dashboardspecの下のtypeフィールドを見つけ、その値をNodePortに変更します。保存して終了します。

Dashboard に割り当てられた NodePort を見つけます。
kubectl get service -n kubernetes-dashboardNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.104.164.172 <none> 8000/TCP 20m kubernetes-dashboard NodePort 10.108.222.153 <none> 443:30587/TCP 20mPORT(S)列の下に表示されるポート番号(例:30587)をメモします。これが Dashboard にアクセスするために使用するポートです。ノードの IP アドレスを取得します。
kubectl get node -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME minikube Ready control-plane 35m v1.26.1 192.168.58.2 <none> Ubuntu 20.04.5 LTS 5.15.0-56-generic docker://20.10.23INTERNAL-IP列がノードの IP アドレスを提供します。デスクトップの Firefox ブラウザを開き、次の URL に移動します。
https://<node-ip>:<node-port><node-ip>をノードの IP アドレスに置き換え、<node-port>を手順 3 のポートに置き換えます。

- セキュリティ警告が表示された場合、「高度な設定」を選択してから「リスクを承認して続行」を選択して進みます。

- ログイン画面で、トークン オプションを選択し、手順 1 のトークンを貼り付け(右クリック)、「サインイン」をクリックします。

これで、Kubernetes Dashboard にログインし、クラスタ リソースを探索し、ワークロードを管理できるようになります。

まとめ
この実験では、以下のことを学びました。
- ローカル クラスタに Kubernetes Dashboard を展開する方法。
- 管理者アクセス用のサービス アカウントを作成し、クラスタ ロールにバインドする方法。
- NodePort サービスを使用してブラウザから Dashboard にアクセスする方法。
Kubernetes Dashboard を使えば、アプリケーションを視覚的に管理し、リソースを監視し、クラスタの構成を調べることができます。このツールは、特にコマンド ライン ワークフローから移行している初心者にとって、Kubernetes の操作を簡素化します。Kubernetes 環境を最大限活用するために、その機能を引き続き探求してください!


