やりたいこと
kubernetesui/dashboardにおいてToken認証機能をオンにする。
尚、以下でダッシュボード機能自体はインストール済とする。
# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
環境情報
- Kubernetes 1.23
- kubernetesui/dashboard:v2.4.0
やり方
以下のようにhttpsポートを開いて起動した上で
containers: - args: - --port=9090 - --namespace=kubernetes-dashboard - --auto-generate-certificates=true
インストール時にできるkubernetes-dashboard-tokenをdescribeして表示されるTokenを入力する。
# kubectl get secret -n kubernetes-dashboard NAME TYPE DATA AGE default-token-f6xjr kubernetes.io/service-account-token 3 27h kubernetes-dashboard-certs Opaque 0 27h kubernetes-dashboard-csrf Opaque 1 27h kubernetes-dashboard-key-xx Opaque 2 27h kubernetes-dashboard-token-xx kubernetes.io/service-account-token 3 27h
tokenの値はbase64でエンコードされていますが
Data ca.crt: 1099 bytes namespace: 20 bytes token: xxxx
そのままの値を入力することでダッシュボードにログインできる。
以下、補足です。
補足
同Tokenはデフォルトで900秒有効なので、一定時間が経つと以下メッセージと共にログアウトされます。
Unauthorized (401): You have been logged out because your token has expired.
ただし、Secret自体は書き換わらないので同じTokenでログインができます。
また、Httpsは有効にしつつログイン機構をスキップしたい場合は
- --enable-skip-login=true
上記オプションを付与することで以下のようにスキップボタンがログイン画面に表示されます。
以上です。