CCE集群高可用部署指导

云技术搬运工 发表于 2021/01/28 11:00:59 2021/01/28
【摘要】 云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。 本文从CCE容器部署高可用以及CCE容器业务高可用两个方面详细介绍了CCE集群的高可用的指导方案。

【背景介绍】

云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。

本文从CCE容器部署高可用以及CCE容器业务高可用两个方面详细介绍了CCE集群的高可用的指导方案。

【指导方案】

1.png


1.1   CCE容器高可用部署

1.1.1   容器基础设施(集群)的高可用

容器高可用依赖于基础设施(集群)的高可用,集群是单AZ部署,一旦发生单AZ或者单节点故障,业务必然受到影响。

AZ级别的CCE高可用集群,如果集群的master节点有一半以上的节点故障,集群将不可用。

2.png

19.PNG

如下参考链接,详细讲解了如何购买4CCE的高可用集群的操作步骤:

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故障,业务均不受影响。

3.png


1.1.2.1    容器多实例可以实现多节点、多可用区部署

4.png

容器高可用部署方式展示

1.1.2.1.1          操作步骤
1.1.2.1.1.1     容器的多节点部署

使用华为云CCE的亲和性策略:自身反亲和(节点级别), 使所有的pod强制调度到不同的节点上。

新创建的工作负载按照规则发布,已经创建的工作负载kill或驱逐老实例,实现工作负载自身反亲和(节点级别)。

a.如下图,现有1个CCE集群,有3个node节点部署。

5.png

CCE集群的3node节点


b.添加工作负载的调度策略,使用负载与自身反亲和(节点级别),如图。

6.png

                                            负载与自身反亲和(节点级别)配置


c.则工作负载的POD都被调度到不同Node,如图。

7.png


工作负载的pod都被调度到不同Node


1.1.2.1.1.2     容器的多可用区部署

使用华为云CCE的亲和性策略:自身反亲和(可用区级别) ,所有的pod实例会被调度到不同的可用区上。

新创建的工作负载按照规则发布,已经创建的工作负载kill或驱逐老实例,实现工作负载自身反亲和(可用区级别)

a.       如下图,现有1CCE集群,有3node节点部署。

8.png

CCE集群的3node节点

b.添加工作负载的调度策略,使用负载与自身反亲和(可用区级别),如右图。

9.png

                          负载与自身反亲和(节点级别)配置


c.则工作负载的POD都被调度到不同可用区,如右图。

10.png

              负载与自身反亲和(节点级别)配置


如下参考链接,详细讲解了工作负载的反亲和性的操作步骤:

工作负载间的反亲和性:https://support.huaweicloud.com/usermanual-cce/cce_01_0227.html

1.1.3   容器数据存储-高可用(EVS OBS SFS

容器存储可以将容器中的数据可以保存在EVS共享盘(支持跨节点,不支持跨可用区)、OBS桶(支持跨节点跨可用区)、SFS(支持跨节点跨可用区)等,此后,容器发生迁移时,相应的存储会伴随容器进行迁移(自动从原节点卸载,并挂载到新节点)。

11.png

                                                                                    容器化集群高可用部署的基本拓扑图

1.1.3.1    无状态工作负载

 a.所有实例都同时Active通过负载均衡把请求分发到集群的不同实例中,集群中任何一个主实例出现故障,不影响其他主实例运行,可将数据保存到EVS共享盘(支持跨节点,不支持跨可用区)OBS(支持跨节点跨可用区)SFS(支持跨节点跨可用区)。(右图为跨节点示意图)

b.客户无保存数据的诉求,不用考虑数据的保存问题。

12.png


1.1.3.2    有状态工作负载

 a.所有实例只有一个主能提供服务,有一个或多个备是Standby状态,通过主备实例切换或主实例选举(毫秒级完成)来保证高可用,可将数据保存在云硬盘(不支持跨节点)、 EVS共享盘(支持跨节点,不支持跨可用区)OBS(支持跨节点跨可用区)SFS(支持跨节点跨可用区)(右图为跨节点示意图)

b.客户无保存数据的诉求,不用考虑数据的保存问题。

13.png


1.2   CCE 容器业务的高可用

1.2.1   弹性伸缩-CCE-autoscaler-node节点弹性扩缩

14.png

18.PNG

如下参考链接,详细讲解了创建以及管理节点伸缩策略的操作步骤:

创建节点伸缩策略: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实例弹性扩缩容(无状态工作负载)

15.png

17.PNG

HPA工作机制

HPAHorizontal Pod Autoscaler)是用来控制Pod水平伸缩的控制器,HPA周期性检查Pod的度量数据, 计算满足HPA资源所配置的目标数值所需的副本数量,进而调整目标资源(如Deployment)的replicas字段。
HPA可以配置单个和多个度量指标,配置单个度量指标时,只需要对Pod的当前度量数据求和,除以期望目标值,然后向上取整,就能得到期望的副本数。例如有一个Deployment控制有3Pod,每个PodCPU使用率是70%50%90%,而HPA中配置的期望值是50%,计算期望副本数=70 + 50 + 90/50 = 4.2,向上取整得到5,即期望副本数就是5

如果是配置多个度量指标,则会分别计算单个度量指标的期望副本数量,然后

取其中最大值,就是最终的期望副本数量。

16.png


如下参考链接,详细讲解了创建以及管理工作负载伸缩策略的操作步骤:

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。