文档章节

Kubernetes 笔记 012 Pod 的自动扩容与缩容

o
 osc_w9s1w4o0
发布于 2019/03/29 14:40
字数 816
阅读 12
收藏 0

精选30+云产品,助力企业轻松上云!>>>

本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复**「1024」**即可领取,欢迎大家关注,二维码文末可以扫。

Hi,大家好,欢迎大家和我一起学 K8S,这是系列第 12 篇。

上一篇我们了解了 Pod 的手动扩容和缩容,本篇来看看自动的方式。

K8S 作为一个集群式的管理软件,自动化、智能化是免不了的功能。Google 在 K8S v1.1 版本中就加入了这个 Pod 横向自动扩容的功能(Horizontal Pod Autoscaling,简称 HPA)。

HPA 与之前的 Deployment、Service 一样,也属于一种 K8S 资源对象。

HPA 的目标是希望通过追踪集群中所有 Pod 的负载变化情况,来自动化地调整 Pod 的副本数,以此来满足应用的需求和减少资源的浪费。

HAP 度量 Pod 负载变化情况的指标有两种:

  • CPU 利用率(CPUUtilizationPercentage)
  • 自定义的度量指标,比如服务在每秒之内的请求数(TPS 或 QPS)

如何统计和查询这些指标,要依托于一个组件——Heapster。Heapster 会监控一段时间内集群内所有 Pod 的 CPU 利用率的平均值或者其他自定义的值,在满足条件时(比如 CPU 使用率超过 80% 或 降低到 10%)会将这些信息反馈给 HPA 控制器,HPA 控制器就根据 RC 或者 Deployment 的定义调整 Pod 的数量。

HPA 实现的方式有两种:配置文件和命令行

  1. 配置文件

这种方式是通过定义 yaml 配置文件来创建 HPA,如下是基本定义:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: php-apache
  namespace: default
spec:
  scaleTargetRef:               # (1)
    kind: Deployment   
    name: php-apache
  minReplicas: 1                # (2)
  maxReplicas: 10
  targetAverageUtilization: 50  # (3)

文件 kind 类型是 HorizontalPodAutoscaler,其中有 3 个地方需要额外注意下:

(1)scaleTargetRef 字段指定需要管理的 Deployment/RC 的名字,也就是提前需要存在一个 Deployment/RC 对象。

(2) minReplicasmaxReplicas 字段定义 Pod 可伸缩的数量范围。这个例子中扩容最高不能超过 10 个,缩容最低不能少于 1 个。

(3)targetAverageUtilization 指定 CPU 使用率,也就是自动扩容和缩容的触发条件,当 CPU 使用率超过 50% 时会触发自动动态扩容的行为,当回落到 50% 以下时,又会触发自动动态缩容的行为。

  1. 命令行

这种方式就是通过 kubectl autoscale 命令来实现创建 HPA 对象,实现自动扩容和缩容行为。比如和上面的例子等价的命令如下:

kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

通过参数来引入各个字段。

OK,本文就到这里,更多实践的例子大家可以参考 K8S 官网。下文我们将会探索 K8S 的容错机制。


我的公众号 「Linux云计算网络」(id: cloud_dev) ,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,分享的内容包括但不限于 Linux、网络、云计算虚拟化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++编程技术等内容,欢迎大家关注。

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Kubernetes 笔记 012 Pod 的自动扩容与缩容

原文:Kubernetes 笔记 012 Pod 的自动扩容与缩容 本文首发于我的公众号 cloud_dev,专注于干货分享,号内有大量书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫。...

osc_8zrg3dm7
2019/03/29
2
0
Kubernetes 笔记 11 Pod 扩容与缩容 双十一前后的忙碌

本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复**「1024」**即可领取,欢迎大家关注,二维码文末可以扫。 Hi,大家好,欢迎...

osc_keofad7g
2019/03/28
1
0
Docker(三):利用Kubernetes实现容器的弹性伸缩

一、前言   前两章有的介绍docker与Kubernetes。docker是项目运行的容器,Kubernetes则是随着微服务架构的演变docker容器增多而进行其编排的重要工具。Kubernetes不仅可以对容器进行检测状...

osc_ymlf86ez
04/16
13
0
Kubernetes Autoscaler增加对百度云容器引擎CCE的支持

本文作者:HelloDeveloper 在众多企业的容器化应用和实践中,弹性伸缩一直是个很重要的话题。受益于容器本身轻量级、快速启动的特性,容器化应用的规模部署变得愈发灵活弹性。 那么容器集群的...

百度开发者中心
2019/09/23
0
0
Kubernetes Autoscaler增加对百度云容器引擎CCE的支持

本文作者:HelloDeveloper 在众多企业的容器化应用和实践中,弹性伸缩一直是个很重要的话题。受益于容器本身轻量级、快速启动的特性,容器化应用的规模部署变得愈发灵活弹性。 那么容器集群的...

百度开发者中心
2019/09/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聚焦餐饮行业,研究院昨发布数据显示

谈话,聚焦餐饮行业,研究院昨发布数据显示,今年上半年,全国餐饮行业招聘需求增长46.18%,平均月薪6387元.随着餐饮行业的快速发展,"如何留人"也成为餐饮企业的思考题. 记者了解到,中国饭店协会...

点击fojewio
45分钟前
20
0
3·15晚会曝光上海氪信、招财旺旺SDK包泄露隐私 后台上传交易验证码敏感信息

来源 | 央视 7月16日,央视3·15晚会曝光国美易卡、美的空调遥控器、姨妈日历、银码头等50多款软件中内嵌的SDK包读取、上传用户隐私问题。上海氪信信息技术有限公司、北京招财旺旺信息技术有...

镭射财经
54分钟前
14
0
名称=''的无效表单控件不可聚焦 - An invalid form control with name='' is not focusable

问题: I have an acute problem on my website. 我的网站上有一个严重的问题。 In Google Chrome some customers are not able to proceed to my payment page. 在Google Chrome浏览器中,某......

技术盛宴
55分钟前
14
0
Hacker News 简讯 2020-07-17

更新时间: 2020-07-17 00:00 D 2.093.0 - (dlang.org) D 2.093.0 得分:32 | 评论:2 Let’s avoid talk of ‘chemical imbalance’: it’s people in distress - (psyche.co) 让我们避免谈论“......

FalconChen
今天
90
0
【LeetCode】 59 在排序数组中查找元素的第一个和最后一个位置

题目: 解题思路: 二分法 https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/zai-pai-xu-shu-zu-zhong-cha-zhao-yuan-su-de-di-yi-/ 代......

JaneRoad
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部