[置顶] Kubernetes1.7新特性:新增自动伸缩条件和参数
一、核心概念
Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功能。云计算具有水平弹性的特性,这个是云计算区别于传统IT技术架构的主要特性。对于Kubernetes中的POD集群来说,HPA可以实现很多自动化功能,比如当POD中业务负载上升的时候,可以创建新的POD来保证业务系统稳定运行,当POD中业务负载下降的时候,可以销毁POD来提高资源利用率。
HPA控制器默认每隔30秒就会运行一次,如果要修改间隔时间,可以设置horizontal-pod-autoscaler-sync-period参数。
二、1.7新特性
1、HPA触发条件新特性(α特性)
在Kubernetes1.7中,对HorizontalPodAutoscalerStatus结构体,新增加了Conditions属性。
Conditions属性是一个HorizontalPodAutoscalerCondition结构体,在这个结构体中包括Type、Status、LastTransitionTime、Reason和Message五个属性,每个属性的含义如下:
• Type属性:包含三个可选类型,ScalingActive、AbleToScale和ScalingLimited。
• Status属性:表示Type属性是true还是false。取值为true和false,只有当HPA控制器检查的目标指标运行正常的时候才会设置ScalingActive为true。在其他情况下会将ScalingActive设置成false。如果Type是AbleToScale类型,那么取值为true的时候有三种情况,第一种是当HPA控制器可以获取当前目标自动伸缩,第二种是HPA控制器可以扩展或者收缩目标到指定的副本数,第三种是HPA控制器发现已经到了可以启动一次新的自动伸缩时间了,在其他情况下会设置成false。如果Type是ScalingLimited,那么只有当副本数在配置范围内的时候才被设置成false,否则都是true。
• LastTransitionTime:记录上一次事务运行时间。
• Reason:记录上一次事务产生的原因。
• Message:记录上一次事务产生的详细信息。
通过kubectl describe hpa命令可以看到HorizontalPodAutoscalerStatus结构体新增的Conditions属性。
$kubectl describe hpa cm-test Name: cm-test Namespace: prom Labels: <none> Annotations: <none> CreationTimestamp: Fri, 16 Jun 2017 18:09:22 +0000 Reference: ReplicationController/cm-test Metrics: ( current / target ) "http_requests" on pods: 66m / 500m Minreplicas: 1 Maxreplicas: 4 ReplicationControllerpods: 1 current / 1 desired Conditions: Type Status Reason Message ---- ------ ------ ------- AbleToScale True ReadyForNewScale the last scale time was sufficientlyold as to warrant a new scale ScalingActive True ValidMetricFound the HPAwas able to successfully calculate a replica count from pods metrichttp_requests ScalingLimited False DesiredWithinRange thedesired replica count is within the acceptible range Events:
2、增加了两个HPA参数(α特性)
在Kubernetes1.7中,对HPA控制器,在原先horizontal-pod-autoscaler-sync-period参数基础上,新增加了horizontal-pod-autoscaler-upscale-delay和horizontal-pod-autoscaler-downscale-delay两个参数,默认值分别是3分钟和5分钟,分别代表自动伸展后的延迟时间和自动收缩后的延迟时间。
HPA控制器通过这两个新增参数来加以辅助控制是否进行自动伸缩,同时也会根据这两个参数来设置HorizontalPodAutoscalerCondition结构体的Conditions属性。
[置顶] Kubernetes1.7新特性:新增自动伸缩条件和参数的更多相关文章
- [置顶]
kubernetes1.7新特性:新增StorageOS卷插件和Local持久存储
背景介绍 在Kubernetes中卷的作用在于提供给POD存储,这些存储可以挂载到POD中的容器上,进而给容器提供存储. 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volum ...
- [置顶]
kubernetes1.7新特性:日志审计变化
背景概念 出于安全方面的考虑,Kubernetes提供了日志审计记录,用来记录不同普通用户.管理员和系统中各个组件的日志信息. Kubernetes日志审计是Kube-apiserver组件的一部分功 ...
- [置顶]
Kubernetes1.7新特性:支持绕过docker,直接通过containerd管理容器
背景情况 从Docker1.11版本开始,Docker依赖于containerd和runC来管理容器,containerd是控制runC的后台程序,runC是Docker公司按照OCI标准规范编写的一 ...
- [置顶]
kubernetes1.7新特性:PodDisruptionBudget控制器变化
背景概念 在Kubernetes中,为了保证业务不中断或业务SLA不降级,需要将应用进行集群化部署.通过PodDisruptionBudget控制器可以设置应用POD集群处于运行状态最低个数,也可以设 ...
- 黑马程序员_Java基础:JDK1.5后的新特性:自动拆装箱,以及注意事项
------- android培训.java培训.期待与您交流! ---------- 首先来看一段代码: Integer x = new Integer(4); Integer y = 4; 在JD ...
- kubernetes1.5新特性跟踪(续)
Kubernetes发布历史回顾 Kubernetes 1.0 - 2015年7月发布 Kubernetes 1.1 - 2015年11月发布 Kubernetes 1.2 - 2016年3月发布 K ...
- kubernetes1.5新特性跟踪
Kubernetes发布历史回顾 Kubernetes 1.0 - 2015年7月发布 Kubernetes 1.1 - 2015年11月发布 Kubernetes 1.2 - 2016年3月发布 K ...
- jdk1.5新特性之-----自动装箱与自动拆箱
import java.util.ArrayList; /* jdk1.5新特性之-----自动装箱与自动拆箱. java是面向对象 的语言,任何事物都可以使用类进行描述,sun就使用了 一些类描述j ...
- Python - 3.8 新特性之仅位置参数 & 仅关键字参数
前置知识 Python 函数:https://www.cnblogs.com/poloyy/p/15092393.html 什么是仅限位置形参 仅限位置形参是 Python 3.8 才有的新特性 新增 ...
随机推荐
- Git学习笔记-精简版
注意本文参考廖雪博客: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 一:Git ...
- unittest 单元测试框架断言方法
unittest单元测试框架的TestCase类下,测试结果断言方法:Assertion methods 方法 检查 版本 assertEqual(a, b) a == b assertNotEqu ...
- java反射基础知识(二)
1. 了解 Java 中的反射 1.1 什么是 Java 的反射 Java 反射是可以让我们在运行时获取类的函数.属性.父类.接口等 Class 内部信息的机制.通过反射还可以让我们在运行期实例化对象 ...
- 练T25- focus必看!所有成功截图汇总
http://www.guokr.com/post/565880/ 25914人加入此小组 发新帖 练T25- focus必看!所有成功截图汇总! 读图模式 作家向威 作家 2014-02-22 07 ...
- maven 不打包hbm 问题
<build> <resources> <resource> <directory>src/main/java</directory> &l ...
- windo form 窗体布局方式
DataGridView:显示数据表后台数据绑定:List<xxx> list = new List<xxx>();dataGridView1.DataSource = lis ...
- phpword使用
composer 安装 https://packagist.org/packages/phpoffice/phpword 开发文档:http://phpword.readthedocs.io/en/l ...
- Linux:查看磁盘空间占用情况
Linux:查看磁盘空间占用情况 工作中有时被分配的测试机空间不大,经常遇到磁盘空间占满的情况.排查过程如下: 一.首先使用df -h 命令查看磁盘剩余空间,通过以下图看出/目录下的磁盘空间已经被占满 ...
- React之JSX语法
1. JSX的介绍 JSX(JavaScript XML)——一种在React组件内部构建标签的类XML语法.react在不使用JSX的情况下一样可以工作,然而使用JSX可以提高组件的可读性,因此 ...
- Jave基础之选择排序
选择排序(Selection sort) 基本介绍 选择排序: 每一次从未排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余未排序的元素中选出最小(或最大的)放在已排序序 ...