网站首页 > 技术文章 正文
metrics-server是k8s集群不可缺少的组件,有了这个组件就可以使用下面的命令,
[root@master metrics-server]# kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master.k8s.xyz 422m 14% 1120Mi 65%
node.k8s.xyz 68m 6% 467Mi 53%
依赖这个组件还可以实现集群Pod的自动水平伸缩和垂直伸缩-即HPA与VPA。
在开始之前,有必要对metrics-server和kube-state-metrics做对比,它们两个都提供很多metrics,但不能相互替代,二者是相互补充的关系,各有专攻。
metrics-server是heapster的替代者,在k8s集群中充当一个扩展的API Server,它从节点上运行的kubelet服务采集metrics,聚合处理后,通过特定的URL暴露采集的数据。kube-state-metrics更偏向于集群监控,特别是业务层,比如需要知道集群中运行了多少个Deployment,运行了多少Pod,每个Pod的状态是怎样,Pod重启了多少次等,kube-state-metrics可以给到你答案。
安装metrics-server有两个条件:
- API Server启用Aggregator routing,因为metrics server也提供API服务,集群原本的API Server开启aggregator routing功能后,两者就可以聚合同时对外提供API服务。
- API Server要能访问metrics server pod IP,这个很好理解,因为集群原本的API服务是总出入口,相当于是metrics server的代理,两者必须能互访才行。
一、修改API Server的manifest文件
[root@master manifests]# vi /etc/kubernetes/manifests/kube-apiserver.yaml
apiVersion: v1
kind: Pod
metadata:
annotations:
kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 192.168.52.131:6443
creationTimestamp: null
labels:
component: kube-apiserver
tier: control-plane
name: kube-apiserver
namespace: kube-system
spec:
containers:
- command:
- kube-apiserver
- --advertise-address=192.168.52.131
- --allow-privileged=true
- --authorization-mode=Node,RBAC
- --client-ca-file=/etc/kubernetes/pki/ca.crt
- --enable-admission-plugins=NodeRestriction
- --enable-bootstrap-token-auth=true
- --enable-aggregator-routing=true
- --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt
添加倒数第二行,修改完成后保存文件,API Server会自动重启。可以通过下面查看配置是否生效:ps -ef | grep apiserver
二、安装
下载metrics-server yaml配置文件,
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.1/components.yaml
为了能顺利运行,需要对components.yaml做如下修改,
137c137
< - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
---
> - --kubelet-preferred-address-types=InternalIP
138a139
> - --kubelet-insecure-tls
执行安装命令,kubectl apply -f componets.yaml
查看metrics-server服务状态,
[root@master metrics-server]# kubectl get pod -n kube-system | grep metrics-server
metrics-server-786c5886d4-rsc2v 1/1 Running 0 21m
最后,就可以顺利地执行命令kubectl top nodes和kubectl top pods了,
[root@master metrics-server]# kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master.k8s.xyz 635m 21% 1120Mi 65%
node.k8s.xyz 117m 11% 486Mi 55%
[root@master metrics-server]# kubectl top pods -A
NAMESPACE NAME CPU(cores) MEMORY(bytes)
kube-system coredns-6d8c4cb4d-l6nbp 5m 18Mi
kube-system coredns-6d8c4cb4d-pnvz8 5m 23Mi
kube-system etcd-master.k8s.xyz 67m 72Mi
kube-system kube-apiserver-master.k8s.xyz 226m 264Mi
kube-system kube-controller-manager-master.k8s.xyz 102m 65Mi
kube-system kube-flannel-ds-qn92f 11m 26Mi
kube-system kube-flannel-ds-tbwx4 5m 21Mi
kube-system kube-proxy-ks42r 1m 29Mi
kube-system kube-proxy-lvlgs 1m 29Mi
kube-system kube-scheduler-master.k8s.xyz 14m 24Mi
kube-system metrics-server-786c5886d4-rsc2v 9m 14Mi
猜你喜欢
- 2024-10-10 第6课 Kubernetes之深入掌握Pod机制及应用
- 2024-10-10 万字长文 | 使用 RBAC 限制对 Kubernetes 资源的访问
- 2024-10-10 Kubernetes:监控指南 kubernetes 监控
- 2024-10-10 《蹲坑学K8S》之21-1:Metrics-Server监控
- 2024-10-10 K8S架构设计及工作流程分析 k8s 结构图
- 2024-10-10 Metrics Server 快速安装 melsoft安装教程
- 2024-10-10 K8S系统的监控及HPA控制器 k8s dashboard 监控
- 2024-10-10 如何通过在多个Vagrant管理的虚拟机上部署多节点Kubernetes集群
- 2024-10-10 Kubernetes集群的自动水平伸缩 kubernetes 自动伸缩
- 2024-10-10 2. Kubernetes设计架构(转载) kubernetes基础
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)