十四、k8s集群安装kube-state-metrics 组件

kube-state-metrics 通过监听 API Server 生成有关资源对象的状态指标,比如Node、Pod,需 要注意的是kube-state-metrics 只是简单的提供一个metrics数据,并不会存储这些指标数据,所 以我们可以使用Prometheus来抓取这些数据然后存储,主要关注的是业务相关的一些元数据,比如 Pod 副本状态等;调度了多少个replicas?现在可用的有几个?多少个Pod是 running/stopped/terminated 状态?Pod 重启了多少次?我有多少job在运行中。

安装kube-state-metrics 组件

1)创建sa,并对sa授权

在master节点创建kube-state-metrics-rbac.yaml文件

vim kube-state-metrics-rbac.yaml

输入:

apiVersion: v1

kind: ServiceAccount

metadata:

name: kube-state-metrics

namespace: kube-system


apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRole

metadata:

name: kube-state-metrics

rules:

  • apiGroups: ""

resources:

  • configmaps

  • secrets

  • nodes

  • pods

  • services

  • resourcequotas

  • replicationcontrollers

  • limitranges

  • persistentvolumeclaims

  • persistentvolumes

  • namespaces

  • endpoints

verbs: "list", "watch"

  • apiGroups: "apps"

resources:

  • statefulsets

  • daemonsets

  • deployments

  • replicasets

verbs: "list", "watch"

  • apiGroups: "batch"

resources:

  • cronjobs

  • jobs

verbs: "list", "watch"

  • apiGroups: "autoscaling"

resources:

  • horizontalpodautoscalers

verbs: "list", "watch"

  • apiGroups: "policy"

resources:

  • poddisruptionbudgets

verbs: "list", "watch"

  • apiGroups: "certificates.k8s.io"

resources:

  • certificatesigningrequests

verbs: "list", "watch"

  • apiGroups: "storage.k8s.io"

resources:

  • storageclasses

  • volumeattachments

verbs: "list", "watch"

  • apiGroups: "admissionregistration.k8s.io"

resources:

  • mutatingwebhookconfigurations

  • validatingwebhookconfigurations

verbs: "list", "watch"

  • apiGroups: "networking.k8s.io"

resources:

  • networkpolicies

  • ingresses

verbs: "list", "watch"

  • apiGroups: "coordination.k8s.io"

resources:

  • leases

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

保存退出

kubectl apply -f kube-state-metrics-rbac.yaml

2)安装kube-state-metrics 组件

GitHub 官方仓库地址:

Releases · kubernetes/kube-state-metrics · GitHub

Docker Hub 官方镜像地址‌:直接拉取官方预构建镜像,无需本地编译

https://hub.docker.com/去这个地址里面搜索下载

ctr -n k8s.io images import kube-state-metrics_1_9_0.tar.gz

vim kube-state-metrics deploy.yaml

输入:

apiVersion: apps/v1

kind: Deployment

metadata:

name: kube-state-metrics

namespace: kube-system

spec:

replicas: 1

selector:

matchLabels:

app: kube-state-metrics

template:

metadata:

labels:

app: kube-state-metrics

spec:

serviceAccountName: kube-state-metrics

containers:

  • name: kube-state-metrics

image: quay.io/coreos/kube-state-metrics:v1.9.0

imagePullPolicy: IfNotPresent

ports:

  • containerPort: 8080

保存退出

kubectl apply -f kube-state-metrics-deploy.yaml

查看kube-state-metrics是否部署成功

kubectl get pods -n kube-system -l app=kube-state-metrics

3)创建service

vim kube-state-metrics-svc.yaml

输入:

apiVersion: v1

kind: Service

metadata:

annotations:

prometheus.io/scrape: 'true'

name: kube-state-metrics

namespace: kube-system

labels:

app: kube-state-metrics

spec:

ports:

  • name: kube-state-metrics

port: 8080

protocol: TCP

selector:

app: kube-state-metrics

保存退出

kubectl apply -f kube-state-metrics-svc.yaml

查看service是否创建成功

kubectl get svc -n kube-system | grep kube-state-metrics

去网站下载下面grafana可视化的json

Kubernetes Cluster (Prometheus)

Kubernetes cluster monitoring (via Prometheus) (k8s 1.16)

导入,就可以看数据了

相关推荐
名字还没想好☜4 小时前
用 systemd 托管后台服务:Restart 策略、日志接管、资源限制与开机自启全踩一遍
运维·docker·kubernetes
动力 continue4 小时前
docker容器大舞台,创建镜像,构造类,基础速通
docker·容器
Akiyama_Mio-Kon5 小时前
2026 最新:Dify 本地 Docker 部署完整教程(Windows + Git Bash)
windows·git·docker
野熊佩骑8 小时前
Kubernetes实战系列文章(三) 之 K8S运维常用命令
linux·运维·docker·微服务·云原生·容器·kubernetes
一个向上的运维者11 小时前
Kubernetes 网络三部曲:CNI、kube-proxy 与 CoreDNS 是如何协作的?
网络·容器·kubernetes
DolitD11 小时前
实时云渲染多应用并发:CELL容器技术突破3D隔离瓶颈
云原生·容器·实时互动·图形渲染·数据可视化
鹤落晴春12 小时前
【K8s】Kustomize管理
云原生·容器·kubernetes
石小千12 小时前
Docker 笔记(九)--离线安装
docker·容器
dazhong201213 小时前
Docker 进阶篇(二) Docker Compose 部署 Nginx 实践
nginx·docker·容器
码--到成功14 小时前
Docker、Kubernetes安装系列 一
docker·容器·kubernetes