はじめに
Kubernetes Dashboard は、Kubernetes クラスタの管理と監視を簡素化するウェブベースのユーザーインターフェイスです。これは、アプリケーションの展開と管理、クラスタ リソースの表示と分析を行うための直感的な方法を提供します。この実験では、Kubernetes Dashboard の展開とアクセス方法を案内します。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
Kubernetes Dashboard は、Kubernetes クラスタの管理と監視を簡素化するウェブベースのユーザーインターフェイスです。これは、アプリケーションの展開と管理、クラスタ リソースの表示と分析を行うための直感的な方法を提供します。この実験では、Kubernetes Dashboard の展開とアクセス方法を案内します。
Kubernetes Dashboard を展開する前に、クラスタが稼働していることを確認します。この実験では Minikube を使用します。
ターミナルを開き、プロジェクト ディレクトリに移動します。
cd ~/project
Minikube クラスタを起動します。
minikube start
Minikube はローカルの Kubernetes クラスタを作成し、Dashboard のような機能をテストしやすくします。セットアップには数分かかる場合があります。
Minikube の状態を確認して、稼働していることを確認します。
minikube status
クラスタが稼働していない場合は、minikube delete
を実行してから minikube start
で再起動します。
クラスタにはデフォルトで 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-dashboard
kubernetes-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-dashboard
admin-user
サービス アカウントが表示されるはずです。
kubectl get clusterrolebinding
admin-user
クラスタ ロール バインディングが表示されるはずです。
今、Dashboard が稼働し、権限が構成されたので、ブラウザを使ってアクセスしましょう。
ログイン トークンを生成します。
kubectl -n kubernetes-dashboard create token admin-user
生成されたトークンをコピーします。これをログインに使用します。
Dashboard Service を編集して、NodePort で公開します。
kubectl edit service -n kubernetes-dashboard kubernetes-dashboard
spec
の下の type
フィールドを見つけ、その値を NodePort
に変更します。保存して終了します。
Dashboard に割り当てられた NodePort を見つけます。
kubectl get service -n kubernetes-dashboard
NAME 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 20m
PORT(S)
列の下に表示されるポート番号(例:30587
)をメモします。これが Dashboard にアクセスするために使用するポートです。
ノードの IP アドレスを取得します。
kubectl get node -o wide
NAME 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.23
INTERNAL-IP
列がノードの IP アドレスを提供します。
デスクトップの Firefox ブラウザを開き、次の URL に移動します。
https://<node-ip>:<node-port>
<node-ip>
をノードの IP アドレスに置き換え、<node-port>
を手順 3 のポートに置き換えます。
これで、Kubernetes Dashboard にログインし、クラスタ リソースを探索し、ワークロードを管理できるようになります。
この実験では、以下のことを学びました。
Kubernetes Dashboard を使えば、アプリケーションを視覚的に管理し、リソースを監視し、クラスタの構成を調べることができます。このツールは、特にコマンド ライン ワークフローから移行している初心者にとって、Kubernetes の操作を簡素化します。Kubernetes 環境を最大限活用するために、その機能を引き続き探求してください!