0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kindでKubernetesのDashboardを動かしてみる

Posted at

はじめに

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を作成します。

kubernetes-dashboard-admin.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: kubernetes-dashboard-admin
  namespace: kubernetes-dashboard
rules:
- apiGroups:
  - ""
  resources:
  - '*'
  verbs:
  - '*'
kubernetes-dashboard-kong-admin.yaml
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を作成できることを確認します。

nginx.yaml
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: nginx
  name: nginx
spec:
  containers:
  - args:
    - sleep
    - "1000"
    image: nginx
    name: nginx

最後に

Kubernetes Dashboardを利用して、Kubernetesリソースの閲覧と作成ができることを確認しました。

参考情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?