无法在K8S集群中创建Prometheus

时间:2019-02-04 11:18:26

标签: kubernetes google-cloud-platform cloud prometheus kubernetes-helm

我正在尝试在我的K8S集群上安装Prometheus

当我运行命令

kubectl get namespaces

我有以下命名空间:

default       Active   26h
kube-public   Active   26h
kube-system   Active   26h
monitoring    Active   153m
prod          Active   5h49m

现在我想通过

创建Prometheus
helm install stable/prometheus --name prom -f k8s-values.yml

我得到错误:

  

错误:发布prom-demo失败:名称空间“默认”被禁止:   用户“ system:serviceaccount:kube-system:default”无法获取资源   名称空间“默认”中的API组“”中的“名称空间”

即使我切换到monitoring ns也遇到相同的错误,

k8s-values.yml如下所示

rbac:
  create: false
server:
  name: server

  service:
    nodePort: 30002
    type: NodePort

您知道这里可能缺少什么吗?

2 个答案:

答案 0 :(得分:1)

您收到此错误是因为您在使用RBAC时没有授予正确的权限。

授予分till权限:
摘自https://github.com/helm/helm/blob/master/docs/rbac.md

示例:具有群集管理员角色的服务帐户 在rbac-config.yaml中:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

注意:cluster-admin角色是默认在Kubernetes集群中创建的,因此您不必显式定义它。

$ kubectl create -f rbac-config.yaml
serviceaccount "tiller" created
clusterrolebinding "tiller" created
$ helm init --service-account tiller

为普罗米修斯创建服务帐户:
rbac.create的值更改为true

rbac:
  create: true
server:
  name: server

  service:
    nodePort: 30002
    type: NodePort

答案 1 :(得分:0)

请看一下Prometheus运算符,以启动Prometheus堆栈中的所有监视服务。 以下链接很有帮助 https://github.com/coreos/prometheus-operator/tree/master/contrib/kube-prometheus/manifests

所有清单都在此处列出。遍历这些文件并部署在k8s集群中需要监视的所有内容