OpenLens を最初に起動したときのクラスタの様子はこちら。寂しい。
なので、Metrics を表示してみる。
※参考としたサイト
Helm で Prometheus をインストールする
Namespace の追加
Promethus をインストールすると多くのリソースが作られるから、次のコマンドを実行して専用の Namespace を作る。いろいろなサイトで紹介されている、分かりやすい monitoring とした。
kubectl create namespace monitoring
OpenLens から追加することも可能。
Helm でリポジトリを取得する
次のコマンドで prometheus-community.github.io のリポジトリを取得する。
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
$ helm repo update
OpenLens で追加する場合は、左上のバーガーメニューから「File」「Preferences」を選んで「Kubernetes」をクリックすると次の画面となる。
画面下のほうにスクロールした Helm Chart のところで、リストボックス「Repositories」をクリックして「prometheus-community」を選択すれば追加可能。削除もここからゴミ箱で OK。
オプション設定ファイルを取得する
つぎのとおり values.yaml を取得する。
もちろん、https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml から直接ダウンロードでも何でも OK。
wget https://raw.githubusercontent.com/prometheus-community/helm-charts/main/charts/kube-prometheus-stack/values.yaml
values.yaml を編集する
たくさん設定できる項目がある。
とりあえず、ロードバランサーとして MetalLBをデプロイしている自分の環境だと service のところを Type: Cluster から Type: LoadBalancer にしないと Metrics を表示しない(7箇所)。
機能が多すぎて到底使いこなせるとは思えないけれど、自鯖ということで、まずは動作させてみよう。
OpenLens の場合、画面左のメニュー「Hem」の「Charts」から「kube-prometheus-stack」を選択する。
右上の青ボタンの「インストール」をクリックする。
画面下部に values.yaml の内容が表示される。
ここで Ctrl+F として出てくるテキストボックスに「type: clusterIP」と入力すると、該当箇所(7箇所)がハイライトされるので、直接「LoadBalancer」に修正することができる。
修正後はターミナルエリアで右クリックして書き込みを忘れないように。
インストール
コマンドの場合は次の通り、オプションファイル values.yaml を指定してインストールする。
$ helm upgrade --install -f values.yaml kube-prometheus-stack prometheus-community/kube-prometheus-stack -n monitoring
Release "kube-prometheus-stack" has been upgraded. Happy Helming!
NAME: kube-prometheus-stack
LAST DEPLOYED: Wed Nov 8 21:23:47 2023
NAMESPACE: monitoring
STATUS: deployed
REVISION: 2
NOTES:
kube-prometheus-stack has been installed. Check its status by running:
kubectl --namespace monitoring get pods -l "release=kube-prometheus-stack"
Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.
OpenLens からなら、先の画面から「Install」をクリックして暫く待つ。
いつまでたってもインストールが終わらないようなら、OpenLens を再起動してもう一度、インストールを実行してみる。
OpenLens の設定
Metric の設定を初期値の Lens から Auto Detect Prometheus に変更しておく。
インストールが終了してから OpenLens を再起動すれば、無事に Metric が表示される。
感想
クラスタの様子をコマンドで確認してみると、
$ kubectl get all -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-flannel pod/kube-flannel-ds-97gjk 1/1 Running 1 4d6h
kube-flannel pod/kube-flannel-ds-j8kt9 1/1 Running 1 4d6h
kube-flannel pod/kube-flannel-ds-q88kf 1/1 Running 1 4d6h
kube-flannel pod/kube-flannel-ds-wmb87 1/1 Running 1 4d6h
kube-system pod/coredns-5dd5756b68-67dvx 1/1 Running 10 11d
kube-system pod/coredns-5dd5756b68-qtd4k 1/1 Running 10 11d
kube-system pod/csi-nfs-controller-c544c88c-k5hdt 4/4 Running 25 (18h ago) 4d23h
kube-system pod/csi-nfs-node-cvvfx 3/3 Running 3 4d23h
kube-system pod/csi-nfs-node-tv7sc 3/3 Running 9 4d23h
kube-system pod/csi-nfs-node-x6shz 3/3 Running 15 4d23h
kube-system pod/csi-nfs-node-xzqjm 3/3 Running 6 4d23h
kube-system pod/etcd-k8s-node1 1/1 Running 15 11d
kube-system pod/kube-apiserver-k8s-node1 1/1 Running 14 11d
kube-system pod/kube-controller-manager-k8s-node1 1/1 Running 42 (18h ago) 11d
kube-system pod/kube-proxy-2vhl6 1/1 Running 5 11d
kube-system pod/kube-proxy-ddnxk 1/1 Running 10 11d
kube-system pod/kube-proxy-fjmft 1/1 Running 2 11d
kube-system pod/kube-proxy-w2x8c 1/1 Running 6 11d
kube-system pod/kube-scheduler-k8s-node1 1/1 Running 43 (18h ago) 11d
kube-system pod/snapshot-controller-6597bcc578-82jwz 1/1 Running 8 (18h ago) 4d9h
kubernetes-dashboard pod/kubernetes-dashboard-798dd48467-bssc9 1/1 Running 10 10d
metallb-system pod/controller-786f9df989-pm56k 1/1 Running 1 4d9h
metallb-system pod/speaker-568dn 1/1 Running 18 (24h ago) 11d
metallb-system pod/speaker-5h8rf 1/1 Running 10 (24h ago) 11d
metallb-system pod/speaker-vxr4n 1/1 Running 12 (24h ago) 11d
metallb-system pod/speaker-wqpkz 1/1 Running 4 (24h ago) 11d
minecraft pod/minecraft-6b854f7d5c-m76zb 1/1 Running 2 (24h ago) 4d3h
monitoring pod/alertmanager-kube-prometheus-stack-1699-alertmanager-0 2/2 Running 0 13m
monitoring pod/kube-prometheus-stack-1699-operator-7db99bb58-vnn6j 1/1 Running 0 14m
monitoring pod/kube-prometheus-stack-1699453681-grafana-f8fb64478-tdpsb 3/3 Running 0 14m
monitoring pod/kube-prometheus-stack-1699453681-kube-state-metrics-7c58f5clz6d 1/1 Running 0 14m
monitoring pod/kube-prometheus-stack-1699453681-prometheus-node-exporter-h6zhz 1/1 Running 0 14m
monitoring pod/kube-prometheus-stack-1699453681-prometheus-node-exporter-qclkt 1/1 Running 0 14m
monitoring pod/kube-prometheus-stack-1699453681-prometheus-node-exporter-t2hgf 1/1 Running 0 14m
monitoring pod/kube-prometheus-stack-1699453681-prometheus-node-exporter-wwqsr 1/1 Running 0 14m
monitoring pod/prometheus-kube-prometheus-stack-1699-prometheus-0 2/2 Running 0 13m
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11d
kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 11d
kube-system service/kube-prometheus-stack-1699-coredns ClusterIP None <none> 9153/TCP 14m
kube-system service/kube-prometheus-stack-1699-kube-controller-manager ClusterIP None <none> 10257/TCP 14m
kube-system service/kube-prometheus-stack-1699-kube-etcd ClusterIP None <none> 2381/TCP 14m
kube-system service/kube-prometheus-stack-1699-kube-proxy ClusterIP None <none> 10249/TCP 14m
kube-system service/kube-prometheus-stack-1699-kube-scheduler ClusterIP None <none> 10259/TCP 14m
kube-system service/kube-prometheus-stack-1699-kubelet ClusterIP None <none> 10250/TCP,10255/TCP,4194/TCP 13m
kubernetes-dashboard service/kubernetes-dashboard ClusterIP 10.96.253.32 <none> 443/TCP 10d
metallb-system service/webhook-service ClusterIP 10.106.140.148 <none> 443/TCP 11d
minecraft service/minecraft LoadBalancer 10.100.250.166 10.1.11.11 25565:32003/TCP 4d3h
monitoring service/alertmanager-operated ClusterIP None <none> 9093/TCP,9094/TCP,9094/UDP 13m
monitoring service/kube-prometheus-stack-1699-alertmanager LoadBalancer 10.96.170.245 10.1.11.2 9093:31760/TCP,8080:30164/TCP 14m
monitoring service/kube-prometheus-stack-1699-operator LoadBalancer 10.99.36.115 10.1.11.1 443:30794/TCP 14m
monitoring service/kube-prometheus-stack-1699-prometheus LoadBalancer 10.96.220.255 10.1.11.3 9090:31640/TCP,8080:32658/TCP 14m
monitoring service/kube-prometheus-stack-1699453681-grafana ClusterIP 10.98.103.233 <none> 80/TCP 14m
monitoring service/kube-prometheus-stack-1699453681-kube-state-metrics ClusterIP 10.96.61.154 <none> 8080/TCP 14m
monitoring service/kube-prometheus-stack-1699453681-prometheus-node-exporter ClusterIP 10.101.199.213 <none> 9100/TCP 14m
monitoring service/prometheus-operated ClusterIP None <none> 9090/TCP 13m
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-flannel daemonset.apps/kube-flannel-ds 4 4 4 4 4 <none> 11d
kube-system daemonset.apps/csi-nfs-node 4 4 4 4 4 kubernetes.io/os=linux 4d23h
kube-system daemonset.apps/kube-proxy 4 4 4 4 4 kubernetes.io/os=linux 11d
metallb-system daemonset.apps/speaker 4 4 4 4 4 kubernetes.io/os=linux 11d
monitoring daemonset.apps/kube-prometheus-stack-1699453681-prometheus-node-exporter 4 4 4 4 4 kubernetes.io/os=linux 14m
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/coredns 2/2 2 2 11d
kube-system deployment.apps/csi-nfs-controller 1/1 1 1 4d23h
kube-system deployment.apps/snapshot-controller 1/1 1 1 4d23h
kubernetes-dashboard deployment.apps/kubernetes-dashboard 1/1 1 1 10d
metallb-system deployment.apps/controller 1/1 1 1 11d
minecraft deployment.apps/minecraft 1/1 1 1 4d3h
monitoring deployment.apps/kube-prometheus-stack-1699-operator 1/1 1 1 14m
monitoring deployment.apps/kube-prometheus-stack-1699453681-grafana 1/1 1 1 14m
monitoring deployment.apps/kube-prometheus-stack-1699453681-kube-state-metrics 1/1 1 1 14m
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/coredns-5dd5756b68 2 2 2 11d
kube-system replicaset.apps/csi-nfs-controller-c544c88c 1 1 1 4d23h
kube-system replicaset.apps/snapshot-controller-6597bcc578 1 1 1 4d23h
kubernetes-dashboard replicaset.apps/kubernetes-dashboard-798dd48467 1 1 1 10d
metallb-system replicaset.apps/controller-786f9df989 1 1 1 11d
minecraft replicaset.apps/minecraft-6b854f7d5c 1 1 1 4d3h
monitoring replicaset.apps/kube-prometheus-stack-1699-operator-7db99bb58 1 1 1 14m
monitoring replicaset.apps/kube-prometheus-stack-1699453681-grafana-f8fb64478 1 1 1 14m
monitoring replicaset.apps/kube-prometheus-stack-1699453681-kube-state-metrics-7c58f5c86 1 1 1 14m
NAMESPACE NAME READY AGE
monitoring statefulset.apps/alertmanager-kube-prometheus-stack-1699-alertmanager 1/1 14m
monitoring statefulset.apps/prometheus-kube-prometheus-stack-1699-prometheus 1/1 14m
・・・いろいろリソースができている。
10.1.11.1:443 ・・・ Operator
10.1.11.2:9093 ・・・ Alertmanager
10.1.11.3:9090 ・・・ Prometheus
とりあえず動作させることができたものの、不要なリソースは動作させたくないからもっと調べてみよう。
コメント