• k8s--基础--26.6--监控告警系统--kube-state-metrics


    k8s–基础–26.6–监控告警系统–kube-state-metrics


    1、kube-state-metrics是什么?

    1. kube-state-metrics 会监听API Server生成有关资源对象的状态指标,比如Deployment、Node、Pod。
    2. kube-state-metrics只是简单的提供一个metrics数据,并不会存储这些指标数据,我们可以使用Prometheus来抓取这些数据然后存储。
    3. 指标数据
      1. Deployment、Pod、副本状态等
      2. 调度了多少个replicas
      3. 现在可用的pod有几个
      4. 多少个Pod是running/stopped/terminated状态
      5. Pod重启了多少次
      6. 我有多少job在运行中。

    2、安装kube-state-metrics前

    各个节点都要操作

    2.1、上传镜像

    在这里插入图片描述
    在这里插入图片描述

    2.2、解压

    # 解压缩
    docker load -i /root/k8s/monitor/kube-state-metrics_1_9_0.tar.gz
     
    # 删除
    rm -rf /root/k8s/monitor/kube-state-metrics_1_9_0.tar.gz
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、安装kube-state-metrics

    1. 以下操作都在master1节点上

    3.1、创建sa,并对sa授权

    3.1.1、脚本

    vi /root/k8s/monitor/kube-state-metrics-rbac.yaml
    
    
    • 1
    • 2

    内容

    # 创建sa
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      # sa 账号名称
      name: kube-state-metrics
      # sa 账号名称空间
      namespace: kube-system
    ---
    # 对sa账号进行rbac授权
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: kube-state-metrics
    rules:
    - apiGroups: [""]
      resources: ["nodes", "pods", "services", "resourcequotas", "replicationcontrollers", "limitranges", "persistentvolumeclaims", "persistentvolumes", "namespaces", "endpoints"]
      verbs: ["list", "watch"]
    - apiGroups: ["extensions"]
      resources: ["daemonsets", "deployments", "replicasets"]
      verbs: ["list", "watch"]
    - apiGroups: ["apps"]
      resources: ["statefulsets"]
      verbs: ["list", "watch"]
    - apiGroups: ["batch"]
      resources: ["cronjobs", "jobs"]
      verbs: ["list", "watch"]
    - apiGroups: ["autoscaling"]
      resources: ["horizontalpodautoscalers"]
      verbs: ["list", "watch"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: kube-state-metrics
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: kube-state-metrics
    subjects:
    - kind: ServiceAccount
      name: kube-state-metrics
      namespace: kube-system
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    3.1.2、执行

    
    kubectl apply  -f  /root/k8s/monitor/kube-state-metrics-rbac.yaml
    
    # 查看
    kubectl get sa -n kube-system | grep metrics
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    3.2、安装kube-state-metrics组件

    3.2.1、脚本

    vi /root/k8s/monitor/kube-state-metrics-deploy.yaml
    
    
    • 1
    • 2

    内容

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      # Deployment的名称和 使用的名称空间
      name: kube-state-metrics
      namespace: kube-system
    spec:
      # 副本实例
      replicas: 1
      # 标签选择器,选择哪个template
      selector:
        matchLabels:
          app: kube-state-metrics
      # 定义template
      template:
        metadata:
          labels:
            app: kube-state-metrics
        # 定义容器
        spec:
          # sa账号
          serviceAccountName: kube-state-metrics 
          containers:
          - name: kube-state-metrics
    #        image: gcr.io/google_containers/kube-state-metrics-amd64:v1.3.1
            image: quay.io/coreos/kube-state-metrics:v1.9.0
            ports:
            - containerPort: 8080
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    3.2.2、执行

    
    kubectl apply  -f /root/k8s/monitor/kube-state-metrics-deploy.yaml
    
    # 查看
    kubectl get ConfigMap -n monitor-sa
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    4、在grafana中导入kube-state-metrics的配置

    4.1、配置文件

    在这里插入图片描述

    4.2、导入Kubernetes Cluster(Prometheus)-1577674936972.json后,效果图

    在这里插入图片描述
    在这里插入图片描述

    4.3、导入Kubernetes cluster monitoring(via Prometheus)(k8s 1.16)-1577691996738.json后,效果图

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    Kubernetes 创建pod的yaml文件-简单版-nginx
    python 调用钉钉机器人接口案例一则 —— 筑梦之路
    Rust 中使用 :: 这种语法的几种情况
    C语言——如何写出好的代码?
    低代码平台的优势与不足之处
    企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
    【C语言】预处理超级详细解析
    前端深度学习总结
    Apollo6.0安装文档教程——环境搭建、安装、编译、测试
    Smartbi电子表格故事之高效营销活动后的自助数据分析
  • 原文地址:https://blog.csdn.net/zhou920786312/article/details/126244335