首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过自定义prometheus数据实现k8s hpa

在Kubernetes v1.1中首次引入了hpa特性,自那时起已经有了很大发展。 hpa第一个版本基于观察到CPU利用率,后续版本支持基于内存使用。...您将安装提供核心指标的度量服务器附加组件, 然后您将使用一个演示应用程序来展示基于CPU和内存使用pod自动伸缩。在指南第二部分, 您将部署Prometheus和一个自定义API服务器。...您将使用聚合器层注册自定义API服务器,然后使用演示应用程序提供自定义度量配置HPA。...基于CPU和内存使用自动缩放 你将使用一个基于golang小程序测试hpa. 部署podinfo到默认命名空间 kubectl create -f ....基于自定义标的自动扩容 创建podinfo nodeport服务并在default命名空间中部署: kubectl create -f ./podinfo/podinfo-svc.yaml,.

3.6K20

再战 k8s(13):Pod 扩缩容

控制器,用于实现基于CPU使用率进行自动Pod扩缩容功能。...,autoscaling/v2则用于支持基于任意指标的自动扩缩容配置,包括基于资源使用率、Pod指标、其他指标等类型指标数据,当前版本为autoscaling/v2beta2。...(2)Pods基于Pod指标,系统将对全部Pod副本指标值进行平均值计算。 (3)Object:基于某种资源对象(如Ingress)指标或应用系统任意自定义指标。...Pods类型和Object类型都属于自定义指标类型,指标的数据通常需要搭建自定义Metrics Server和监控工具进行采集和处理。...Kubernetes推荐尽量使用type为ObjectHPA配置方式,这可以通过使用Operator模式,将外部指标通过CRD(自定义资源)定义为API资源对象来实现。

60510
您找到你想要的搜索结果了吗?
是的
没有找到

023.掌握Pod-Pod扩容和缩容

自动模式则需要用户根据某个性能指标或者自定义业务指标,并指定Pod副本数量范围,系统将自动在这个范围内根据性能指标的变化进行调整。...1.2 自动扩容机制 Kubernetes使用Horizontal Pod Autoscaler(HPA控制器实现基于CPU使用率进行自动Pod扩缩容功能。...其中autoscaling/v1仅支持基于CPU使用自动扩缩容, autoscaling/v2则用于支持基于任意指标的自动扩缩容配置, 包括基于资源使用率、 Pod指标、 其他指标等类型指标数据。...metrics中type(指标类型)设置为以下几种: Resource:基于资源指标值,可以设置资源为CPU和内存。 Pods基于Pod指标,系统将对全部Pod副本指标值进行平均值计算。...Pods类型和Object类型都属于自定义指标类型,指标的数据通常需要搭建自定义Metrics Server和监控工具进行采集和处理。

1.2K30

K8S之HPA自动扩缩容机制

HPA目前支持四种类型指标,分别是Resource、Object、External、Pods。...其中在稳定版本autoscaling/v1只支持对CPU指标的动态伸缩,在测试版本autoscaling/v2beta2中支持memory和自定义标的动态伸缩,并以annotation方式工作在autoscaling...如果pod使用自定义指标,控制器机制与资源指标类型,区别在于自定义指标只适用原始值,而不是利用率。...如果需要计算平均值,出现pod没准备好情况,我们保守地假设尚未就绪pods消耗了试题指标的0%,从而进一步降低了伸缩幅度。...一个HPA支持多个指标的监控,HPA会循环获取所有的指标,并计算期望pod数量,并从期望结果中获得最大pod数量作为最终伸缩pod数量。

67452

如何在K8s上设置生产级EFK?(上)

在本教程中,我们将为部署在集群中应用和集群本身设置生产级Kubernetes日志记录。将使用Elasticsearch作为日志后端,同时Elasticsearch设置将具有极高可扩展性和容错性。...那么接下来我们将在GKE集群上部署这些服务(你使用其他云服务也可以)。...在数据节点Pod情况下,我们要做就是使用K8s Dashboard或GKE控制台增加副本数量。新创建数据节点将被自动添加到集群中,并开始复制其他节点数据。...访问 Kibana/ES-HQ 部署服务仅在我们组织内部,即不创建公共 IP。我们需要使用GCP内部负载均衡器。...用于集群监控和管理ElasticHQ Dashboard ? 总 结 至此,部署ES后端进行日志记录工作就结束了。我们部署Elasticsearch也可以被其他应用使用

2.6K20

Kubernetes HPA 详解

在前面的学习中我们使用用一个 kubectl scale 命令可以来实现 Pod 扩缩容功能,但是这个毕竟是完全手动操作,要应对线上各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行扩缩容...基于内存 HorizontalPodAutoscaler 是 Kubernetes autoscaling API 组资源,在当前稳定版本 autoscaling/v1 中只支持基于 CPU 指标的缩放...在 Beta 版本 autoscaling/v2beta2,引入了基于内存和自定义标的缩放。所以我们这里需要使用 Beta 版本 API。 ?...基于自定义指标 除了基于 CPU 和内存来进行自动扩缩容之外,我们还可以根据自定义监控指标来进行。...当我们要查某个指标的值时就要通过它指定查询语句进行了。可以看到查询语句使用了速率和分组,这就是解决上面提到只增指标的问题。

4.2K31

kubernetes系列教程(十九)使用metric-server让HPA弹性伸缩愉快运行

自定义指标用于实现核心指标的扩展,能够提供更丰富指标支持,如应用状态指标,自定义指标需要通过Aggregator和k8s api集成,当前主流通过promethues实现。...+服务指标通过API adaptor转换为apiserver能够处理接口 HPA通过自定义指标实现更丰富弹性扩展能力,需要通过HPA adaptor API做次转换。...dd if=/dev/zero of=/dev/null 再次查看HPA日志,提示已扩容,原因是cpu resource utilization (percentage of request) above...1/1 Running 0 24m 通过上面的例子可以知道,HPA可以基于metric-server提供API监控数据实现水平动态弹性扩展需求,从而可以根据业务CPU...当前HPA V1扩展使用指标只能基于CPU分配使用率进行扩展,功能相对有限,更丰富功能需要由HPA V2版来实现,其由不同API来实现: metrics.k8s.io 资源指标API,通过metric-server

5.6K51

Kubernetes HPA 控制器横向伸缩关键实现

Scale 对象,从而实现自动扩容 1.2 HPA 四个区间 根据 HPA 参数和当前 Scale(目标资源)的当前副本计数,可以将 HPA 分为如下四种个区间:关闭、高水位、低水位、正常,只有处于正常区间内...1分钟是监控数据中最新那边指标的前一分钟内数据,而不是当时间 1.6 稳定性与延迟 ?...,直接更新对应scale对象即可,而scale副本为0对象,则hpa不会在进行任何操作 if scale.Spec.Replicas == 0 && minReplicas !...= currentReplicas 2.4 多维度量指标的副本计数决策 在HPA中可用设定多个监控度量指标,HPA在实现上会根据监控数据,从多个度量指标中获取提议最大副本计数作为最终目标,为什么要采用最大呢...HPA控制器实现里面,比较精彩部分应该主要是在使用率计算那部分,如何根据不同状态来进行对应未知数据填充并进行重新决策(比较值得借鉴设计), 其次就是基于稳定性、变更事件、扩容策略最终决策都是比较牛逼设计

97820

k8s中pod自动扩缩容

HPA说明 Kubernetes从1.1版本开始, 新增了名为Horizontal Pod Autoscaler(HPA控制器, 用于实现基于CPU使用率进行自动Pod扩缩容功能。...Kubernetes在早期版本中, 只能基于PodCPU使用率进行自动扩缩容操作, 关于CPU使用数据来源于Heapster组件。...Kubernetes从1.6版本开始, 引入了基于应用自定义性能指标的HPA机制, 并在1.9版本之后逐步成熟。...指标类型 Pod资源使用率,例如CPU使用率 Pod自定义指标,例如接收请求数量 Object自定义指标或外部定义指标,例如通过HTTP URL“/metrics”提供, 或者使用外部服务提供指标采集...URL Kubernetes从1.11版本开始, 弃用基于Heapster组件完成PodCPU使用率采集机制, 全面转向基于Metrics Server完成数据采集。

3.5K31

Knative快速入门与实践

自动扩缩容 Knative通过缩容到零(scale-to-zero)和自动扩缩容(autoscaling)特性能够有效地满足这些需求HPA依赖于3个重要指标 ❶ 并发数 ❷ 每秒请求数 ❸ CPU KPA...可以看作HPA扩展版本,对默认HPA算法进行了一些调整,使其能更适应且更快速地响应并处理流量驱动Knative扩缩容需求 配置Knative Service自动扩缩容 Kubernetesknative-serving...不断计算生成质数,直到最大值 memload,模拟内存负载为100MB观察Pod扩容过程 $ watch kubectl get pods 第4章 Knative事件模块 Knative事件模块有3种主要使用方法...过滤器会在消息分发到消息接收器服务(订阅者)之前生效 使用事件源产生事件 Knative事件源是那些可以产生事件组件。...查看eventinghello Pod日志 $ stern eventinghello -c user-container

1.3K20

k8s滚动升级和扩缩容

一、扩缩容 手动扩容 k8s使用过kubectl scale命令进行扩容 假设原本pod有3个,这个时候由于业务增长,我们可以将pod增加到5个 kubectl scale rc blog --replicas...自动扩容(HPA) 用于实现基于CPU使用率进行自动Pod扩缩容功能。...HPA控制器基于Masterkube-controller-manager服务启动参数--horizontal-pod-autoscaler-sync-period定义探测周期(默认值为 15s),...HorizontalPodAutoscaler有两个版本,autoscaling/v1 只支持CPU使用指标数,autoscaling/v2则用于支持基于任意指标的自动扩缩容配置,包括基于资源使用率...Object指标数据来源于其他资源对象或任意自定义指标, 其target指标类型可以使用Value或AverageValue(根据Pod副本数计算平 均值)进行设置 HPA 最佳实践 1)为容器配置

1.3K30

Kubernetes_HPA使用详解

kubectl scale命令可以来实现 Pod 扩缩容功能,但是这个毕竟是完全手动操作,要应对线上各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行扩缩容。...HPA 会根据设定 cpu 使用率(10%)动态增加或者减少 Pod 数量。 当然我们依然还是可以通过创建 YAML 文件形式来创建 HPA 资源对象。...,在后面的课程中我们还会学习到根据自定义监控指标来自动对 Pod 进行扩缩容。...基于内存 HorizontalPodAutoscaler 是 Kubernetes autoscaling API 组资源,在当前稳定版本 autoscaling/v1 中只支持基于 CPU 指标的缩放...在 Beta 版本 autoscaling/v2beta2,引入了基于内存和自定义标的缩放。

82020

K8s pod 动态弹性扩缩容(HPA )部署!步骤齐全,少走坑路

概述 Horizontal Pod Autoscaler(HPA,Pod水平自动伸缩),根据平均 CPU 利用率、平均内存利用率或你指定任何其他自定义指标自动调整 Deployment 、ReplicaSet...对于自定义指标,将使用 custom.metrics.k8s.io API。它由其他度量指标方案厂商“适配器(Adapter)” API 服务器提供。...检查你指标管道以查看是否有可用 Kubernetes 指标适配器。 对于外部指标,将使用 external.metrics.k8s.io API。可能由上面的自定义指标适配器提供。...15s/周期 -> 查询metrics.k8s.io API -> 算法计算 -> 调用scale 调度 -> 特定扩缩容策略执行。...未就绪 Pod 和缺少指标的 Pod 考虑进来再次计算使用率。如果新比率与扩缩方向相反,或者在容忍范围内,则跳过扩缩。否则,我们使用扩缩比例。

3.3K51

K8s基于自定义指标实现自动扩容

基于自定义指标 除了基于 CPU 和内存来进行自动扩缩容之外,我们还可以根据自定义监控指标来进行。...,这些指标都是通过 APIServer 暴露,而且 HPA 资源对象也可以很轻易直接使用。...resources:通过 seriesQuery 查询到只是指标,如果需要查询某个 Pod 指标,肯定要将它名称和所在命名空间作为指标的标签进行查询,resources 就是将指标的标签和 k8s...as 为空就是使用默认值意思。 metricsQuery:这就是 Prometheus 查询语句了,前面的 seriesQuery 查询是获得 HPA 指标。...当我们要查某个指标的值时就要通过它指定查询语句进行了。可以看到查询语句使用了速率和分组,这就是解决上面提到只增指标的问题。

76910

k8s基于自定义指标实现自动扩容

基于自定义指标 除了基于 CPU 和内存来进行自动扩缩容之外,我们还可以根据自定义监控指标来进行。...,这些指标都是通过 APIServer 暴露,而且 HPA 资源对象也可以很轻易直接使用。...resources:通过 seriesQuery 查询到只是指标,如果需要查询某个 Pod 指标,肯定要将它名称和所在命名空间作为指标的标签进行查询,resources 就是将指标的标签和 k8s...as 为空就是使用默认值意思。 metricsQuery:这就是 Prometheus 查询语句了,前面的 seriesQuery 查询是获得 HPA 指标。...当我们要查某个指标的值时就要通过它指定查询语句进行了。可以看到查询语句使用了速率和分组,这就是解决上面提到只增指标的问题。

2.3K100

kubernetes(十六) k8s 弹性伸缩

HPA 控制器通过 Metrics Server API(Heapster API 或聚合 API)获取这些数据,基于用户定义扩缩容规则进行计算,得到目标 Pod 副本数量。...当目标 Pod 副本数量与当前副本数量不同时,HPA 控制器就向 Pod 副本控制器(Deployment、RC 或 ReplicaSet)发起 scale 操作,调整 Pod 副本数量,完成扩缩容操作...-> apiserver -> kube aggregation -> prometheus-adapter -> prometheus -> pods 基于Prometheus自定义指标扩缩容 资源指标只包含...但如果想根据自定义指标:如请求qps/5xx错误数来实现HPA,就需要使用自定义指标了,目前比较成熟实现是 Prometheus Custom Metrics。....yml 这里使用Prometheus提供指标测试来测试自定义指标(QPS)自动缩放.

3K30
领券