以前の記事では、Kubernetes環境のリソース情報の収集や監視を行うためにMetrics Serverを導入しました。
今回の記事では、リソース情報の収集をWeb UIで確認できる、Kubernetes WebUIダッシュボードの導入を行っていきたいと思います。
Kubernetes WebUIダッシュボードのリソースを作成
まずKubernetes WebUIダッシュボードのリソースを作成します。
# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
kubernetes-dashboardのリソースがあることを確認。
# kubectl get pods --all-namespaces | grep dashboard
NodePortでの外部公開
ダッシュボードをWebで表示するための、NodePortを指定する変更を行います。
# kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
(snip)
ports:
- port: 443
protocol: TCP
targetPort: 8443
nodePort: 32001 <- nodePortを追加
(snip)
# type: ClusterIP
type: NodePort <- NodePortに変更
(snip)
この時点で、https://ノードIP:32001で以下のようなWebページが表示されます。
ログインユーザー情報の作成
ログインにはユーザー情報のトークンが必要なので、adminユーザーでTokenを作成していきます。
# vi kubernetes-dashboard-admin.yml
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
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
# kubectl create -f kubernetes-dashboard-admin.yml
上記のServiceAccountとClusterRoleBindingのリソースを作成後、以下のコマンドでトークンを表示します。
# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
再度https://ノードIP:32001にログインし、上記に表示されたトークンでログインすると、ダッシュボードが表示されリソースの状況の確認などが行えます。
これでKubernetes WebUIダッシュボードの導入は完了です。
参考URL
https://kubernetes.io/ja/docs/tasks/access-application-cluster/web-ui-dashboard/
https://qiita.com/yasubehe/items/838832fe488b72fcc887
https://sky-joker.tech/2019/04/21/kubernetes%E3%81%AE%E3%82%BF%E3%82%99%E3%83%83%E3%82%B7%E3%83%A5%E3%83%9B%E3%82%99%E3%83%BC%E3%83%88%E3%82%99%E3%82%92%E5%A4%96%E9%83%A8%E3%81%8B%E3%82%89%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99/
https://ponteru.hatenablog.com/entry/2020/01/15/220830