Прометей не может контролировать все стручки в kubernetes - PullRequest
0 голосов
/ 29 июня 2018

Таким образом, у меня есть 3 пространства имен, когда я развернул Prometheus в Kubernetes, я вижу ошибку в журналах. он не может контролировать все пространства имен.

Ошибка:

\ "system: serviceaccount: development: default \" не может перечислить конечные точки в области кластера " уровень = ошибка ts = 2018-06-28T21: 22: 07.390161824Z вызывающий абонент = main.go: 216 компонент = k8s_client_runtime err = "github.com/prometheus/prometheus/discovery/kubernetes/kubernetes.go:268: не удалось добавить в список * v1.Endpoints: конечные точки запрещены: пользователь \ "system: serviceaccount: devops: default \" не может перечислить конечные точки в области действия кластера "

1 Ответ

0 голосов
/ 29 июня 2018

Вам лучше использовать служебную учетную запись, чтобы получить доступ к kubernetes, и дать специальную привилегию, необходимую Прометею. как следующее:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: prometheus

---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: prometheus
rules:
- apiGroups: [""]
  resources:
  - nodes
  - services
  - endpoints
  - pods
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources:
  - configmaps
  verbs: ["get"]
- nonResourceURLs: ["/metrics"]
  verbs: ["get"]

---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: prometheus
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: prometheus
subjects:
- kind: ServiceAccount
  name: prometheus
  namespace: kube-system

Предполагается, что вы развертываете prometheus в пространстве имен системы kube. Также вам необходимо указать sa, например, «serviceAccount: prometheus», в вашем файле развертывания prometheus.

...