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

导入,就可以看数据了

相关推荐
xbzb6 分钟前
Docker 架构与部署:一条 docker run 到底走了三层
docker·容器·架构·镜像·加速·daemon
java_logo11 小时前
Docker 部署 Dify:轻松搭建 LLM 应用开发平台
运维·docker·容器
方便面不加香菜12 小时前
Docker Container -- 综合实战案例详解
运维·docker·容器
修己xj17 小时前
在 AMD 机器上拉取 ARM 架构 Docker 镜像
docker
瑞克-桑切斯19 小时前
docker Harbor 单机部署手册
大数据·运维·elasticsearch·docker·容器
wzq11_66621 小时前
Kubernetes集群——存储管理
云原生·容器·kubernetes
闲云自留地2 天前
K8s 的记忆大脑!ETCD 集群部署、etcdctl 命令与备份恢复全通关
容器·kubernetes·etcd
weirong2 天前
Operator 上生产前补的 6 件事,和 5 件我明确不做的
kubernetes
孙克旭_2 天前
k8s基础组件与创建资源
运维·docker·容器·kubernetes
java_logo3 天前
Docker 部署 EmulatorJS:轻松搭建浏览器复古游戏平台
游戏·docker·容器·复古游戏·轩辕镜像·emulatorjs·红白机