kubeadm1.14.1 安装Metrics Server

Metrics API

介绍Metrics-Server之前,必须要提一下Metrics API的概念

Metrics API相比于之前的监控采集方式(hepaster)是一种新的思路,官方希望核心指标的监控应该是稳定的,版本可控的,且可以直接被用户访问(例如通过使用 kubectl top 命令),或由集群中的控制器使用(如HPA),和其他的Kubernetes APIs一样。

官方废弃heapster项目,就是为了将核心资源监控作为一等公民对待,即像pod、service那样直接通过api-server或者client直接访问,不再是安装一个hepater来汇聚且由heapster单独管理。

假设每个pod和node我们收集10个指标,从k8s的1.6开始,支持5000节点,每个节点30个pod,假设采集粒度为1分钟一次,则:

10 x 5000 x 30 / 60 = 25000 平均每分钟2万多个采集指标

因为k8s的api-server将所有的数据持久化到了etcd中,显然k8s本身不能处理这种频率的采集,而且这种监控数据变化快且都是临时数据,因此需要有一个组件单独处理他们,k8s版本只存放部分在内存中,于是metric-server的概念诞生了。

其实hepaster已经有暴露了api,但是用户和Kubernetes的其他组件必须通过master proxy的方式才能访问到,且heapster的接口不像api-server一样,有完整的鉴权以及client集成。这个api现在还在alpha阶段(18年8月),希望能到GA阶段。类api-server风格的写法:generic apiserver?

有了Metrics Server组件,也采集到了该有的数据,也暴露了api,但因为api要统一,如何将请求到api-server的/apis/metrics请求转发给Metrics Server呢,解决方案就是:kube-aggregator,在k8s的1.7中已经完成,之前Metrics Server一直没有面世,就是耽误在了kube-aggregator这一步。

kube-aggregator(聚合api)主要提供:

  • Provide an API for registering API servers.
  • Summarize discovery information from all the servers.
  • Proxy client requests to individual servers.

详细设计文档:参考链接?

metric api的使用:

  • Metrics API 只可以查询当前的度量数据,并不保存历史数据
  • Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护
  • 必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据

如:

http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/nodes
?
http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/nodes/<node-name>
?
http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/namespace/<namespace-name>/pods/<pod-name>

Metrics-Server

Metrics server定时从Kubelet的Summary API(类似/ap1/v1/nodes/nodename/stats/summary)采集指标信息,这些聚合过的数据将存储在内存中,且以metric-api的形式暴露出去。

Metrics server复用了api-server的库来实现自己的功能,比如鉴权、版本等,为了实现将数据存放在内存中吗,去掉了默认的etcd存储,引入了内存存储(即实现Storage interface)。因为存放在内存中,因此监控数据是没有持久化的,可以通过第三方存储来拓展,这个和heapster是一致的。

Metrics server出现后,新的?Kubernetes 监控架构将变成上图的样子

  • 核心流程(黑色部分):这是 Kubernetes正常工作所需要的核心度量,从 Kubelet、cAdvisor 等获取度量数据,再由metrics-server提供给 Dashboard、HPA 控制器等使用。
  • 监控流程(蓝色部分):基于核心度量构建的监控流程,比如 Prometheus 可以从 metrics-server 获取核心度量,从其他数据源(如 Node Exporter 等)获取非核心度量,再基于它们构建监控告警系统。

官方地址:https://github.com/kubernetes-incubator/metrics-server

部署

mkdir metrics;cd metics
git clone https://github.com/kubernetes-incubator/metrics-server.git
cd metrics-server/deploy/1.8+/

修改metrics-server-deployment.yaml,红色部分。

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: metrics-server
  namespace: kube-system
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: metrics-server
  namespace: kube-system
  labels:
    k8s-app: metrics-server
spec:
  selector:
    matchLabels:
      k8s-app: metrics-server
  template:
    metadata:
      name: metrics-server
      labels:
        k8s-app: metrics-server
    spec:
      serviceAccountName: metrics-server
      volumes:
      # mount in tmp so we can safely use from-scratch images and/or read-only containers
      - name: tmp-dir
        emptyDir: {}
      containers:
      - name: metrics-server
        image: k8s.gcr.io/metrics-server-amd64:v0.3.3
        command:
        - /metrics-server
        - --metric-resolution=30s
        - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
        - --kubelet-insecure-tls
        imagePullPolicy: Always
        volumeMounts:
        - name: tmp-dir
          mountPath: /tmp

创建

[[email protected] 1.8+]# kubectl apply -f .
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader unchanged
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator unchanged
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader unchanged
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io unchanged
serviceaccount/metrics-server unchanged
deployment.extensions/metrics-server configured

等待一会就可以看下集群的资源使用情况了!

原文地址:https://www.cnblogs.com/Dev0ps/p/11087497.html

时间: 2024-10-09 10:55:45

kubeadm1.14.1 安装Metrics Server的相关文章

ubuntu 14.04 安装mysql server初级教程

序,mysql数据库是开源的,被大多数企业所使用 目录 一.apt-get install 软件安装原理剖析二.安装mysql server三.配置和管理msyql 一.apt-get install 软件安装原理剖析 /etc/apt/sources.list 这个文件很重要,里面放了一些软件资源的库地址,我们每次利用apt-get install命令安装软件时,都是在读取这个文件. Ubuntu 软件仓库被分为四个部分:main(主要的), restricted(受限的), universe

ubuntu 14.04安装quickbuild server

官网: http://www.pmease.com/ 指导网站: http://wiki.pmease.com/display/QB60/ 1.  安装quickbuild server ----------------------------------------------------------- 1.  安装quickbuild server 1.1 下载,解压 1.2 配置,启动 指导网站: http://wiki.pmease.com/display/QB60/Server+Ins

Kubernetes1.15.2集群部署并部署Metrics Server插件

环境信息: 操作系统 主机名 IP地址 CentOS 7.6 k8s-master 192.168.31.61 CentOS 7.6 k8s-node1 192.168.31.62 CentOS 7.6 k8s-node2 192.168.31.63 1. 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 集群中所有机器之间网络互通 可以访问外网,需要

u盘安装ubuntu server 14.04 以及No CD-ROM drive was detected 错误

u盘安装ubuntu server 14.04 1:下载ubuntu server14的 iso镜像文件 2:下载 UltraISO U盘镜像制作工具 : 3:使用Ultra iOS 将下载好的 iso系统镜像文件写入U盘: 写入方式:http://jingyan.baidu.com/article/59703552e0a6e18fc007409f.html 4:写入成功之后,将iOS 镜像 拷贝到 u盘根目录下一份 5:利用U盘启动电脑并开始安装: 6:此时遇到错误:未探测到安装光盘,导致安装

Ubuntu Server 14.04 LTS(64bit)下安装 weblogic Server 12c(12.1.3) Zip Distribution

这里说下关于在Ubuntu Server 14.04 LTS(64bit)下安装weblogic Server 12c(12.1.3) Zip Distribution遇到的问题.至于Windows环境下的安装没什么好说的,只要你根据wls1213_dev.zip中自带的README.TXT一步步做,是不会出现问题的.但是对于在一个干净的Ubuntu Server下的来说,根据向导的说明你是装不起来的.因为它缺少了必要的环境设置,也许这对于linux下的老手来说这些都不是事. 当在安装中遇到问题

vmware 10虚拟机安装ubuntu server 14.04

-开始安装ubuntu server- 1.首先是安装系统时的语言,推荐选择English 然后安装系统 这里选择语言很重要,我开始选择了中文,安装完成后会乱码,所以推荐选择英文 因为在中国,所以选择了香港 这个步骤是检测键盘,选择yes或no都是可以的,选择yes会有一些让你按键的操作来检测键盘,选择no可以在列表里选择键盘布局.我这里选择了no 在列表中选择键盘布局即可 选择完成之后会加载一些额外的部件,都是自动进行的 2.设置主机名,创建新账户 因为设置的密码比较简单,它会询问是否使用弱密

Dell R410 安装Ubuntu server 14.04

最近安装出现一个问题,在Dell R410上安装Ubuntu server,总是安装不成功.提示无法找到驱动程序,无论是新作raid还是去掉raid用磁盘做,始终无法安装.

Windows 2008 R2安装wamp server

一.平台windows 2008 R2,安装驱动,office 2010: 二.安装SP1补丁包,下载地址https://www.microsoft.com/zh-cn/download/details.aspx?id=5842 具体见附件1: 三.安装Microsoft Visual C++ 2015运行库 14.0.23026.0: 四.安装wamp server 3.0.6.即可

Ubuntu 14.04安装redmine

公司要安装项目管理系统,采用redmine,新来的我就来做这个小小的任务了,中途也出过几次问题,搭建redmine,他的依赖包很多,所以我建议用apt装,下面开始吧. 首先升级一下源 apt-get update apt-get upgrade 更新完成 PS:(如果图省事,可以选择LAMP套件安装,此处指mysql和apache此处不用套件安装了 ) 安装apache2和apache2的一个模块 apt-get install apache2 libapache2-mod-passenger