問題
MacでKubernetesを試そうとKubernetes Dashboardのデプロイをやってみた。
しかし、ログイン画面でトークンが必要で、kubectl secretなどを確認したが情報は見つからなかった。
解決
ログイン画面で求められるトークンは、サービスアカウントというKubernetes内部のプロセスが使用するアカウントの認証情報のこと。
サービスアカウントを作成してトークン取得すること解決。
手順
- Docker for Macのkubernetesを有効化
- kubectlの向き先がdocker-desktopになっていること
$ kubectl config get-contexts
docker-desktop
ダッシュボードをインストール
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
サービスアカウント作成用のyamlを作成
dashboard-adminuser.yaml
# Creating a Service Account
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
# Creating a ClusterRoleBinding (管理者権限を付与)
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
サービスアカウント作成
kubectl apply -f dashboard-adminuser.yaml
認証トークン取得
kubectl -n kubernetes-dashboard create token admin-user
ダッシュボード画面にアクセス
kubectl proxy
Starting to serve on 127.0.0.1:8001
参考
https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md
https://github.com/kubernetes/dashboard
https://matsuand.github.io/docs.docker.jp.onthefly/desktop/kubernetes/