Kubernetesのダッシュボードにログインしたいんだけど、StackOverflow に書いてある通りには、Secretの名前が異なっていて解決しなかったので、IBM Cloudではどうするか? とのメモです。
背景としては、IBM Cloud Container Service すなわち Kubernetes で バージョン 1.8以降にすると、WebUI ダッシュボードにアクセスする際に認証を要求する様になった。 次の様な画面が出てくる。 この認証をスキップすると、必要な情報が何も表示されないので、認証をパスすることは必須となりました。
トークンの取得方法
ネームスペースにkube-systemを指定して、default-token- から始まる secret を探す
$ kubectl -n kube-system get secret
NAME TYPE DATA AGE
...
default-token-96msl kubernetes.io/service-account-token 3 56d
...
default-taken-96msl の詳細を表示して、token のフィールドをコピーする。
$ kubectl -n kube-system describe secret default-token-96msl
Name: default-token-96msl
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name=default
kubernetes.io/service-account.uid=c066f292-d63b-11e7-b348-52739e8f8ad5
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1887 bytes
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5(長いので以下省略)
ダッシュボードの起動とログイン
環境に合わせて、パラメータを調整して、ダッシュボードを起動する
kubectl proxy --address="0.0.0.0" -p 8001 --accept-hosts='^*$'
ブラウザからアクセスして、tokenをコピペして、SIGN INをクリック
認証が成功すると、トップ画面が表示される。
参考資料
- How to sign in kubernetes dashboard? https://stackoverflow.com/questions/46664104/how-to-sign-in-kubernetes-dashboard
- Kubernetes 1.8のアクセス制御について。あとDashboard。 https://www.kaitoy.xyz/2017/10/31/retry-dashboard-on-k8s-cluster-by-kubeadm/