metrics

Kubernetes系列之Kubernetes部署metrics-server

点点圈 提交于 2020-03-02 20:54:04
四、Kubernetes系列之Kubernetes部署metrics-server #一、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中有些组件依赖资源指标API(metric API)的功能 ,如kubectl top 、hpa。如果没有资源指标API接口,这些组件无法运行。在之前使用的是Heapster,Heapster废弃后改用metrics-server。 通过Metrics API可以获取指定node或者pod的当前资源使用情况(而无法获取历史数据) Metrics API的api路径:/apis/metrics.k8s.io/ Metrics API的使用需要在K8S集群中成功部署metrics server kubernetes metrics server 参考文档 https://github.com

HPA

时间秒杀一切 提交于 2020-03-02 07:37:21
HPA HPA的全称为Horizontal Pod Autoscaling,它可以根据当前pod资源的使用率(如CPU、磁盘、内存等),进行副本数的动态的扩容与缩容,以便减轻各个pod的压力。当pod负载达到一定的阈值后,会根据扩缩容的策略生成更多新的pod来分担压力,当pod的使用比较空闲时,在稳定空闲一段时间后,还会自动减少pod的副本数量 前提条件:系统应该能够获取当前Pod的资源使用情况(意思是可以执行 kubectl top pod命令,并且能够得到反馈信息) heapster:这个组件之前是集成在k8s集群的,不过在1.12版本之后就被移除了。如果还想使用此功能,应该部署metricServer这个k8s集群资源使用情况的聚合器 要是想实现自动扩容缩容的功能,还需要部署heapster服务,而这个服务集成在Prometheus的MetricServer服务中,也就是说需要部署Prometheus服务,但是我们也可以直接部署heapster服务 实现Pod的扩容与缩容示例 因为heapster集成在MetricServer服务中,所以首先部署这个服务 1、首先安装MerticServer服务,从Github上克隆项目 [ root@master ~ ] # git clone https://github.com/kubernetes-incubator/metrics

k8s 安装 prometheus 过程记录

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-02 07:32:28
k8s 安装 prometheus 过程记录 https://www.cnblogs.com/dudu/p/12146344.html 开始以为只要安装 prometheus-operator 就行了。 git clone https://github.com/coreos/prometheus-operator.git cd prometheus-operator sed 's/namespace: default/namespace: monitoring/g' bundle.yaml | kubectl apply -f - 安装后发现只有一个 prometheus-operator pod 。 $ kubectl get pods -n monitoring NAME READY STATUS RESTARTS AGE prometheus-operator-99dccdc56-qq5lm 1/1 Running 0 20m 这时才发现真正要安装的是 kube-prometheus 。 git clone https://github.com/coreos/kube-prometheus.git cd kube-prometheus kubectl create -f manifests/setup && \ until kubectl get

Kafka设计解析(五):Kafka Benchmark

余生长醉 提交于 2020-03-02 03:24:53
性能测试及集群监控工具 Kafka提供了非常多有用的工具,如 Kafka设计解析(三)- Kafka High Availability (下) 中提到的运维类工具——Partition Reassign Tool,Preferred Replica Leader Election Tool,Replica Verification Tool,State Change Log Merge Tool。本章将介绍Kafka提供的性能测试工具,Metrics报告工具及Yahoo开源的Kafka Manager。 Kafka性能测试脚本 $KAFKA_HOME/bin/kafka-producer-perf-test.sh 该脚本被设计用于测试Kafka Producer的性能,主要输出4项指标,总共发送消息量(以MB为单位),每秒发送消息量(MB/second),发送消息总数,每秒发送消息数(records/second)。除了将测试结果输出到标准输出外,该脚本还提供CSV Reporter,即将结果以CSV文件的形式存储,便于在其它分析工具中使用该测试结果 $KAFKA_HOME/bin/kafka-consumer-perf-test.sh 该脚本用于测试Kafka Consumer的性能,测试指标与Producer性能测试脚本一样。 Kafka Metrics Kafka使用

Kubernetes 监控日志排错之 Metrics Server

岁酱吖の 提交于 2020-02-28 22:27:14
监控资源指标管道 Metrics API(Metrics Server) 资源指标管道: 从 Kubernetes 1.8开始,资源使用指标,例如容器 CPU 和内存使用率,可通过 Metrics API 在 Kubernetes 中获得。这些指标可以直接被用户访问,比如使用kubectl top命令行,或者这些指标由集群中的控制器使用,例如,Horizontal Pod Autoscaler,使用这些指标来做决策; Metrics API: 通过 Metrics API,您可以获得指定节点或 pod 当前使用的资源量。此 API 不存储指标值,因此想要获取某个指定节点10分钟前的资源使用量是不可能的; Metrics API 仓库: API源码GitHub仓库地址: Metrics Server: Metrics Server是一种API Server。其提供了核心的Metrics API,通过在主 API server 中注册的 Metrics Server Kubernetes 聚合器来采集指标信息,就像k8s组件kube-apiserver提供了很多API群组一样,但它不是k8s组成部分,而是运行在k8s之上的单个Pod; 为了让用户无缝的使用Metrics Server当中的API,还需要把这类自定义的API通过聚合器聚合到核心API组里

Kubernetes 监控日志排错之 Metrics Server

这一生的挚爱 提交于 2020-02-28 22:20:57
监控资源指标管道 Metrics API(Metrics Server) 资源指标管道: 从 Kubernetes 1.8开始,资源使用指标,例如容器 CPU 和内存使用率,可通过 Metrics API 在 Kubernetes 中获得。这些指标可以直接被用户访问,比如使用kubectl top命令行,或者这些指标由集群中的控制器使用,例如,Horizontal Pod Autoscaler,使用这些指标来做决策; Metrics API: 通过 Metrics API,您可以获得指定节点或 pod 当前使用的资源量。此 API 不存储指标值,因此想要获取某个指定节点10分钟前的资源使用量是不可能的; Metrics API 仓库: API源码GitHub仓库地址: Metrics Server: Metrics Server是一种API Server。其提供了核心的Metrics API,通过在主 API server 中注册的 Metrics Server Kubernetes 聚合器来采集指标信息,就像k8s组件kube-apiserver提供了很多API群组一样,但它不是k8s组成部分,而是运行在k8s之上的单个Pod; 为了让用户无缝的使用Metrics Server当中的API,还需要把这类自定义的API通过聚合器聚合到核心API组里

我们为什么会删除不了集群的 Namespace?

梦想的初衷 提交于 2020-02-27 12:38:13
作者 | 声东 阿里云售后技术专家 导读 :阿里云售后技术团队的同学,每天都在处理各式各样千奇百怪的线上问题。常见的有网络连接失败、服务器宕机、性能不达标及请求响应慢等。但如果要评选的话,什么问题看起来微不足道事实上却让人绞尽脑汁,我相信肯定是“删不掉”的问题,比如文件删不掉、进程结束不掉、驱动卸载不了等。这样的问题就像冰山,隐藏在它们背后的复杂逻辑,往往超过我们的预想。 背景 今天我们讨论的这个问题,跟 K8s 集群的 Namespace 有关。Namespace 是 K8s 集群资源的“收纳”机制。我们可以把相关的资源“收纳”到同一个 Namespace 里,以避免不相关资源之间不必要的影响。 Namespace 本身也是一种资源。通过集群 API Server 入口,我们可以新建 Namespace,而对于不再使用的 Namespace,我们需要清理掉。Namespace 的 Controller 会通过 API Server,监视集群中 Namespace 的变化,然后根据变化来执行预先定义的动作。 有时候,我们会遇到下图中的问题,即 Namespace 的状态被标记成了 "Terminating",但却没有办法被完全删除。 从集群入口开始 因为删除操作是通过集群 API Server 来执行的,所以我们要分析 API Server 的行为。跟大多数集群组件类似,API

Azure Monitor概述

北城余情 提交于 2020-02-25 19:10:18
现在越来越多的企业选择将系统构建或迁移到云端,来享受公有云所带来的弹性计算和灵活扩展能力。但是很多用户在将系统迁移到云端之前,都会存在一个小问题:系统在本地运行的时候,可以通过zibbix,SCOM等工具对系统进行监控,以确保系统的稳定运行,那迁移到云端以后我该使用什么样的方式来监控我的应用程序?其实各位大可不必担心,因为每个云平台都会为用户预留出获取监控数据的接口。azure也不例外,在azure中,用户可以通过portal来获取所需要的监控信息,比如虚拟机的CPU使用率,RAM使用率以及磁盘IO等,同时也可以对所监控的数据设置一些操作,如CPU的使用率达到某个百分比的时候触发邮件报警等操作。 微软在Azure中给用户提供了一个名称为Azure Monitor的监控功能,其提供用于收集、分析和处理来自云与本地环境的遥测数据的综合解决方案,可将应用程序的可用性和性能最大化。 它可以帮助我们了解应用程序的性能,并主动识别影响应用程序及其所依赖资源的问题。 ![] 从上图中可以看到,Azure Monitor可以从本地和Azure以及其他云中的各种源收集数据,其收集的数据大致可以分为应用程序、应用程序依赖关系的任何操作系统和服务、azure的平台本身。 应用程序监视数据:有关编写的代码的性能和功能的数据,不管平台是什么。 来宾 OS 监视数据:有关运行应用程序的操作系统的数据。

zookeeper+kafka环境搭建

依然范特西╮ 提交于 2020-02-25 15:50:01
一、JDK安装配置 1、新建文件夹 # mkdir /usr/local/java 2、上传jdk到文件夹中,解压(官网下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,以jdk-8u111-linux-x64.tar.gz为例 ) # tar -xzvf jdk-8u111-linux-x64.tar.gz 3、配置jdk环境变量 # vi ~/.bashrc #java export JAVA_HOME=/usr/local/java/jdk1.8.0_111 export JAVA_BIN=$JAVA_HOME/bin export JAVA_LIB=$JAVA_HOME/lib export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar export PATH=$JAVA_BIN:$PATH 4、环境变量配置生效 # source ~/.bashrc 5、检查jdk版本 # java -version 6、公司安装 # yum install jdk7u51 二、zookeeper搭建 1、zk安装 (1)解压:这里假定以root作为用户名进行安装,将zookeeper-3.4.6.tar.gz放入

keras sequential() 模型

橙三吉。 提交于 2020-02-23 22:55:39
本文是我在阅读 https://keras.io/getting-started/sequential-model-guide/ 时所做的一些笔记 sequential()主要有以下几个步骤。 一、网络的构建 第一种,直接在函数中传递层的实例 from keras.models import Sequential from keras.layers import Dense, Activation model = Sequential([ Dense(32, input_shape=(784,)), Activation('relu'), Dense(10), Activation('softmax'), ]) 第二种,利用.add()方法一层一层地累加 1.1 定义input shape model = Sequential() model.add(Dense(32, input_dim=784)) model.add(Activation('relu')) 二维的网络如Dense()可通过input_dim,三维为input_dim,input_length。 为定义输入的batch size(对于含状态量的RNN适用)可向layer传递batch_size参数,如果同时传递了batch_size=32和input_shape=(6, 8),将会认为每批输入都具有(32, 6,