集群生命周期管理
特性介绍
安装部署作为PAAS平台的业务起点,是衡量产品力的重要部分,工具采用基于Cluster API的方式实现系统的安装部署,用K8s生命式API风格来管理自身多K8s集群,简化K8s的集群生命周期管理,优化集群安装流程和管理细节,使安装过程更加自动化。本文档介绍在安装完管理集群后的业务集群安装指导以及集群的生命周期管理操作。
应用场景
用户使用安装部署工具,将openFuyao管理面和集群进行创建,完成对容器平台的安装部署。
能力范围
对整个容器平台进行安装部署,支持对业务集群的集群生命周期管理,包括业务集群的创建、删除、扩容、缩容、升级。
亮点特征
基于Cluster API方式,用K8s生命式API风格来管理自身多K8s集群,简化K8s的集群生命周期管理,使安装过程更加自动化。
实现原理
- 总体流程
-
下载BKE安装工具,进行引导节点初始化。
-
引导节点向管理集群节点推送Agent,部署K8s集群和Cluster API,完成管理集群的创建。
-
在openfuyao管理面上完成对业务集群的创建、卸载、动态扩缩容、以及K8s的版本升级等操作(包括对管理集群自身的动态扩缩容)。
说明:
- 引导节点负责搭建管理集群,管理集群负责搭建业务集群,业务集群负责运行客户的程序。
- 目前的安装部署工具中,引导节点初始化、引导节点搭建管理集群是用户通过命令行来执行,管理集群创建业务集群是通过管理集群上的openFuyao的集群生命周期管理界面进行纳管。
图 1 安装部署流程图
图中涉及到的BKE组件由bkeadm、bkeagent、Cluster API组成,具体介绍如下。
bkeadm
只在引导节点以二进制文件使用,是BKE安装工具。主要功能包括:启动镜像仓库、yaml仓库,启动K3s集群并安装Cluster API,提交管理集群配置。
bkeagent
是云原生的宿主机管理工具,负责侦听kube-apiserver指令并在宿主机上执行。主要功能包括:侦听CRD资源,反馈执行结果;提供切换侦听K8s集群能力;内置多种任务,如:节点环境检查、docker安装、shell脚本执行等。
Cluster API
是controller,主要功能包括:在所有节点分发并启动bkeagent;创建指令指挥bkeagent工作;将部署集群的各个结果汇总,并更新到bkecluster事件中。
图 2 系统逻辑视图
前端进行集群配置选项的修改填写后,将配置文件提交给后端,后端进行处理,调用接口,提交给对应的K8s APIserver进行集群管理的动作执行。
与相关特性的关系
无。
相关实例
代码链接:
https://gitcode.com/openfuyao/installer-website
https://gitcode.com/openfuyao/installer-service
安装
整体安装分为管理集群安装和业务集群安装,管理集群安装的详细安装内容可参见在线安装和离线安装。业务集群安装可参见以下章节。
登录openFuyao管理面
浏览器中输入“https://引导节点的登录IP地址:集群生命周期管理的web服务端口”,输入用户名和密码即可登录集群生命周期管理页面。
说明:
- 首次登录需要修改密码。
- 集群生命周期管理的web服务端口默认为30010。
新增集群
前提条件
-
已配置好引导节点。
-
已安装完成管理集群。
背景信息
在集群生命周期管理页面上进行业务集群的创建。
使用限制
-
需确认填写正确的节点IP地址、用户名和密码。
-
高可用集群创建时需确认填写正确的负载均衡器IP地址。
操作步骤
-
在左侧导航栏中选择“集群生命周期管理”。界面展示集群生命周期管理的列表信息,包括“集群名称”、“状态”、“节点数”等信息。
-
单击列表右上方的“+ 新增集群”,进入“新增集群”界面。
图 3 新增集群
-
填写界面相关内容。
表 1 界面相关说明
区域名称 | 说明 |
---|---|
基本信息 | 为集群创建一个名称。 |
Master信息 | 业务集群的master节点的相关信息。单击 |
Node信息 | 业务集群的node节点信息。 |
高级配置 | 默认为配置好的镜像仓库地址和镜像仓库IP地址,以及Chart仓库地址。在线安装时,默认地址是在线的默认仓库地址,离线安装时,默认地址的是离线安装时配置的初始化节点的地址。 |
-
单击下方的“创建”,弹窗显示“集群信息”弹窗。
-
集群信息滚动完成后,单击“确定”。
-
返回列表界面,“状态”列显示为“安装中”。
-
待“状态”列字段更新完毕,完成新增集群。
说明:
如果“集群信息”显示报错信息,需要进一步定位解决。
删除集群
前提条件
集群生命周期管理列表界面已存在创建好的集群。
背景信息
在集群生命周期管理页面上进行业务集群的删除。
使用限制
目前仅支持已创建成功集群的删除,创建失败的集群需要排查后,到登录集群所在的各个节点上进行手动删除,手动删除步骤如下。
-
在集群的每个节点上下载并自动安装bkeadm。
curl -sfL https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/bkeadm/releases/download/v25.06/download.sh | bash
-
执行配置初始化。
bke reset --all --mount
-
删除BKE文件。
which bke | xargs rm -rf
操作步骤
-
在“集群生命周期管理”列表界面,单击“操作”列的
,选择“删除”。
-
弹窗勾选“以了解此次删除为深度删除,不可撤销。”。
-
单击“删除”,界面提示“删除中,时间较长请耐心等待”,“状态”列显示为“删除中”。
-
待列表信息的该集群信息已清除,表示完成对应集群的删除操作。
说明:
删除时间一般在10到20分钟,具体时间视具体网络情况来定。
升级集群
前提条件
集群生命周期管理列表界面已存在创建好的集群。
背景信息
在集群生命周期管理页面上进行业务集群的K8s原地升级。
使用限制
-
只支持K8s版本向更高版本升级,不支持K8s版本的回退。
-
当前版本默认安装的K8s版本为v1.28.8,支持升级至v1.29.1。
注意事项
-
升级属于不可逆操作,请谨慎操作。
-
升级集群时,需确保集群处于健康状态。升级过程中不建议对集群进行任何操作。
-
升级为原地升级,在升级过程中业务暂不可用。
操作步骤
-
入口一:在“集群生命周期管理”列表界面,单击“操作”列的
,选择“升级”。
入口二:在“集群详情”界面右上角,单击“升级集群”。
-
弹出“升级集群”窗口,下拉框“选择升级版本”。
-
确认信息无误,单击“确定”。自动返回列表界面且“状态”列显示“升级中”,待“状态”列更新完毕则完成集群升级。
完成升级操作后,可在集群列表界面的“Kubernetes版本”中看到目前集群的最新K8s版本。
扩容集群
前提条件
已经在集群生命周期管理页面上完成对业务集群的成功创建,且集群的状态为“健康”状态。
背景信息
在集群生命周期管理页面上进行业务集群的扩容。
使用限制
集群扩容时,用户需要确保使用的节点是未使用的。且扩容时,只能添加node节点。
操作步骤
- 在“集群生命周期管理”列表界面单击任意一个“集群名称”,进入“节点详情”界面。
说明:
节点详情界面的节点列表信息按照Master节点在前,Worker节点在后的顺序排列。
- 在列表信息的右上方单击“+ 新增节点”。
说明:
设置的新增节点均为Worker节点。
- 弹窗填写相关信息,如“节点名称”、“端口号”、“IP地址”、“用户名”以及“密码”。
-
单击
可继续增加节点。
-
单击“操作”列的
可删除已添加的节点。
-
完成后,单击“下一步”。
-
界面弹出“集群信息”的窗口,滚动完成后单击“确定”,返回集群生命周期管理列表界面,并且对应集群的“状态”列为“安装中”。
-
对应集群的“状态”列更新完毕,完成集群扩容。
- 扩容失败:对应集群的“状态”列为“安装失败”。
- 扩容成功:对应集群的“状态”列为“健康”。
说明:
在未扩容成功时,集群没有稳定,请勿对集群进行其他操作。
缩容集群
前提条件
已经在集群生命周期管理页面上完成对业务集群的成功创建,且集群的状态为“健康”状态。
背景信息
在集群生命周期管理页面上进行业务集群的缩容。
使用限制
进行集群缩容时,只支持删除Worker节点,且删除该节点后将无法恢复,请谨慎操作。
操作步骤
-
在“集群生命周期管理”列表界面单击任意一个“集群名称”,进入“节点详情”界面。
-
选择删除方式。
- 批量删除
-
单击“节点名称”前的复选框,勾选需要删除的节点。
-
单击列表上方的“删除”。
- 单个删除
-
勾选需要删除的节点。
-
单击“操作”列的
图标。
-
弹窗勾选“已了解此次删除不可撤销”。
-
单击弹窗中的“删除” ,完成所选节点的删除操作。
状态说明
在进行集群操作(安装、扩容、升级)的过程中 页面上集群“状态”栏显示的状态变化说明。
安装
安装过程中整个状态流程的变化如下:
-
集群只有1个worker节点时,整个状态变化为:安装中、异常、健康。
-
集群有多个worker节点时,整个状态变化为:安装中、扩容中、异常、健康。
扩容
集群扩容时,整个状态变化为:安装中、扩容中、异常、健康。
升级
集群升级时,整个状态变化为:升级中、异常、健康。
各个“状态”执行的实际动作
表 2 状态及其说明
状态 | 说明 |
---|---|
安装中 | 节点环境准备、ClusterAPI对接、集群证书创建、集群入口配置、 Master节点初始化及加入。 |
扩容中 | Worker节点加入集群。 |
升级中 | Master、Worker节点升级。 |
异常 | 在安装、扩容、升级过程中进行了集群健康检查,Pod未全部就绪。 |
健康 | 集群处于健康状态。 |