首页 > 其他分享 >prometheus监控k8s集群信息(通过kubelet)

prometheus监控k8s集群信息(通过kubelet)

时间:2023-12-15 16:55:53浏览次数:24  
标签:name yaml token kubelet prometheus sa k8s

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

相关文章

  • 记录一次在k8s上,web服务内嵌的netty-socketio注册到nacos,gateway转发路由 遇到的问题
    web服务内嵌的nacos怎么注册?使用javasdk方式参考链接:https://nacos.io/zh-cn/docs/sdk.html每个socket不同怎么设置端口我这里使用的是注解,让用户传过来,并且在bean初始化之前进行变量存储。这个链接里面的[netty-socketio服务端代码编写目录]:https://www.cnblogs.com/x......
  • kubernetes_k8s应用
    开发-测试-运维1.传统的IT系统结构:开发-测试-运维运维难度和运维成本服务扩容:涉及资源分配-实例部署-启动环节 服务升级: 服务监控 服务治理:故障处理模块开发2.从单机走向集群系统的可伸缩性(scalability 横向扩容-水平可伸缩性(Horizontalscalability)就是......
  • k8s 常用命令
    查看apiserver审计日志:grep'"code":504'audit-2023-01-05T02-53-58.676.log|grep-Po'(?<="requestURI":")[^"]*'|sort|uniq-c|sort-rn|head-n100grep'"code":504'audit-2023-01......
  • k8s-资源存储
    ConfigMap基于命令创建创建一个名为my-config的configMap,并将key1和key2的值分别设置为value1和value2。kubectlcreateconfigmapmy-config--from-literal=key1=value1--from-literal=key2=value2基于文件创建1.定义文件apiVersion:v1kind:ConfigMapmetadata:......
  • kubeadm手动更新节点的kubelet证书
    问题描述在kubernetes-dev-worker-2节点某次重启服务器之后发现kubelet不可用,其/var/lib/kubelet/pki/kubelet-client-current.pem证书中的内容空了(不知道咋回事),所以不能再注册到kube-api中。处理过程:1.在master节点,执行一下,表示给kubernetes-dev-worker-2节点生成新的kubelet.......
  • containerd-wasm-shims k8s 运行webassembly 的containerd shim
    containerd-wasm-shims属于一个包装,基于了runwasi可以实现在k8ss中运行webassembly工作负载,使用上提供了多种wasm应用runtimes以及扩展,同时目前KWasm组织也包装了一个k8soperator实现方便的部署说明基于webassembly的运行模式是越来越多了,大家趋向于与k8s以及容器集成......
  • kubernetes_k8s框架概念梳理
    k8sk8s分为控制面(ControlPlane,master)和数据面(即Node)。控制面是K8S的大脑,组件包含:etcd数据库,负责注册服务、保存k8s配置和所有的API对象等数据scheduler负责监视pod的调度情况controller-manager负责节点、任务、端点和账户的总体调度a......
  • 玩转 K8s 权限控制:RBAC + kubeconfig 搞定 kubectl 权限管理那些事
    目录1.先抛需求2.RBAC配置2.1.K8s里的RBAC机制介绍2.2创建ServiceAccount、Role、RoleBinding和Secret3.配置kubeconfig文件3.1kubeconfig文件介绍3.2具体的kubeconfig配置3.3kubeconfig切换测试4.总结1.先抛需求当一个K8s集群需要被多个租户共享时,就......
  • k8s1.26部署etcd集群挂载nfs failed to save Raft hard state and entries","error":"
    背景:使用helm部署apisix时会把etcd也一起部署了,etcd数据需要持久化的,这边因为测试环境使用nfs,挂载nfs时发现只有一个etcd节点启动正常其他两个均报错如下:failedtosaveRafthardstateandentries","error":"input/outputerror截图:排错过程:1查看节点是否都可以挂载nfs  ---......
  • KubeKey 离线部署 KubeSphere v3.4.1 和 K8s v1.26 实战指南
    作者:运维有术前言知识点定级:入门级了解清单(manifest)和制品(artifact)的概念掌握manifest清单的编写方法根据manifest清单制作artifactKubeKey离线集群配置文件编写KubeKey离线部署HarborKubeKey离线部署KubeSphere和K8sKubeKey离线部署常见问题排......