kubernetes部署kube-state-metrics
kubernetes之kube-state-metrics提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第三章 kubernetes监控之kube-state-metrics使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录kubernetes之kube-state-metrics前言一、kube-state-metrics与metrics-ser
kubernetes之kube-state-metrics
kubernetes监控之kube-state-metrics使用文章目录
前言
基于容器的服务架构改变了业务部署、运作的方式。容器通过简化应用程序的扩缩容和部署来帮助公司实现自动化,但容器也创建了一个全新的基础设施生态系统,从而引入了新的挑战和更多的复杂性。如何监控整个容器的运行状态成为了我们的迫切需求。以下介绍如何利用kube-state-metrics采集K8s集群 生命周期的各项指标
一、kube-state-metrics与metrics-server对比
我们服务在运行过程中,我们想了解服务运行状态,pod有没有重启,伸缩有没有成功,pod的状态是怎么样的等,这时就需要kube-state-metrics,它主要关注deployment,、node 、 pod等内部对象的状态。而metrics-server 主要用于监测node,pod等的CPU,内存,网络等系统指标。
二、kubernetes安装kube-state-metrics
1.下载yaml
版本选择,因为本文k8s版本是1.16,故安装v1.9.7
下载相关配置文件
https://github.com/kubernetes/kube-state-metrics/tree/release-1.9/examples/standard
建立文件夹
mkdir -p /tmp/kube-state-metrics
cd /tmp/kube-state-metrics
/tmp/kube-state-metrics文件夹结构如下:
.
├── cluster-role-binding.yaml
├── cluster-role.yaml
├── deployment.yaml
├── service-account.yaml
└── service.yaml
注意:如果prometheus 安装在集群内部,修改service.yaml
# vim service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: v1.9.7
name: kube-state-metrics
namespace: kube-system
annotations:
prometheus.io/scrape: "true" ##添加此参数,允许prometheus自动发现
2.部署
代码如下:
#部署服务至k8s
cd /tmp/kube-state-metrics
kubectl apply -f ./
#查看是否运行成功
kubectl get pod -n kube-system |grep kube-state-metrics
kube-state-metrics-xxxx-n5qtx 1/1 Running 0 41m
kubectl get svc -n kube-system |grep kube-state-metrics
kube-state-metrics ClusterIP None <none> 8080/TCP,8081/TCP 53m
三、prometheus采集指标
验证指标是否采集成功
请求kube-state-metrics的pod ip+8080端口,出现以下页面则正常
三种方法
1、service绑定负载均衡IP,prometheus采集负载均衡IP+8080端口信息
2、如果prometheus 安装在集群内部,采用prometheus自动发现策略,注意sevice已经修改部分内容
3、prometheus自动发现相关Pod ip,prometheus采集Pod IP+8080端口信息
prometheus配置信息:
- job_name: 'kube-state-metrics'
scheme: http
bearer_token_file: /xxx/xxx_token
metrics_path: metrics
tls_config:
insecure_skip_verify: true
kubernetes_sd_configs:
- api_server: https://xxxx.xxx.xxx.xx:6443
role: pod
tls_config:
insecure_skip_verify: true
bearer_token_file: /xxx/xxx_token
relabel_configs:
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: pod
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_pod_ip]
regex: (.+)
target_label: __address__
replacement: ${1}:8080
- source_labels: ["__meta_kubernetes_pod_container_name"]
regex: "^kube-state-metrics.*"
action: keep
结果如下:
总结
以上就是所写的内容,本文仅仅简单介绍了kube-state-metrics的安装,相关重启、状态异常报警规则参考官方配置更多推荐
所有评论(0)