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)最後能夠看到圖表了: