Kubernetes : ダッシュボードを有効にする2022/05/24 |
|
ダッシュボードを有効にして、Web UI で Kubernetes クラスターの管理ができるようにします。
当例では以下のような Kubernetes クラスター環境で設定します。
-----------+---------------------------+--------------------------+------------
| | |
eth0|10.0.0.30 eth0|10.0.0.51 eth0|10.0.0.52
+----------+-----------+ +-----------+----------+ +-----------+----------+
| [ dlp.srv.world ] | | [ node01.srv.world ] | | [ node02.srv.world ] |
| Master Node | | Worker Node | | Worker Node |
+----------------------+ +----------------------+ +----------------------+
|
| [1] | Master ノードでダッシュボードを有効にします。 |
|
[root@dlp ~]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf created secret/kubernetes-dashboard-key-holder created configmap/kubernetes-dashboard-settings created role.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created service/dashboard-metrics-scraper created deployment.apps/dashboard-metrics-scraper created |
| [2] | ダッシュボード用のアカウントを追加して、ダッシュボードにアクセスできるように設定します。 |
|
[root@dlp ~]#
kubectl create serviceaccount -n kubernetes-dashboard admin-user serviceaccount/admin-user created
[root@dlp ~]#
vi rbac.yml # 新規作成 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
[root@dlp ~]#
kubectl apply -f rbac.yml clusterrolebinding.rbac.authorization.k8s.io/admin-user created # 追加したアカウントのセキュリティトークン確認 # [token: ***] 行の二カラム目が該当 [root@dlp ~]# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Name: admin-user-token-mszzn
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: admin-user
kubernetes.io/service-account.uid: f00510d6-5574-4650-a4c5-cf1020aa93b9
Type: kubernetes.io/service-account-token
Data
====
namespace: 20 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IlFLQ0lzcC16VGFUa1J3V3M3UHh0cVFaUlZGQkFSe.....
ca.crt: 1099 bytes
# プロキシ起動 [root@dlp ~]# kubectl proxy Starting to serve on 127.0.0.1:8001 # もし他ホストからもアクセスする場合はポートフォワード [root@dlp ~]# kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard --address 0.0.0.0 10443:443 Forwarding from 0.0.0.0:10443 -> 8443 |
| [3] |
[kubectl proxy] で起動した場合は、ローカルホストで Web ブラウザーを起動して、以下の URL にアクセスします。
⇒ http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
ポートフォワーディングで起動した場合は、ローカルネットワーク内の任意のコンピューターで Web ブラウザーを起動して、以下の URL にアクセスします。
⇒ https://(Master ノードのホスト名 または IP アドレス):(設定したポート)/
アクセス後、以下のような画面が表示されたら、[2] で確認したセキュリティトークンを コピー & ペーストして [Sing In]
ボタンをクリックします。
|
|
| [4] | 認証が成功すると Kubernetes クラスターのダッシュボードが表示されます。 |
|
|
| Sponsored Link |
|
|