はじめに
WebUI上からKubernetesのリソースを閲覧したり作成することができるDashboardを動かしてみましょう。
今回はkindでKubernetesクラスタを立ち上げ、そこにhelmでインストールします。
環境情報
| Component | Version |
|---|---|
| PC | M1 MacBook Pro |
| OS | macOS 26.1 |
| Docker Desktop | 4.49.0 |
| kind | v0.30.0 |
| helm | v3.19.0 |
| Dashboard | 7.14.0 |
手順
Kubernetesクラスタを立ち上げる
kindを使ってcontrol-planeとworkerが1台ずつのKubernetesクラスタを立ち上げます。
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: sandbox
nodes:
- role: control-plane
- role: worker
kind create cluster --config kind-sandbox.yaml
Dashboardをインストール
手順に従ってインストールします。
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
kubernetes-dashboardというnamespaceにDashboardのリソースが展開されます。
ServiceAccountにクラスタ全体のlist権限を与える
kubernetes-dashboard-kongというServiceAccountのトークンを作成して、DashboardのWebUIに入力します。
❯ k -n kubernetes-dashboard get sa
NAME SECRETS AGE
default 0 60m
kubernetes-dashboard-api 0 60m
kubernetes-dashboard-kong 0 60m
kubernetes-dashboard-metrics-scraper 0 60m
kubernetes-dashboard-web 0 60m
kubernetes-dashboard namespace内のリソースの閲覧や作成をできるようにする
kubernetes-dashboard-kong ServiceAccountにkubernetes-dashboard namespaceのリソースの閲覧や作成を許可するためにRoleとRoleBindingを作成します。
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: kubernetes-dashboard-admin
namespace: kubernetes-dashboard
rules:
- apiGroups:
- ""
resources:
- '*'
verbs:
- '*'
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: kubernetes-dashboard-kong-admin
namespace: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: kubernetes-dashboard-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard-kong
namespace: kubernetes-dashboard
上記のマニフェストを適用します。
k apply -f kubernetes-dashboard-admin.yaml
k apply -f kubernetes-dashboard-kong-admin.yaml
以下のコマンドで、RoleとRoleBindingで適切なRBACが設定されていることを確認します。
kubectl-rolesumを使うと簡単にRBACの設定を確認することができます。
❯ k rolesum -n kubernetes-dashboard kubernetes-dashboard-kong
ServiceAccount: kubernetes-dashboard/kubernetes-dashboard-kong
Secrets:
Policies:
• [RB] kubernetes-dashboard/kubernetes-dashboard-kong-admin ⟶ [R] kubernetes-dashboard/kubernetes-dashboard-admin
Resource Name Exclude Verbs G L W C U P D DC
* [*] [-] [-] ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Kubernetes Dashboardに接続する
kubectl port-forwardします。
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
以下のURLにアクセスするとKubernetes Dashboardにアクセスできます。
https://localhost:8443
Bearer Tokenを求められるので、以下のコマンドで生成したトークンを指定します。
k -n kubernetes-dashboard create token kubernetes-dashboard-kong
Kubernetes Dashboardでリソースの閲覧や作成ができることを確認する
kubernetes-dashboard namespaceのリソースが閲覧できることを確認します。
また、kubernetes-dashboard namespaceに以下のマニフェストを適用して、Podを作成できることを確認します。
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- args:
- sleep
- "1000"
image: nginx
name: nginx
最後に
Kubernetes Dashboardを利用して、Kubernetesリソースの閲覧と作成ができることを確認しました。