kubernetes使用metrics-server进行资源监控
kubernetes资源监控
1. 查看集群资源状况
·k8s集群的master节点一般不会跑业务容器·
kubectl get cs #查看master资源状态
kubectl get node #查看节点
kubectl cluster-info #查看集群状态
kubectl describe pods [pod名] #查看各类资源状态
kubectl get pods -o wide #查看更新信息
2.监控集群资源利用率【metrics-server安装使用】
#可以通过kubectl 来查看资源利用率,但是该命令需要 "heapster" 调用资源才行,如果没有提供资源则会报错如下:
[root@k8s-master1 ~]# kubectl top node k8s-node1
Error from server (NotFound): the server could not find the requested resource (get services http:heapster:)
#heapster组件已经被弃用,现在使用的是: metrics-server + cAdvisor聚合器来提供资源。
#cAdvisor 已经内置于kubelet组件中。所以需要安装metrics-server
metrics-server架构示意图:

wget https://www.chenleilei.net/soft/k8s/metrics-server.zip
#安装metrics-server 或 上传相关包
git clone https://github.com/kubernetes-incubator/metrics-server
cd metrics-server/
vim metrics-server-deployment.yaml
31,32行改为:
- name: metrics-server
image: lizhenliang/metrics-server-amd64:v0.3.1
33行 - --secure-port=4443 下方加入以下两行内容[从github中下载需要添加这两处,从博客下载这里就不用改了已经改好了]:
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP [这里意思是讲链接方式改为内部IP链接]
[注意:metrics-server是通过主机名来区分主机的,所以说必须要配置 host解析,metrics-server才能正确的采集到目标。]
修改配置文件 vim /etc/kubernetes/manifests/kube-apiserver.yaml
大约20行 - --enable-admission-plugins=NodeRestriction的下方添加1行代码:
- --enable-aggregator-routing=true
root@k8s-master1 metrics-server]# ll
otal 28
rw-r--r-- 1 root root 397 Mar 15 21:04 aggregated-metrics-reader.yaml
rw-r--r-- 1 root root 303 Mar 15 21:04 auth-delegator.yaml
rw-r--r-- 1 root root 324 Mar 15 21:04 auth-reader.yaml
rw-r--r-- 1 root root 298 Mar 15 21:04 metrics-apiservice.yaml #将merics-server注册到k8s的api中
rw-r--r-- 1 root root 1277 Mar 27 15:57 metrics-server-deployment.yaml #部署metrics-server
rw-r--r-- 1 root root 297 Mar 15 21:04 metrics-server-service.yaml
rw-r--r-- 1 root root 532 Mar 15 21:04 resource-reader.yaml
修改完毕后直接安装:
[root@k8s-master1 metrics-server]# kubectl apply -f .
提示:
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
serviceaccount/metrics-server created
deployment.apps/metrics-server created
service/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
# 重启 kubelet:
systemctl restart kubelet
检查安装:
[root@k8s-master1 metrics-server]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-7ff77c879f-kvbbh 1/1 Running 0 6d4h
coredns-7ff77c879f-lqk9q 1/1 Running 5 6d4h
etcd-k8s-master1 1/1 Running 2 8d
kube-apiserver-k8s-master1 1/1 Running 2 8d
kube-controller-manager-k8s-master1 1/1 Running 2 8d
kube-flannel-ds-amd64-8gssm 1/1 Running 5 8d
kube-flannel-ds-amd64-gtpwc 1/1 Running 2 8d
kube-flannel-ds-amd64-mx4jx 1/1 Running 4 8d
kube-proxy-kzwft 1/1 Running 5 8d
kube-proxy-rgjmf 1/1 Running 2 8d
kube-proxy-vhdpp 1/1 Running 4 8d
kube-scheduler-k8s-master1 1/1 Running 2 8d
metrics-server-5667498b7d-lmbtr 1/1 Running 0 56s <------metrics-server安装完毕。
查看:
[root@k8s-master1 metrics-server]# kubectl get apiservice
看到这行:
v1beta1.metrics.k8s.io kube-system/metrics-server True 17s #启动成功
验证配置kubectl top配置:
[root@k8s-master1 metrics-server]# kubectl top pods
NAME CPU(cores) MEMORY(bytes)
nginx-f89759699-6jfdp 0m 2Mi
#最开始执行这条命令报错,现在正常:
[root@k8s-master1 metrics-server]# kubectl top node k8s-node1
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% #<---- 成功
k8s-node1 42m 2% 383Mi 13%
[root@k8s-master1 metrics-server]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master1 94m 4% 809Mi 27% #<---- 成功
k8s-node1 48m 2% 385Mi 13%
k8s-node2 26m 1% 386Mi 13%
#资源利用率排序
[root@k8s-master1 metrics-server]# kubectl top pods -l app=nginx --sort-by=memory
NAME CPU(cores) MEMORY(bytes)
nginx-f89759699-6jfdp 0m 2Mi
3. 问题排查
[root@k8s-master1 ~]# kubectl get cs
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
如果kubectl get cs查询失败,可能是apiserver出现了问题。
#apiserver 正常可以通过该命令查看状态
[root@k8s-master1 ~]# kubectl cluster-info
Kubernetes master is running at https://10.0.0.63:6443
KubeDNS is running at https://10.0.0.63:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
# 通过dump.log查看集群问题
[root@k8s-master1 ~]# kubectl cluster-info
Kubernetes master is running at https://10.0.0.63:6443
KubeDNS is running at https://10.0.0.63:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
#状态信息写入到文件:
kubectl cluster-info dump >a.txt
#kubectl describe pod [pod名]
#实时观察pod动态
kubectl get pods -w [删除创建pod,这条命令里都会输出出来,并可以显示整理流程]
kubernetes使用metrics-server进行资源监控的更多相关文章
- Kubernetes 基于 Metrics Server 与 HPA 的使用
在 Kubernetes 中可以手动通过 kubectl scale 命令或通过修改 replicas 数量,可以实现 Pod 的扩容或缩容.Kubernetes 中还提供了 HPA(Horizont ...
- kubernetes(k8s)部署 Metrics Server 资源
资源使用指标,例如容器 CPU 和内存使用率,可通过 Metrics API 在 Kubernetes 中获得.这些指标可以直接被用户访问,比如使用 kubectl top 命令行,或者被集群中的控制 ...
- k8s资源指标API及metrics-server资源监控
简述: 在k8s早期版本中,对资源的监控使用的是heapster的资源监控工具. 但是从 Kubernetes 1.8 开始,Kubernetes 通过 Metrics API 获取资源使用指标,例如 ...
- 049.Kubernetes集群管理-集群监控Metrics
一 集群监控 1.1 Metrics Kubernetes的早期版本依靠Heapster来实现完整的性能数据采集和监控功能,Kubernetes从1.8版本开始,性能数据开始以Metrics API的 ...
- k8s搭建监控:安装metrics server和dashboard
安装metrics server 参考:https://github.com/kubernetes-sigs/metrics-server kubectl create -f component ...
- 启用k8s metrics server监控
1.创建aggregator证书 方法一:直接使用二进制源码包安装 $ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 $ chmod +x cfs ...
- kubernetes之配置Metrics Server
Kubernetes 1.8 关于资源使用情况的 metrics,可以通过 Metrics API 获取到, Kubernetes 1.11 已经废弃 heapster.这里我们基于 Kubernet ...
- 微服务探索之路04篇k8s增加子节点,metrics资源监控,ingress-nginx域名配置及https配置
1 k8s增加子节点 1.1 子节点服务器安装docker,使用脚本自动安装 curl -fsSL https://get.docker.com | bash -s docker --mirror A ...
- kubeadm1.14.1 安装Metrics Server
Metrics API 介绍Metrics-Server之前,必须要提一下Metrics API的概念 Metrics API相比于之前的监控采集方式(hepaster)是一种新的思路,官方希望核心指 ...
- 微服务监控之二:Metrics+influxdb+grafana构建监控平台
系统开发到一定的阶段,线上的机器越来越多,就需要一些监控了,除了服务器的监控,业务方面也需要一些监控服务.Metrics作为一款监控指标的度量类库,提供了许多工具帮助开发者来完成自定义的监控工作. 使 ...
随机推荐
- Centos 8.0 minimal命令行安装图形化界面(超详细)
Centos 8.0 安装图形化界面(超详细) 开始之前呢,请先查看您的Centos版本和是否有root账户权限. 一.安装Centos 图形化界面并重启 下载安装图形化界面 执行命令 yum gro ...
- leetcode:94. 二叉树的中序遍历
94. 二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? ...
- 剑指 Offer 58 - II(Java)-左旋转字符串(简单)
题目: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位 ...
- 有效预警6要素:亿级调用量的阿里云弹性计算SRE实践
简介: 关注保持良好的预警处理,持续解决系统隐患,促进系统稳定健康发展. 编者按:随着分布式系统和业务需求的飞速发展,监控告警在我们保障系统稳定性和事故快速恢复的全周期中都是至关重要的.9月3号,阿里 ...
- 【全观测系列】Elasticsearch应用性能监控最佳实践
简介:本文介绍了应用性能监控的应用价值以及解决方案等. 1.什么是全观测? 要了解全观测,我们先看看传统运维存在哪些问题. 数据孤岛,分散在不同部门,分析排查故障困难: 多个厂商的多种工具,无法自动 ...
- 微信不再提供小程序打开App?借助H5为App引流的方式你必须知道!
简介: 2021年5月14日App开发者领域发布了一条重要消息:微信开放平台为了提升用户体验,将于2021年5月20日(后来延期到2021年5月27日)起不再提供"小程序打开App技术服务& ...
- Kubernetes 已经成为云原生时代的安卓,这就够了吗?
简介:本文将介绍如何在 Kubernetes 上构建新的应用管理平台,提供一层抽象以封装底层逻辑,只呈现用户关心的接口,使用户可以只关注自己的业务逻辑,管理应用更快更安全. 作者:司徒放 导语:云原 ...
- 实时数仓入门训练营:实时计算 Flink 版 SQL 实践
简介: <实时数仓入门训练营>由阿里云研究员王峰.阿里云资深技术专家金晓军.阿里云高级产品专家刘一鸣等实时计算 Flink 版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭 ...
- 2019-11-29-dotnet-remoting-使用事件
title author date CreateTime categories dotnet remoting 使用事件 lindexi 2019-11-29 10:20:1 +0800 2018-2 ...
- SpringMVC拦截器配置后端登录校验
引 创建拦截器的方法有多种,可以继承HandlerInterceptorAdapter类,也可实现HandlerInterceptor接口.接口中有三个方法: preHandle:在业务处理器处理请求 ...