Kubernetes Dashboardを久々に入れてみた

投稿者: | 8月 12, 2023

以前は、なんとなくなんだが、ダッシュボードを入れてみた。ただコマンドラインを使う方が多いので、単なる見栄えというか、リソース食いなので入れなくなってきた。おまけに、Kubernetes 1.25までしかサポートされていない。

と思っていたら、v3.0.0-alpha0というのがリリースされていた。

https://github.com/kubernetes/dashboard/releases/tag/v3.0.0-alpha0

helmでインストールができるらしい。

https://artifacthub.io/packages/helm/k8s-dashboard/kubernetes-dashboard

v1.21から対応しているとのこと。ただしアップグレードはできないので、新規作成となる。v2.7までは単体提供だったのだが、v3からは metricsサーバやら、cert-managerやらnginxが一緒に入るらしい。つまり、既存で入れている人には余計な迷惑になる。

 

というわけで、自分の環境に入れてみた。

 

自分の環境は、 Kubernetes v1.26で、 metallbとingress-nginx、そして、 metricsサーバはインストールされているという環境。

インストールステップは以下。

 

まず、 helm レポジトリを登録

helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm repo update

 

ingressのホスト名がlocalhost なので、FQDNにする。

helm show values kubernetes-dashboard/kubernetes-dashboard > values.yaml
sed -i -e "s/- localhost/- dashboard-test.example.com/g" values.yaml

 

helmのインストールコマンドは以下

helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard --set=cert-manager.enabled=true --set=metrics-server.enabled=false --set=nginx.enabled=false -f values.yaml

cert-managerだけを有効にしている。webhookのエラーが出るがとりあえず無視。

 

RBACの設定

cat <<EOF | kubectl -n kubernetes-dashboard apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
EOF

cat <<EOF | kubectl -n kubernetes-dashboard apply -f -
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
EOF

cat <<EOF | kubectl -n kubernetes-dashboard apply -f -
apiVersion: v1
kind: Secret
metadata:
name: admin-user
namespace: kubernetes-dashboard
annotations:
  kubernetes.io/service-account.name: "admin-user"  
type: kubernetes.io/service-account-token
EOF

 

アクセス方法

トークンは以下で確認できる。

kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath="{".data.token"}" | base64 -d ; echo ""

 

アクセス先のホスト名は以下で確認できる。

kubectl -n kubernetes-dashboard get ingress

 

ブラウザでhttps://ホスト名/ へアクセスして、トークンでログインすれば完了。

UntitledImage

 

作ってみたけど、イマイチ使い道がない。。。

コメントを残す