事象
システムログに以下のメッセージが定期的に出力される。
... journal: {"level":"error","msg":"Error scraping node metrics: the server could not find the requested resource (get nodes.metrics.k8s.io)","time":"..."}
尚、以下記事のようにDashboardをインストールしている。
環境情報
dashboard/v2.4.0
原因/解決策
dashboard-metrics-scraperが起動しているが
# kubectl get all -n kubernetes-dashboard ... NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/dashboard-metrics-scraper 1/1 1 1 .. deployment.apps/kubernetes-dashboard 1/1 1 1 ...
メトリクスを返すMetrics APIが作動していない。
# kubectl top nodes error: Metrics API not available
よってメトリクス収集ツールを導入するか
metrics-scraperを停止することで
# kubectl scale deployment/dashboard-metrics-scraper --replicas=0 -n kubernetes-dashboard deployment.apps/dashboard-metrics-scraper scaled
エラーは出なくなる。
以下、補足です。
補足
dockerのログを調査した際に
# journalctl -u docker
冒頭のエラーが出力されていました。
... dockerd-current[38910]: {"level":"error","msg":"Error scraping node metrics: the serv..
原因としてはKubernetes Dashboardをインストールすると自動で入るDeploymentに紐づくPodがエラーを出しており、Podのログを確認しても同様のメッセージが確認できました。
# kubectl logs dashboard-metrics-scraper-xx -n kubernetes-dashboard {"level":"info","msg":"Kubernetes host: https://...:443","time":"..."} {"level":"info","msg":"Namespace(s): []","time":"..."} ... {"level":"error","msg":"Error scraping node metrics: the server could not find the requested resource (get nodes.metrics.k8s.io)","time":"..."}\
以上です。