prometheus监控k8s集群信息(通过kubelet)
一、创建prometheus访问k8s权限账户(在k8s集群中操作)。
1、在k8s集群中创建服务账户
vim prometheus-sa.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: prometheus-sa namespace: monitor
2、创建集群角色
vim prometheus-cr.yaml
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: namespace: monitor name: prometheus-cr rules: - apiGroups: - "" resources: - nodes - services - endpoints - pods - nodes/proxy verbs: - get - list - watch - apiGroups: - "extensions" resources: - ingresses verbs: - get - list - watch - apiGroups: - "" resources: - configmaps - nodes/metrics verbs: - get - nonResourceURLs: - /metrics verbs: - get
3、绑定服务账户和集群角色
vim prometheus-crb.yaml
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: prometheus-crb roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: prometheus-cr subjects: - kind: ServiceAccount name: prometheus-sa namespace: monitor
4、通过yaml文件创建
kubectl apply -f prometheus-sa.yaml kubectl apply -f prometheus-cr.yaml kubectl apply -f prometheus-crb.yaml
二、获取prometheus-sa服务账户token信息。
1、获取查询secrets名称。
kubectl describe sa prometheus-sa -nmonitor
其中Tokens的值就是secrets的信息。
2、查看secrets信息,获取token。
kubectl describe secrets prometheus-sa-token-6dprr -nmonitor
其中token项的值就是prometheus需要用到的token信息,复制到prometheus服务器的一个文件中,这里保存文件为/usr/local/prometheus/cert/token。
三、配置prometheus。
因为是部署在集群外部的prometheus,需要通过访问apiserver去自动发现kubelet的地址,通过kubelet中集成的/metrics/cadvisor接口来获取信息。
1、在prometheus配置文件中,新增一个job
vim /usr/local/prometheus/prometheus.yml
- job_name: 'k8s-cadvisor' scheme: https scrape_interval: 10s scrape_timeout: 10s tls_config: insecure_skip_verify: true #跳过证书认证 bearer_token_file: /usr/local/prometheus/cert/token #token文件地址 metrics_path: /metrics/cadvisor kubernetes_sd_configs: #k8s自发现 - api_server: https://xxx.xxx.xxx.xxx:6443 #apiserver地址 role: node #根据node自发现 tls_config: insecure_skip_verify: true bearer_token_file: /usr/local/prometheus/cert/token relabel_configs: # 配置重新设置抓取 kubelet 指标时的目标路径和标签 - source_labels: [__meta_kubernetes_node_name] regex: (.+) target_label: __metrics_path__ replacement: metrics/cadvisor - action: labelmap regex: __meta_kubernetes_node_label_(.+)
2、重新加载prometheus配置。
curl -X POST http://localhost:9090/-/reload
3、页面查看监控监控状态。
四、配置grafana
根据需求配置自己想要的信息图像展示。
标签:name,yaml,token,kubelet,prometheus,sa,k8s From: https://www.cnblogs.com/NanZhiHan/p/17903695.html