WSLで簡易にKubernetesでDashboardを回しておく場合、デフォルトだとSSL接続かつトークン認証が必須です
Minikubeなどを使えば楽といえば楽なのですが、WSLのDocker Desktopで使えるようにしておきたい
上記はセキュアであるために必要なものですが、ローカルで手っ取り早く試したい場合は不便です
…が、この方法については仕様が色々と変わっている為、あまりググってもSEO目的のブログが出てくるだけで、情報が見つかりません(公式ですら簡潔、、)
ということで手っ取り早くアクセスできるようにする方法を記載します
当然、セキュアな方式ではないので環境によって注意が必要です
まあそんなのよりk9s使えば良いよねっていうのはナシで…(実際こっちのが使いますが)
HTTP対応版を使う
通常のrecommended
な方ではHTTP接続だとブラウザに怒られるので、alternative
のマニフェストを利用します
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/alternative.yaml
サービスアカウントを作成し、トークンを紐づける
トークンを入力して、諸々見れるようにします
結論としては以下のようなyamlをapply
すれば良いです
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin-user
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: v1
kind: Secret
metadata:
name: admin-user-token
namespace: kubernetes-dashboard
annotations:
kubernetes.io/service-account.name: admin-user
type: kubernetes.io/service-account-token
で、シークレットの中身を確認してコピー
kubectl -n kubernetes-dashboard describe secret admin-user-token
アクセスはポートフォワードでやります
Ingressで確認するまで持ってくるのが手っ取り早いでしょうが…
kubectl port-forward -n kubernetes-dashboard svc/kubernetes-dashboard 8080:80