amazon-web-services - k8s - 使用 Promethues 和 cAdvisor 来监控微服务/Pod 数据
问题描述
我Prometheus operator
在新的 Kubernetes 集群中运行,并尝试获取容器详细信息。Prometheus 的查询仪表板不提供任何容器数据,当我查看目标时,我看到以下内容
也许是因为角色,但我不确定,因为我是这个主题的新手,所以我也看到了这个:
https ://github.com/coreos/prometheus-operator/issues/867
我添加了authentication-token-webhook
哪个没有帮助,但也许我没有在正确的地方做......
知道我在这里想念什么吗?
我的 operator.yml 配置如下所示
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: prometheus-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: prometheus-operator
subjects:
- kind: ServiceAccount
name: prometheus-operator
namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: prometheus-operator
rules:
- apiGroups:
- extensions
resources:
- thirdpartyresources
verbs:
- "*"
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- "*"
- apiGroups:
- monitoring.coreos.com
resources:
- alertmanagers
- prometheuses
- prometheuses/finalizers
- servicemonitors
verbs:
- "*"
- apiGroups:
- apps
resources:
- statefulsets
verbs: ["*"]
- apiGroups: [""]
resources:
- configmaps
- secrets
verbs: ["*"]
- apiGroups: [""]
resources:
- pods
verbs: ["list", "delete"]
- apiGroups: [""]
resources:
- services
- endpoints
verbs: ["get", "create", "update"]
- apiGroups: [""]
resources:
- nodes
verbs: ["list", "watch"]
- apiGroups: [""]
resources:
- namespaces
verbs: ["list"]
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: prometheus-operator
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
k8s-app: prometheus-operator
name: prometheus-operator
spec:
replicas: 1
template:
metadata:
labels:
k8s-app: prometheus-operator
spec:
containers:
- args:
- --kubelet-service=kube-system/kubelet
- --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1
- --authentication-token-webhook=true
- --extra-config=kubelet.authentication-token-webhook=true
image: quay.io/coreos/prometheus-operator:v0.17.0
name: prometheus-operator
ports:
- containerPort: 8080
name: http
resources:
limits:
cpu: 200m
memory: 100Mi
requests:
cpu: 100m
memory: 50Mi
securityContext:
runAsNonRoot: true
runAsUser: 65534
serviceAccountName: prometheus-operator
我的 rbac 看起来像以下
---
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: default
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: prometheus-k8s
rules:
- apiGroups:
- ""
resources:
- nodes/metrics
verbs:
- get
- nonResourceURLs:
- /metrics
verbs:
- get
如果缺少某些配置文件,请告诉我,我会添加它。
解决方案
将以下参数添加到每个工作节点上的 kubelet 配置中
--authentication-token-webhook=true
--extra-config=kubelet.authorization-mode=Webhook
然后运行以下命令
systemctl daemon-reload
systemctl restart kubelet
推荐阅读
- python - scikit 中的特征脸与训练图像不对应
- python - Python - 使用操作系统重命名文件两次
- java - @Inject Twitter bean 一个 connectionRepository 问题
- java - Spring Boot 默认应用程序上的 Firebase
- javascript - 如何在 ionic 3 上创建一个 scrollTop 按钮
- php - 如何将文本文件中的数据导入 PGSQL 数据库表?
- samsung-mobile - 如何将手表显示屏旋转到可变角度?
- python - Django - 表单 - 将自定义属性分配给 forms.py 中的表单
- html - 将子 div 定位在父 div 之外
- r - 在 ggplot2 中正确格式化两行标题