如何降低CPU使用率 降低CPU使用率方法(怎么让cpu使用率降低)
970
2022-05-28
【背景介绍】
云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。
本文从CCE容器部署高可用以及CCE容器业务高可用两个方面详细介绍了CCE集群的高可用的指导方案。
【指导方案】
1.1 CCE容器高可用部署
1.1.1 容器基础设施(集群)的高可用
容器高可用依赖于基础设施(集群)的高可用,集群是单AZ部署,一旦发生单AZ或者单节点故障,业务必然受到影响。
AZ级别的CCE高可用集群,如果集群的master节点有一半以上的节点故障,集群将不可用。
如下参考链接,详细讲解了如何购买4种CCE的高可用集群的操作步骤:
1)购买混合集群:https://support.huaweicloud.com/usermanual-cce/cce_01_0028.html
2)购买鲲鹏集群:https://support.huaweicloud.com/usermanual-cce/cce_01_0121.html
3)购买GPU集群:https://support.huaweicloud.com/usermanual-cce/cce_01_0122.html
4)购买Turbo集群:https://support.huaweicloud.com/usermanual-cce/cce_01_0246.html
1.1.2 容器实例的高可用
容器高可用依赖于多实例部署,在合理配置反亲和后,如果发生单实例、单节点、单AZ故障,业务均不受影响。
容器高可用部署方式展示
使用华为云CCE的亲和性策略:自身反亲和(节点级别), 使所有的pod强制调度到不同的节点上。
新创建的工作负载按照规则发布,已经创建的工作负载kill或驱逐老实例,实现工作负载自身反亲和(节点级别)。
a.如下图,现有1个CCE集群,有3个node节点部署。
CCE集群的3个node节点
b.添加工作负载的调度策略,使用负载与自身反亲和(节点级别),如图。
负载与自身反亲和(节点级别)配置
c.则工作负载的POD都被调度到不同Node,如图。
工作负载的pod都被调度到不同Node
使用华为云CCE的亲和性策略:自身反亲和(可用区级别) ,所有的pod实例会被调度到不同的可用区上。
新创建的工作负载按照规则发布,已经创建的工作负载kill或驱逐老实例,实现工作负载自身反亲和(可用区级别)
a. 如下图,现有1个CCE集群,有3个node节点部署。
CCE集群的3个node节点
b.添加工作负载的调度策略,使用负载与自身反亲和(可用区级别),如右图。
负载与自身反亲和(节点级别)配置
c.则工作负载的POD都被调度到不同可用区,如右图。
负载与自身反亲和(节点级别)配置
如下参考链接,详细讲解了工作负载的反亲和性的操作步骤:
工作负载间的反亲和性:https://support.huaweicloud.com/usermanual-cce/cce_01_0227.html
1.1.3 容器数据存储-高可用(EVS OBS SFS)
容器存储可以将容器中的数据可以保存在EVS共享盘(支持跨节点,不支持跨可用区)、OBS桶(支持跨节点跨可用区)、SFS(支持跨节点跨可用区)等,此后,容器发生迁移时,相应的存储会伴随容器进行迁移(自动从原节点卸载,并挂载到新节点)。
容器化集群高可用部署的基本拓扑图
a.所有实例都同时Active,通过负载均衡把请求分发到集群的不同实例中,集群中任何一个主实例出现故障,不影响其他主实例运行,可将数据保存到EVS共享盘(支持跨节点,不支持跨可用区)、OBS桶(支持跨节点跨可用区)、SFS(支持跨节点跨可用区)中。(右图为跨节点示意图)
b.客户无保存数据的诉求,不用考虑数据的保存问题。
a.所有实例只有一个主能提供服务,有一个或多个备是Standby状态,通过主备实例切换或主实例选举(毫秒级完成)来保证高可用,可将数据保存在云硬盘(不支持跨节点)、 EVS共享盘(支持跨节点,不支持跨可用区)、OBS桶(支持跨节点跨可用区)、SFS(支持跨节点跨可用区)(右图为跨节点示意图)
b.客户无保存数据的诉求,不用考虑数据的保存问题。
1.2 CCE 容器业务的高可用
1.2.1 弹性伸缩-CCE-autoscaler-node节点弹性扩缩
如下参考链接,详细讲解了创建以及管理节点伸缩策略的操作步骤:
创建节点伸缩策略:https://support.huaweicloud.com/usermanual-cce/cce_01_0209.html
管理节点伸缩策略:https://support.huaweicloud.com/usermanual-cce/cce_01_0063.html
1.2.2 弹性伸缩-CCE-HPA-POD实例弹性扩缩容(无状态工作负载)
HPA工作机制
HPA(Horizontal Pod Autoscaler)是用来控制Pod水平伸缩的控制器,HPA周期性检查Pod的度量数据, 计算满足HPA资源所配置的目标数值所需的副本数量,进而调整目标资源(如Deployment)的replicas字段。
HPA可以配置单个和多个度量指标,配置单个度量指标时,只需要对Pod的当前度量数据求和,除以期望目标值,然后向上取整,就能得到期望的副本数。例如有一个Deployment控制有3个Pod,每个Pod的CPU使用率是70%、50%、90%,而HPA中配置的期望值是50%,计算期望副本数=(70 + 50 + 90)/50 = 4.2,向上取整得到5,即期望副本数就是5。
如果是配置多个度量指标,则会分别计算单个度量指标的期望副本数量,然后
取其中最大值,就是最终的期望副本数量。
如下参考链接,详细讲解了创建以及管理工作负载伸缩策略的操作步骤:
1)创建工作负载伸缩策略:https://support.huaweicloud.com/usermanual-cce/cce_01_0208.html
2)管理工作负载伸缩策略:https://support.huaweicloud.com/usermanual-cce/cce_01_0083.html
备注:CCE-HPA-POD实例弹性扩缩容是影响CCE-autoscaler-node节点弹性扩缩容的一个因素,但是CCE-HPA-POD实例弹性扩缩容和CCE-autoscaler-node节点弹性扩缩容之间没有绝对有规律的关系。
1.2.3 滚动升级
kubernetes提供了一种比较方便的方式为滚动升级,在升级过程中,对集群中的实例进行逐渐替换成新版本(按照替换比例,先启动新实例再杀掉老实例),保证了服务的可用性。
升级实例过程中的业务不中断:https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_00223.html)
如果老实例为长连接,为了保证客户业务在滚动升级时,不受影响,设置容器生命周期为停止前处理(容器停止前触发。设置停止前处理,确保升级或实例删除时可提前将实例中运行的业务排水。)
停止前处理:https://support.huaweicloud.com/usermanual-cce/cce_01_0105.html#cce_01_0105__section2334114473712
Kubernetes 云容器引擎 CCE
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。