首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
kubernetes与velero的第一次尝试
2
在Kubernetes中如何针对Namespace进行资源限制?
3
kubernetes之metrics-server安装与配置
4
kubernetes部署metrics-server
5
Kubernetes1.20.9摘掉一个master节点再重新加入(ETCD需要注意的)
6
Kubernetes 1.17.17升级到1.18.20
7
Kubernetes 1.18.20升级到1.19.12
8
Kubernetes 1.19.12升级到1.20.9(强调一下selfLink)
9
Kubernetes 1.16.15升级到1.17.17
10
使用 kainstall 工具一键部署 kubernetes 高可用集群
11
附034.Kubernetes_v1.21.0高可用部署架构二
12
附016.Kubernetes_v1.17.4高可用部署
13
附022.Kubernetes_v1.18.3高可用部署架构一
14
附024.Kubernetes_v1.18.3高可用部署架构二
15
使用 StatefulSet 部署 etcd 集群
16
Kubernetes 稳定性保障手册 -- 极简版
17
Linux(centos7)离现安装kubernetes1.19.2和docker——组件部分
18
docker register 私有仓库部署 - http模式
19
KubeSphere 开源 KubeEye:Kubernetes 集群自动巡检工具
20
K8S 中的 CPUThrottlingHigh 到底是个什么鬼?
21
全链路分布式跟踪系统 Apache SkyWalking 入门教程
22
pod Evicted的状态究竟是何人所为
23
使用 ezctl 工具部署和管理 Kubernetes 集群
24
Kubernetes部署策略详解
25
kubernetes容器探针检测
26
使用Spring Boot实现动态健康检查HealthChecks
27
真一文搞定 ingress-nginx 的使用
28
K8S备份、恢复、迁移神器 Velero
29
一次关于k8s kubectl top 和 contained ps 不一致的问题探究
30
kubernetes备份恢复之velero
31
使用 Velero 进行集群备份与迁移
32
TKE集群中nginx-ingress使用实践
33
使用velero进行kubernetes灾备
34
Kubernetes 映射外部服务
35
运维体系建设套路
36
k8s解决pod调度不均衡的问题
37
ingress中虚拟路径解决方案
38
容器下的两地三中心建设
39
k8s集群外的主机访问pod的解决方案
40
k8s基础-健康检查机制
41
k8s基础-标签使用
42
ingress-nginx请求改写
43
nginx ingress server alias 多域名多证书问题
44
JAVA | Java 解决跨域问题 花式解决跨域问题
45
如何通过ingress-nginx实现应用灰度发布?
46
在Kubernetes(k8s)中使用GPU
47
使用 Prometheus-Operator 监控 Calico
48
使用Kubespray部署Kubernetes集群
49
云原生下的CI/CD:Argo CD 详解,手把手教你入门
50
Pod的健康检查机制
清单首页k8s文章详情

kubernetes之metrics-server安装与配置

版权声明:欢迎交流,菲宇运维! https://cloud.tencent.com/developer/article/1444859

一、metrics-server简介

从 Kubernetes 1.8 开始,资源使用指标(如容器 CPU 和内存使用率)通过 Metrics API 在 Kubernetes 中获取, metrics-server 替代了heapster。Metrics Server 实现了Resource Metrics API,Metrics Server 是集群范围资源使用数据的聚合器。

Metrics Server 从每个节点上的 Kubelet 公开的 Summary API 中采集指标信息。

kubernetes metrics server 参考文档 https://github.com/kubernetes-incubator/metrics-server

二、安装metrics-server

会用到的yaml文件:

https://github.com/kubernetes-incubator/metrics-server/tree/master/deploy/1.8%2B 或者

https://github.com/kubernetes/kubernetes/tree/release-1.11/cluster/addons/metrics-server(建议使用)

下载六个文件并创建

for file in auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml;do wget https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.11/cluster/addons/metrics-server/$file; done

需要修改的地方:

metrics-server-deployment.yaml #

  • --source=kubernetes.summary_api:''
  • --source=kubernetes.summary_api:https://kubernetes.default?kubeletHttps=true&kubeletPort=10250&insecure=true

resource-reader.yaml#

resources:

  • pods
  • nodes
  • namespaces
  • nodes/stats #新加

开始运行: kubectl apply -f .

root@master metrics# kubectl api-versions

代码语言:javascript
复制
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1 apps/v1beta1
apps/v1beta2 authentication.k8s.io/v1 
authentication.k8s.io/v1beta1 
authorization.k8s.io/v1 
authorization.k8s.io/v1beta1 
autoscaling/v1 
autoscaling/v2beta1 
batch/v1 
batch/v1beta1 
certificates.k8s.io/v1beta1 
crd.projectcalico.org/v1 
events.k8s.io/v1beta1 
extensions/v1beta1 
metrics.k8s.io/v1beta1 
#metrics控制器,有说明成功 
networking.k8s.io/v1 
policy/v1beta1 
rbac.authorization.k8s.io/v1 
rbac.authorization.k8s.io/v1beta1 
scheduling.k8s.io/v1beta1 
storage.k8s.io/v1 
storage.k8s.io/v1beta1 v1

查看pods

代码语言:javascript
复制
[root@master metrics]# kubectl get pods -n kube-system 
NAME                                    READY     STATUS    RESTARTS   AGE
coredns-78fcdf6894-cj6tn                1/1       Running   42         26d
coredns-78fcdf6894-wfvk8                1/1       Running   42         26d
elasticsearch-logging-0                 1/1       Running   45         4d
elasticsearch-logging-1                 1/1       Running   47         4d
etcd-master                             1/1       Running   42         26d
grafana-7f8bcdfbbf-qzln5                1/1       Running   4          13d
kibana-logging-7444956bf8-x8qqd         1/1       Running   2          4d
kube-apiserver-master                   1/1       Running   47         26d
kube-controller-manager-master          1/1       Running   43         26d
kube-flannel-ds-m4f4j                   1/1       Running   33         26d
kube-flannel-ds-xvssj                   1/1       Running   18         26d
kube-proxy-5lw6z                        1/1       Running   39         26d
kube-proxy-qlhg7                        1/1       Running   18         26d
kube-scheduler-master                   1/1       Running   39         26d
kubernetes-dashboard-767dc7d4d-4bt48    1/1       Running   5          5d
metrics-server-v0.2.1-84678c956-hbz2b   2/2       Running   0          2m

#这个状态是正常的

master新开一个反向代理端口

root@master ~# kubectl proxy --port=8080

Starting to serve on 127.0.0.1:8080

master新开一个窗口查看

代码语言:javascript
复制
[root@master ~]# curl http://localhost:8080/apis/metrics.k8s.io/v1beta1/nodes
{
  "kind": "NodeMetricsList",
  "apiVersion": "metrics.k8s.io/v1beta1",
  "metadata": {
    "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes"
  },
  "items": [
    {
      "metadata": {
        "name": "master",
        "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/master",
        "creationTimestamp": "2018-09-25T09:48:21Z"
      },
      "timestamp": "2018-09-25T09:48:00Z",
      "window": "1m0s",
      "usage": {
        "cpu": "211m",
        "memory": "2905388Ki"
      }
    },
    {
      "metadata": {
        "name": "node01",
        "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/node01",
        "creationTimestamp": "2018-09-25T09:48:21Z"
      },
      "timestamp": "2018-09-25T09:48:00Z",
      "window": "1m0s",
      "usage": {
        "cpu": "150m",
        "memory": "3670276Ki"
      }
    }
  ]
}

三、测试是否安装成功

root@master metrics# kubectl top nodes

error: metrics not available yet

说明还未成功,需要等待一会

查看node

代码语言:javascript
复制
[root@master metrics]# kubectl top node
NAME      CPU(cores)   CPU%      MEMORY(bytes)   MEMORY%   
master    207m         10%       2832Mi          76%       
node01    144m         4%        3619Mi          37% 

查看pods

代码语言:javascript
复制
[root@master metrics]# kubectl top pods -n kube-system
NAME                                    CPU(cores)   MEMORY(bytes)   
coredns-78fcdf6894-cj6tn                2m           11Mi            
coredns-78fcdf6894-wfvk8                1m           11Mi            
elasticsearch-logging-0                 6m           1347Mi          
elasticsearch-logging-1                 6m           1326Mi          
etcd-master                             17m          84Mi            
grafana-7f8bcdfbbf-qzln5                0m           21Mi            
kibana-logging-7444956bf8-x8qqd         4m           83Mi            
kube-apiserver-master                   89m          486Mi           
kube-controller-manager-master          19m          59Mi            
kube-flannel-ds-m4f4j                   5m           14Mi            
kube-flannel-ds-xvssj                   5m           12Mi            
kube-proxy-5lw6z                        3m           15Mi            
kube-proxy-qlhg7                        3m           16Mi            
kube-scheduler-master                   6m           13Mi            
kubernetes-dashboard-767dc7d4d-4bt48    0m           11Mi            
metrics-server-v0.2.1-84678c956-hbz2b   1m           24Mi 
下一篇
举报
领券