rancher導入k8s集羣后添加監控無數據

一、日誌報錯

rancher導入k8s集羣后添加監控無數據,rancher日誌報錯:node

k8s.io/kube-state-metrics/pkg/collectors/builder.go:508: Failed to list *v1beta1.PodDisruptionBudget: poddisruptionbudgets.policy is forbidden: User "system:serviceaccount:cattle-prometheus:exporter-kube-state-cluster-monitoring" cannot list resource "poddisruptionbudgets" in API group "policy" at the cluster scope

 

二、緣由

緣由:是由於沒有對 poddisruptionbudgets 源進行受權。git

 

三、解決

參考:https://github.com/thxCode/rancher-system-charts/commit/48076079df0864489a669cea0380590f5dfca282 github

1)先查看 exporter-kube-state-cluster-monitoring 容器的 yaml 配置文件,是否含有 poddisruptionbudgets 源的權限定義:api

kubectl -n cattle-prometheus get clusterrole/exporter-kube-state-cluster-monitoring -o yamlapp

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: "2019-05-24T07:07:04Z"
  labels:
    app: exporter-kube-state
    chart: exporter-kube-state-0.0.1
    heritage: Tiller
    io.cattle.field/appId: cluster-monitoring
    release: cluster-monitoring
  name: exporter-kube-state-cluster-monitoring
  resourceVersion: "543065"
  selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/exporter-kube-state-cluster-monitoring
  uid: 88e7bfe7-7df2-11e9-b769-0232e60a22fc
rules:
- apiGroups:
  - ""
  resources:
  - namespaces
  - nodes
  - pods
  - services
  - resourcequotas
  - replicationcontrollers
  - limitranges
  - persistentvolumeclaims
  - persistentvolumes
  - endpoints
  - configmaps
  - secrets
  verbs:
  - list
  - watch
- apiGroups:
  - extensions
  resources:
  - daemonsets
  - deployments
  - replicasets
  verbs:
  - list
  - watch
- apiGroups:
  - apps
  resources:
  - statefulsets
  - deployments
  verbs:
  - list
  - watch
- apiGroups:
  - batch
  resources:
  - cronjobs
  - jobs
  verbs:
  - list
  - watch
- apiGroups:
  - autoscaling
  resources:
  - horizontalpodautoscalers
  verbs:
  - list
  - watch

 

2)發現沒有相關配置,則先導出配置文件:ui

kubectl -n cattle-prometheus get clusterrole/exporter-kube-state-cluster-monitoring -o yaml >kube-state-ClusterRole.yamlspa

 

3)而後在最後面添加:日誌

- apiGroups:
  - autoscaling
  resources:
  - horizontalpodautoscalers
  verbs:
  - list
  - watch

 

4)再應用配置code

kubectl apply -f kube-state-ClusterRole.yamlblog

 

5)最後能夠看到圖表了:

相關文章
相關標籤/搜索