目次
こんにちは、大島です。
prometheus-community/kube-prometheus-stackにはGrafanaダッシュボードやその他諸々がプレインストールされています。
今回はそのプレインストールされているGrafanaダッシュボードをGoogle Cloud Managed Service for Prometheus(以下GMP)で使用したいと思います。
単純に持ってくるだけではメトリクスが表示されないので少し調整をします。
GKE: v1.27.6
HelmChart
kube-prometheus-stack-52.1.0
grafana-7.0.110.1.5
最終的に見れるダッシュボード
- AlertManager / Overview
- Grafana Overview
- Kubernetes / Compute Resources / Multi-Cluster
- Kubernetes / Compute Resourcees / Cluster
- Kubernetes / Compute Resources / Namespace (Pods)
- Kubernetes / Compute Resources / Namespace (Workloads)
- Kubernetes / Compute Resources / Node (Pods)
- Kubernetes / Compute Resources / Pod
- Kubernetes / Compute Resources / Workload
- Kubernetes / Kubelet
- Kubernetes / Networking / Cluster
- Kubernetes / Networking / Namespace (Pods)
- Kubernetes / Networking / Namespace (Workloads)
- Kubernetes / Networking / Pod
- Kubernetes / Networking / Workload
- Kubernetes / Persistent Volumes
- Node Exporter / Nodes
- Node Exporter / USE Method / Cluster
- Node Exporter / USE Method / Node
見れないダッシュボード
- CoreDNS
- Kubernetes / API server
- Kubernetes / Controller Manager
- Kubernetes / Proxy
- Kubernetes / Scheduler
- Prometheus / Overview
- etcd
未検証のダッシュボード
- Node Exporter / MacOS
構築
GKEクラスターとノードを一つ作成しました。
$ k get node
NAME STATUS ROLES AGE VERSION
gke-oshima-test-clust-oshima-test-app-dba68b7e-9x1b Ready <none> 19m v1.27.6-gke.1506000
GMPリソースを確認
GKE バージョン 1.27 以降を実行しているのでマネージド コレクションがデフォルトで有効になっています。
参考:マネージド コレクションを有効にする: GKE
gmp-publicとgmp-system名前空間があります。
$ k get ns
NAME STATUS AGE
default Active 24m
gmp-public Active 23m
gmp-system Active 23m
kube-node-lease Active 24m
kube-public Active 24m
kube-system Active 24m
gmp-system名前空間にマネージドコレクターがデプロイされていることが確認できます。
$ kubectl get po -n gmp-system
NAME READY STATUS RESTARTS AGE
alertmanager-0 2/2 Running 0 14h
collector-lq2jh 2/2 Running 0 14h
gmp-operator-7df56b4478-t9drd 1/1 Running 0 14h
rule-evaluator-5b47d58dc6-xxgvl 2/2 Running 3 (14h ago) 14h
OperatorConfigというCRDが作成されています。
後ほどこのconfigの設定を変更します。
$ kubectl get operatorconfig -n gmp-public
NAME AGE
config 14h
GMPのフロントエンドUIをデプロイ
gmp-monitoring
名前空間を作成しました。
kubectl create ns gmp-monitoring
curl https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.7.4/examples/frontend.yaml |
sed 's/\$PROJECT_ID/<ご自身のproject id>/' |
kubectl apply -n gmp-monitoring -f -
kube-state-metricsとnode-exporterをデプロイ
kube-prometheus-stackではプレインストールされている、kube-state-metricsとnode-exporterをデプロイします。
この時点でkube-state-metricsとnode-exporterのメトリクスが取れているか確認してみます。
NAMESPACE=gmp-monitoring
kubectl port-forward -n $NAMESPACE svc/frontend 9090
Grafanaをデプロイ
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
$ helm repo list
NAME URL
grafana https://grafana.github.io/helm-charts
私はこちらのvalues.yamlを使用しました。sidecar.dashboards.enabled=true
、sidecar.datasources.enabled=true
にすることで、それぞれConfigMapでデプロイすることができます。
persistence:
type: pvc
enabled: false
sidecar:
dashboards:
enabled: true
datasources:
enabled: true
NAMESPACE=gmp-monitoring
helm install grafana -n $NAMESPACE grafana/grafana -f values.yaml
$ kubectl get cm -n gmp-monitoring
NAME DATA AGE
grafana 1 4m50s
grafana-config-dashboards 1 4m50s
kube-root-ca.crt 1 86m
kube-prometheus-stackをデプロイ
目的はConfigMapを取得することなのでvalues.yamlはデフォルトのままでも問題ありません。
prometheus-communityのHelmリポジトリを追加します。
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
$ helm repo list
NAME URL
prometheus-community https://prometheus-community.github.io/helm-charts
私はこちらのvalues.yamlファイルを使いました。
# Alertmanagerは今回使わないのでデプロイしない
alertmanager:
enabled: false
pstack名前空間にkube-prometheus-stackをデプロイします。
NAMESPACE=pstack
RELEASE_NAME=pstack
helm install $RELEASE_NAME prometheus-community/kube-prometheus-stack -n $NAMESPACE --create-namespace -f values.yaml
先ほどvalues.yamlでAlertmanagerを除外したので、Alertmanager以外がデプロイされています
# kubectl get po -n pstack
NAME READY STATUS RESTARTS AGE
prometheus-pstack-kube-prometheus-sta-prometheus-0 2/2 Running 0 2m1s
pstack-grafana-7d46677fb4-mhncm 3/3 Running 0 2m7s
pstack-kube-prometheus-sta-operator-7d74458df8-7jhvx 1/1 Running 0 2m7s
pstack-kube-state-metrics-5d8d89f5dd-sxdt4 1/1 Running 0 2m7s
pstack-prometheus-node-exporter-hl7ks 1/1 Running 0 2m7s
kube-prometheus-stackからConfigMapsを持ってくる
ConfigMapを確認します。
$ kubectl get cm -n pstack
NAME DATA AGE
kube-root-ca.crt 1 3m16s
prometheus-pstack-kube-prometheus-sta-prometheus-rulefiles-0 29 2m59s
pstack-grafana 1 3m6s
pstack-grafana-config-dashboards 1 3m6s
pstack-kube-prometheus-sta-alertmanager-overview 1 3m6s
pstack-kube-prometheus-sta-apiserver 1 3m6s
pstack-kube-prometheus-sta-cluster-total 1 3m6s
pstack-kube-prometheus-sta-controller-manager 1 3m6s
pstack-kube-prometheus-sta-etcd 1 3m6s
pstack-kube-prometheus-sta-grafana-datasource 1 3m6s
pstack-kube-prometheus-sta-grafana-overview 1 3m6s
pstack-kube-prometheus-sta-k8s-coredns 1 3m6s
pstack-kube-prometheus-sta-k8s-resources-cluster 1 3m6s
pstack-kube-prometheus-sta-k8s-resources-multicluster 1 3m6s
pstack-kube-prometheus-sta-k8s-resources-namespace 1 3m6s
pstack-kube-prometheus-sta-k8s-resources-node 1 3m6s
pstack-kube-prometheus-sta-k8s-resources-pod 1 3m6s
pstack-kube-prometheus-sta-k8s-resources-workload 1 3m6s
pstack-kube-prometheus-sta-k8s-resources-workloads-namespace 1 3m6s
pstack-kube-prometheus-sta-kubelet 1 3m6s
pstack-kube-prometheus-sta-namespace-by-pod 1 3m6s
pstack-kube-prometheus-sta-namespace-by-workload 1 3m6s
pstack-kube-prometheus-sta-node-cluster-rsrc-use 1 3m6s
pstack-kube-prometheus-sta-node-rsrc-use 1 3m6s
pstack-kube-prometheus-sta-nodes 1 3m6s
pstack-kube-prometheus-sta-nodes-darwin 1 3m6s
pstack-kube-prometheus-sta-persistentvolumesusage 1 3m6s
pstack-kube-prometheus-sta-pod-total 1 3m6s
pstack-kube-prometheus-sta-prometheus 1 3m6s
pstack-kube-prometheus-sta-proxy 1 3m6s
pstack-kube-prometheus-sta-scheduler 1 3m6s
pstack-kube-prometheus-sta-workload-total 1 3m6s
次の4つはgmp-monitoring
へのデプロイ時に使わないのでそれ以外をファイルに落とします。
- kube-root-ca.crt
- prometheus-pstack-kube-prometheus-sta-prometheus-rulefiles-0
- pstack-grafana
- pstack-grafana-config-dashboards
NAMESPACE=pstack
DIR=./pstack
for cm in `k get cm -n $NAMESPACE| awk 'NR>5{print $1}'`; do kubectl get cm $cm -n $NAMESPACE -oyaml>$DIR/$cm.yaml; done
$ ls pstack
pstack-kube-prometheus-sta-alertmanager-overview.yaml
pstack-kube-prometheus-sta-apiserver.yaml
pstack-kube-prometheus-sta-cluster-total.yaml
pstack-kube-prometheus-sta-controller-manager.yaml
pstack-kube-prometheus-sta-etcd.yaml
pstack-kube-prometheus-sta-grafana-datasource.yaml
pstack-kube-prometheus-sta-grafana-overview.yaml
pstack-kube-prometheus-sta-k8s-coredns.yaml
pstack-kube-prometheus-sta-k8s-resources-cluster.yaml
pstack-kube-prometheus-sta-k8s-resources-multicluster.yaml
pstack-kube-prometheus-sta-k8s-resources-namespace.yaml
pstack-kube-prometheus-sta-k8s-resources-node.yaml
pstack-kube-prometheus-sta-k8s-resources-pod.yaml
pstack-kube-prometheus-sta-k8s-resources-workloads-namespace.yaml
pstack-kube-prometheus-sta-k8s-resources-workload.yaml
pstack-kube-prometheus-sta-kubelet.yaml
pstack-kube-prometheus-sta-namespace-by-pod.yaml
pstack-kube-prometheus-sta-namespace-by-workload.yaml
pstack-kube-prometheus-sta-node-cluster-rsrc-use.yaml
pstack-kube-prometheus-sta-node-rsrc-use.yaml
pstack-kube-prometheus-sta-nodes-darwin.yaml
pstack-kube-prometheus-sta-nodes.yaml
pstack-kube-prometheus-sta-persistentvolumesusage.yaml
pstack-kube-prometheus-sta-pod-total.yaml
pstack-kube-prometheus-sta-prometheus.yaml
pstack-kube-prometheus-sta-proxy.yaml
pstack-kube-prometheus-sta-scheduler.yaml
pstack-kube-prometheus-sta-workload-total.yaml
$ ls pstack | wc -l
28
kube-prometheus-stackからRecordingRulesを持ってくる
PrometheusRuleを確認します。
$ kubectl get prometheusrules -n pstack
NAME AGE
pstack-kube-prometheus-sta-alertmanager.rules 14h
pstack-kube-prometheus-sta-config-reloaders 14h
pstack-kube-prometheus-sta-etcd 14h
pstack-kube-prometheus-sta-general.rules 14h
pstack-kube-prometheus-sta-k8s.rules 14h
pstack-kube-prometheus-sta-kube-apiserver-availability.rules 14h
pstack-kube-prometheus-sta-kube-apiserver-burnrate.rules 14h
pstack-kube-prometheus-sta-kube-apiserver-histogram.rules 14h
pstack-kube-prometheus-sta-kube-apiserver-slos 14h
pstack-kube-prometheus-sta-kube-prometheus-general.rules 14h
pstack-kube-prometheus-sta-kube-prometheus-node-recording.rules 14h
pstack-kube-prometheus-sta-kube-scheduler.rules 14h
pstack-kube-prometheus-sta-kube-state-metrics 14h
pstack-kube-prometheus-sta-kubelet.rules 14h
pstack-kube-prometheus-sta-kubernetes-apps 14h
pstack-kube-prometheus-sta-kubernetes-resources 14h
pstack-kube-prometheus-sta-kubernetes-storage 14h
pstack-kube-prometheus-sta-kubernetes-system 14h
pstack-kube-prometheus-sta-kubernetes-system-apiserver 14h
pstack-kube-prometheus-sta-kubernetes-system-controller-manager 14h
pstack-kube-prometheus-sta-kubernetes-system-kube-proxy 14h
pstack-kube-prometheus-sta-kubernetes-system-kubelet 14h
pstack-kube-prometheus-sta-kubernetes-system-scheduler 14h
pstack-kube-prometheus-sta-node-exporter 14h
pstack-kube-prometheus-sta-node-exporter.rules 14h
pstack-kube-prometheus-sta-node-network 14h
pstack-kube-prometheus-sta-node.rules 14h
pstack-kube-prometheus-sta-prometheus 14h
pstack-kube-prometheus-sta-prometheus-operator 14h
欲しいものはRecordingRuleなので.rules
のものだけで良いのですが、全てファイルに落としてしまいました。
NAMESPACE=pstack
DIR=prometheusrules
for pr in `k get prometheusrules -n $NAMESPACE| awk 'NR>1{print $1}'`; do kubectl get prometheusrules $pr -n $NAMESPACE -oyaml>$DIR/$pr.yaml; done
$ ls prometheusrules/
pstack-kube-prometheus-sta-alertmanager.rules.yaml
pstack-kube-prometheus-sta-config-reloaders.yaml
pstack-kube-prometheus-sta-etcd.yaml
pstack-kube-prometheus-sta-general.rules.yaml
pstack-kube-prometheus-sta-k8s.rules.yaml
pstack-kube-prometheus-sta-kube-apiserver-availability.rules.yaml
pstack-kube-prometheus-sta-kube-apiserver-burnrate.rules.yaml
pstack-kube-prometheus-sta-kube-apiserver-histogram.rules.yaml
pstack-kube-prometheus-sta-kube-apiserver-slos.yaml
pstack-kube-prometheus-sta-kubelet.rules.yaml
pstack-kube-prometheus-sta-kube-prometheus-general.rules.yaml
pstack-kube-prometheus-sta-kube-prometheus-node-recording.rules.yaml
pstack-kube-prometheus-sta-kubernetes-apps.yaml
pstack-kube-prometheus-sta-kubernetes-resources.yaml
pstack-kube-prometheus-sta-kubernetes-storage.yaml
pstack-kube-prometheus-sta-kubernetes-system-apiserver.yaml
pstack-kube-prometheus-sta-kubernetes-system-controller-manager.yaml
pstack-kube-prometheus-sta-kubernetes-system-kubelet.yaml
pstack-kube-prometheus-sta-kubernetes-system-kube-proxy.yaml
pstack-kube-prometheus-sta-kubernetes-system-scheduler.yaml
pstack-kube-prometheus-sta-kubernetes-system.yaml
pstack-kube-prometheus-sta-kube-scheduler.rules.yaml
pstack-kube-prometheus-sta-kube-state-metrics.yaml
pstack-kube-prometheus-sta-node-exporter.rules.yaml
pstack-kube-prometheus-sta-node-exporter.yaml
pstack-kube-prometheus-sta-node-network.yaml
pstack-kube-prometheus-sta-node.rules.yaml
pstack-kube-prometheus-sta-prometheus-operator.yaml
pstack-kube-prometheus-sta-prometheus.yaml
$ ls prometheusrules/ | wc -l
29
欲しいものは手に入ったので、pstackはuninstallしても大丈夫です。
NAMESPACE=pstack
RELEASE_NAME=pstack
helm uninstall $RELEASE_NAME -n $NAMESPACE
gmpにインポートする
dashboardを編集する
まずはインポートできている状態を目指します。
落としてきたファイルのメタデータを編集します。
before
...
metadata:
annotations:
meta.helm.sh/release-name: pstack
meta.helm.sh/release-namespace: pstack
creationTimestamp: "2023-10-31T01:21:07Z"
labels:
app: kube-prometheus-stack-grafana
app.kubernetes.io/instance: pstack
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: kube-prometheus-stack
app.kubernetes.io/version: 52.1.0
chart: kube-prometheus-stack-52.1.0
grafana_dashboard: "1"
heritage: Helm
release: pstack
name: pstack-kube-prometheus-sta-workload-total
namespace: pstack
resourceVersion: "395886"
uid: 090f9713-8d30-4a55-bb34-8791f70bb391
after
...
metadata:
labels:
grafana_dashboard: '1'
name: kube-prometheus-sta-workload-total
namespace: gmp-monitoring
datasourceを編集する
apiVersion: v1
data:
datasource.yaml: |-
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
uid: prometheus
url: http://frontend:9090/
access: proxy
isDefault: true
jsonData:
httpMethod: POST
timeInterval: 30s
kind: ConfigMap
metadata:
labels:
grafana_datasource: '1'
name: kube-prometheus-sta-grafana-datasource.yaml
namespace: gmp-monitoring
この時点でapplyするとgrafanaにアクセスするとダッシュボードおよびデータソースがインポートできていますが、No dataで表示されると思います。
NAMESPACE=gmp-monitoring
k port-forward -n $NAMESPACE svc/grafana 3000:80
PrometheusRuleからClusterRulesを作成する
末尾に.rules
がついているもののみデプロイします。
先ほど全部ファイルに落としてしまったので分けました。ダッシュボード表示のみでしたらrecordディレクトリ配下のファイル群のみで大丈夫です。
.
├── alert
│ ├── kube-prometheus-sta-config-reloaders.yaml
│ ├── kube-prometheus-sta-etcd.yaml
│ ├── kube-prometheus-sta-kube-apiserver-slos.yaml
│ ├── kube-prometheus-sta-kubernetes-apps.yaml
│ ├── kube-prometheus-sta-kubernetes-resources.yaml
│ ├── kube-prometheus-sta-kubernetes-storage.yaml
│ ├── kube-prometheus-sta-kubernetes-system-apiserver.yaml
│ ├── kube-prometheus-sta-kubernetes-system-controller-manager.yaml
│ ├── kube-prometheus-sta-kubernetes-system-kubelet.yaml
│ ├── kube-prometheus-sta-kubernetes-system-kube-proxy.yaml
│ ├── kube-prometheus-sta-kubernetes-system-scheduler.yaml
│ ├── kube-prometheus-sta-kubernetes-system.yaml
│ ├── kube-prometheus-sta-kube-state-metrics.yaml
│ ├── kube-prometheus-sta-node-exporter.yaml
│ ├── kube-prometheus-sta-node-network.yaml
│ ├── kube-prometheus-sta-prometheus-operator.yaml
│ └── kube-prometheus-sta-prometheus.yaml
└── record
├── kube-prometheus-sta-alertmanager.rules.yaml
├── kube-prometheus-sta-general.rules.yaml
├── kube-prometheus-sta-k8s.rules.yaml
├── kube-prometheus-sta-kube-apiserver-availability.rules.yaml
├── kube-prometheus-sta-kube-apiserver-burnrate.rules.yaml
├── kube-prometheus-sta-kube-apiserver-histogram.rules.yaml
├── kube-prometheus-sta-kubelet.rules.yaml
├── kube-prometheus-sta-kube-prometheus-general.rules.yaml
├── kube-prometheus-sta-kube-prometheus-node-recording.rules.yaml
├── kube-prometheus-sta-kube-scheduler.rules.yaml
├── kube-prometheus-sta-node-exporter.rules.yaml
└── kube-prometheus-sta-node.rules.yaml
before
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
annotations:
meta.helm.sh/release-name: pstack
meta.helm.sh/release-namespace: pstack
creationTimestamp: "2023-10-31T10:52:58Z"
generation: 1
labels:
app: kube-prometheus-stack
app.kubernetes.io/instance: pstack
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: kube-prometheus-stack
app.kubernetes.io/version: 52.1.0
chart: kube-prometheus-stack-52.1.0
heritage: Helm
release: pstack
name: pstack-kube-prometheus-sta-alertmanager.rules
namespace: pstack
resourceVersion: "657348"
uid: b40fe500-4923-475b-ad9c-7e88b0963487
spec:
groups:
- name: alertmanager.rules
rules:
...
after
apiVersion: monitoring.googleapis.com/v1
kind: ClusterRules
metadata:
name: kube-prometheus-sta-alertmanager.rules
spec:
groups:
- name: alertmanager.rules
interval: 30s
rules:
...
ClusterRulesはspec.groups.interval
が必須なので注意です。
設定項目を調整する
kubeletのメトリクスが取得できるようにOperatorConfigに以下を追加します。
...
collection:
kubeletScraping:
interval: 30s
...
kube-prometheus-stackとの差分を修正します。
ダッシュボードについて、metrics_path=\"/metrics/cadvisor\"
とmetrics_path=\\"/metrics\\"
を削除します。
DIR=gmp-monitoring
for i in `ls $DIR`; do sed -i -z -e 's@,[\n| ]*metrics_path=\\"/metrics/cadvisor\\"@@g' -e 's@,[\n| ]*metrics_path=\\"/metrics\\"@@g' $DIR/$i; done
ファイルを編集したらapplyしてください。
kubectl apply -f $DIR
同じように、ClusterRulesについて、metrics_path="/metrics/cadvisor"
とmetrics_path="/metrics"
を削除します。
DIR=clusterrules/record
for i in `ls $DIR`; do sed -i -z -e 's@,[\n| ]*metrics_path="/metrics/cadvisor"@@g' -e 's@,[\n| ]*metrics_path="/metrics"@@g' $DIR/$i; done
ファイルを編集したらapplyしてください。
kubectl apply -f $DIR
この時点で見れるダッシュボード
- Kubernetes / Compute Resources / Multi-Cluster
- Kubernetes / Compute Resourcees / Cluster
- Kubernetes / Compute Resources / Namespace (Pods)
- Kubernetes / Compute Resources / Namespace (Workloads)
- Kubernetes / Compute Resources / Node (Pods)
- Kubernetes / Compute Resources / Pod
- Kubernetes / Compute Resources / Workload
- Kubernetes / Kubelet
- Kubernetes / Networking / Cluster
- Kubernetes / Networking / Namespace (Pods)
- Kubernetes / Networking / Namespace (Workloads)
- Kubernetes / Networking / Pod
- Kubernetes / Networking / Workload
- Kubernetes / Persistent Volumes
- Node Exporter / Nodes
- Node Exporter / USE Method / Cluster
- Node Exporter / USE Method / Node
この時点で見れないダッシュボード
- AlertManager / Overview
- CoreDNS
- Grafana Overview
- Kubernetes / API server
- Kubernetes / Controller Manager
- Kubernetes / Proxy
- Kubernetes / Scheduler
- Prometheus / Overview
- etcd
未検証のダッシュボード
- Node Exporter / MacOS
もう少しだけ見れるようにします
以下のダッシュボードのメトリクスが表示されるようになります。
- AlertManager / Overview
- Grafana Overview
PodMonitoringを作成する
Alertmanagerは今回マネージド Alertmanager を使っていますがセルフデプロイされたものでも構いません。
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
namespace: gmp-system
name: alertmanager
labels:
app.kubernetes.io/name: alertmanager
app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
selector:
matchLabels:
app.kubernetes.io/name: alertmanager
endpoints:
- port: alertmanager
interval: 30s
Grafana用のPodMonitoring
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
namespace: gmp-monitoring
name: grafana
labels:
app.kubernetes.io/name: grafana
app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
selector:
matchLabels:
app.kubernetes.io/name: grafana
endpoints:
- port: grafana
interval: 30s
まとめ
見れるダッシュボード
- AlertManager / Overview
- Grafana Overview
- Kubernetes / Compute Resources / Multi-Cluster
- Kubernetes / Compute Resourcees / Cluster
- Kubernetes / Compute Resources / Namespace (Pods)
- Kubernetes / Compute Resources / Namespace (Workloads)
- Kubernetes / Compute Resources / Node (Pods)
- Kubernetes / Compute Resources / Pod
- Kubernetes / Compute Resources / Workload
- Kubernetes / Kubelet
- Kubernetes / Networking / Cluster
- Kubernetes / Networking / Namespace (Pods)
- Kubernetes / Networking / Namespace (Workloads)
- Kubernetes / Networking / Pod
- Kubernetes / Networking / Workload
- Kubernetes / Persistent Volumes
- Node Exporter / Nodes
- Node Exporter / USE Method / Cluster
- Node Exporter / USE Method / Node
見れないダッシュボード
- CoreDNS
- Kubernetes / API server
- Kubernetes / Controller Manager
- Kubernetes / Proxy
- Kubernetes / Scheduler
- Prometheus / Overview
- etcd
未検証のダッシュボード
- Node Exporter / MacOS
見れないダッシュボードのうち、api-server、 kube-proxy、kube-scheduler、controller-managerについては、GKEのCloudMonitoringを有効にしたらメトリクスが取れるんじゃないかと思い、試しました。
メトリクスは取得できるようになるものの、詳細なメトリクスデータは排出されていなかったため、ダッシュボードにはほとんど表示されませんでした。
申し訳ございませんが、MacOSは使っていないので未検証です。
以上です。
最初メトリクスが表示されず悩んだので誰かの助けになれば幸いです。