黑马程序员技术交流社区

标题: 【上海校区】基于Kubernetes实现云上的自动运维 [打印本页]

作者: 不二晨    时间: 2018-7-15 09:54
标题: 【上海校区】基于Kubernetes实现云上的自动运维
基于Kubernetes实现云上的自动运维

随着业务量的增多,应用的压力越来越大,这时就需要调整应用的部署量来应对高并发。但是业务量并非一成不变的,当业务量减少时,应用部署过多反而成为一种资源的浪费,这时需要减少部署量来降低资源的损耗。在传统的运维过程中,离不开人为的操作,同时启动量的多少对于运维人员来说也不能准确把控。幸运的是Kubernetes提供了容器的弹性伸缩功能,通过对容器的cpu、内存、并发量等监控,实现容器的自动伸缩,极大的简化了运维的操作难度、节省了人员开支和资源损耗。

Horizontal Pod Autoscaler

Horizontal Pod Autoscaling,简称HPA, Kubernetes通过HPA的设定,实现了容器的弹性伸缩功能。对于Kubernetes中的POD集群来说,HPA可以实现很多自动化功能,比如当POD中业务负载上升的时候,可以创建新的POD来保证业务系统稳定运行,当POD中业务负载下降的时候,可以销毁POD来减少资源的浪费。

HPA最早版本(autoscaling/v1)仅支持CPU作为可监控的度量标准。当前版本HPA处于测试阶段(autoscaling/v2beta1)支持内存和其他自定义指标。

当前的弹性伸缩的指标包括:

HPA控制器默认每隔30秒就会运行一次,一旦创建的HPA,我们就可以通过命令查看获取到的当前指标信息

$ kubectl get hpa NAME -n NAMESPACE

同样如果要查看HAP的事件,也可通下面的命令查看

$ kubectl describe hpa NAME -n NAMESPACE样例apiVersion: autoscaling/v2beta1kind: HorizontalPodAutoscalermetadata:  name: hpa-name  namespace: my-namespacespec:  scaleTargetRef:    apiVersion: apps/v1    kind: Deployment  # 基于Deployment进行扩缩    name: deployment-name  # Deployment名  minReplicas: 1   # 最大实例数  maxReplicas: 10   # 最小实例数  metrics:  - type: Resource    resource:      name: cpu      targetAverageUtilization: 50  # CPU阈值设定50%  - type: Pods    pods:      metricName: packets-per-second      targetAverageValue: 1k   # 每秒数据量  - type: Object    object:      metricName: requests-per-second      target:        apiVersion: extensions/v1beta1        kind: Ingress        name: main-route      targetValue: 10k   # 每秒请求量弹性伸缩容错处理【转载】原文地址:https://blog.csdn.net/u013690521/article/details/81033931


作者: wuqiong    时间: 2018-7-15 10:19

作者: 不二晨    时间: 2018-7-16 11:52
奈斯
作者: 吴琼老师    时间: 2018-7-18 14:57

作者: 梦缠绕的时候    时间: 2018-7-18 15:43

作者: 不二晨    时间: 2018-7-19 14:07
优秀




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2