无法在 K8S 集群中创建 Prometheus
Not able to create Prometheus in K8S cluster
我正在尝试在我的 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
我得到了错误:
Error: release prom-demo failed: namespaces "default" is forbidden:
User "system:serviceaccount:kube-system:default" cannot get resource
"namespaces" in API group "" in the namespace "default"
即使我切换到 monitoring
ns 我也遇到同样的错误,
k8s-values.yml 如下所示
rbac:
create: false
server:
name: server
service:
nodePort: 30002
type: NodePort
知道这里可能遗漏了什么吗?
您收到此错误是因为您在未授予正确权限的情况下使用 RBAC。
授予舵机权限:
取自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
为 prometheus 创建一个服务帐户:
将 rbac.create
的值更改为 true
:
rbac:
create: true
server:
name: server
service:
nodePort: 30002
type: NodePort
查看 prometheus 运算符以从 prometheus 堆栈启动所有监控服务。
link 以下有帮助
https://github.com/coreos/prometheus-operator/tree/master/contrib/kube-prometheus/manifests
所有清单都列在那里。浏览这些文件并在你的 k8s 集群中部署你需要监控的任何东西
我正在尝试在我的 K8S 集群上安装 Prometheus
当我运行命令
kubectl get namespaces
我得到了以下命名空间:
default Active 26h
kube-public Active 26h
kube-system Active 26h
monitoring Active 153m
prod Active 5h49m
现在我想通过
创建 Prometheushelm install stable/prometheus --name prom -f k8s-values.yml
我得到了错误:
Error: release prom-demo failed: namespaces "default" is forbidden: User "system:serviceaccount:kube-system:default" cannot get resource "namespaces" in API group "" in the namespace "default"
即使我切换到 monitoring
ns 我也遇到同样的错误,
k8s-values.yml 如下所示
rbac:
create: false
server:
name: server
service:
nodePort: 30002
type: NodePort
知道这里可能遗漏了什么吗?
您收到此错误是因为您在未授予正确权限的情况下使用 RBAC。
授予舵机权限:
取自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
为 prometheus 创建一个服务帐户:
将 rbac.create
的值更改为 true
:
rbac:
create: true
server:
name: server
service:
nodePort: 30002
type: NodePort
查看 prometheus 运算符以从 prometheus 堆栈启动所有监控服务。 link 以下有帮助 https://github.com/coreos/prometheus-operator/tree/master/contrib/kube-prometheus/manifests
所有清单都列在那里。浏览这些文件并在你的 k8s 集群中部署你需要监控的任何东西