十四、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)

导入,就可以看数据了

相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS5 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心5 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing5 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)5 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang5 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
羑悻的小杀马特5 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe5 天前
docker常见命令
docker
正经教主6 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde