CN114584559A - 一种实现声明式管理容器云的方法及装置 - Google Patents

一种实现声明式管理容器云的方法及装置 Download PDF

Info

Publication number
CN114584559A
CN114584559A CN202210221858.5A CN202210221858A CN114584559A CN 114584559 A CN114584559 A CN 114584559A CN 202210221858 A CN202210221858 A CN 202210221858A CN 114584559 A CN114584559 A CN 114584559A
Authority
CN
China
Prior art keywords
node
cluster
resources
container cloud
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210221858.5A
Other languages
English (en)
Inventor
马韬越
蔡卫卫
高传集
王文岗
石光银
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202210221858.5A priority Critical patent/CN114584559A/zh
Publication of CN114584559A publication Critical patent/CN114584559A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及云计算技术领域,具体为一种实现声明式管理容器云的方法及装置,包括组件模型、集群控制器和节点控制器,有益效果为:通过加入自动化管理多节点容器云全生命周期解决运维难操作复杂的问题,声明式的定义容器云的形态可以统一运维语言,简化人工操作;分布式的执行策略,减少管理容器云的时间,提高效率;支持容器云多重动作失败后自动重试能提供高可用能力。

Description

一种实现声明式管理容器云的方法及装置
技术领域
本发明涉及云计算技术领域,具体为一种实现声明式管理容器云的方法及装置。
背景技术
近些年来,kubernetes作为先进的容器编排系统,得到了快速的发展,并在云计算云服务领域得到了广泛的应用,随着各种私有云,政务云的发展,如何在快速合理的部署、管理容器云集群变得越来越重要。
对于需求人员,更多的是关心容器云最后的形态,不关心过程目前在管理容器云应用的过程中存在部署和管理太过于复杂,对于需求方不友好的问题同时对操作人员的技术和经验提出了很高的要求,例如手动部署Kubernetes的效率太低,且对操作人员要求很高,kubeAdmin的部署方式,缺乏集群高可用模式。因此在大规模非容器应用环境部署和管理过程中,传统的容器云的部署管理方式降低了工作效率。
发明内容
本发明的目的在于提供一种实现声明式管理容器云的方法及装置,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种实现声明式管理容器云的方法,该声明式管理容器云的方法主要设计包含以下步骤:
组件模型,基于Operater和Kubernetes的CRD技术设计容器云的声明资源;
集群控制器,集群控制器是由集群启动器执行创建命令,以声明资源创建Kubernetes集群,在集群初始化后以高可用的方式将集群控制器部署在控制节点,同时进行集群的部署和监听功能;
节点控制器,在集群初始化后以高可用的方式将节点控制器部署在控制节点,通过容器云当前节点的实体的状态辨别动作类别:扩容、缩容、角色转换;
通过不同的逻辑树处理相应功能。
优选的,所述声明资源包括:集群资源、节点资源和升级资源,所述集群资源内部包含集群当前的期望参数、集群运行状态、版本、镜像仓库域名与端口、集群VIP、当前状态、期望状态等。
优选的,所述节点资源内部包含当前节点的IP地址、节点名称、节点状态、节点标签、当前状态、期望状态,通过对该资源的创建与修改触发扩容、缩容、节点转换等动作。
优选的,所述升级资源内部包含容器云目标版本、容器云配置参数、容器云需升级组件信息、当前状态、期望状态。
优选的,所述集群控制器将集群CRD资源注册进Kubernetes集群内部,监听容器云资源的变更,集群控制器通过Kube-Apiserver的注册监听机制,发现容器云资源的变化时,解析相应的资源类型以不同的逻辑模型处理容器云集群的差异化动作,集群控制器利用Kubernetes上的Job机制并集成了Ansible的能力,可以高并发的执行多节点任务。
优选的,所述节点控制器将节点CRD资源注册进Kubernetes集群内部,监听节点资源的变更,节点控制器还包括自检模块和重试模块,所述自检模块在运行过程中会对Kubernetes的node资源进行监控,并根据监控的结果反馈到节点资源的状态上,当前动作因某种原因失败后,节点控制器内置的重试模块监测到动作失败状态会自动触发重试机制,且重试触发时间会随着次数进行权重叠加延长执行时间。
优选的,所述节点控制器在通过容器云当前节点的实体的状态辨别动作类别后的处理功能包括:
在监听到扩容节点的创建时,进行集群节点的扩容动作触发,逻辑执行完毕后,将扩容节点添加到集群内部
在监听到某节点的删除时,进行集群节点的缩容动作触发,逻辑执行完毕后,将缩容节从集群内部删除
在监听到某个子节点标签改变时,由控制节点转为工作节点,或者由工作节点转为控制节点,便执行角色转换功能,完成节点的标签以及功能的转变。
优选的,所述集群启动器在控制节点,根据准备好的声明式的集群资源和节点资源进行集群的部署功能;
集群控制器监听到集群版本的向上迭代时,触发升级动作,利用job与Ansiable的功能进行集群的升级动作处理;
集群控制器监听到集群资源被删除时,进行删除逻辑处理,在集群之外拉起一个临时的集群将所有数据同步到这个临时集群上,通过这个临时集群把原有集群删除掉,最后将临时集群进行自我删除,完成动作。
优选的,所述集群控制器还包括节点规避策略和动作重试策略,
节点规避策略,当集群触发动作后,会优先检测各节点当前状态,如果发现存在部分节点处于无响应或者不可达状态,则标记该节点为异常状态,跳过此节点动作,待该节点经处理复原后,再依次执行动作逻辑;
动作重试策略,当容器云集群在触发动作后,因各种异常原因导致动作执行失败,会提示运维人员进行确认修复,等到运维人员进行完异常排错后,此时集群会按照时间叠加的方式进行动作的重试,直至上一个动作完成。
一种实现声明式管理容器云的装置,包括上述的组件模型、集群控制器和节点控制器。
与现有技术相比,本发明的有益效果是:
本发明通过加入自动化管理多节点容器云全生命周期解决运维难操作复杂的问题,声明式的定义容器云的形态可以统一运维语言,简化人工操作;分布式的执行策略,减少管理容器云的时间,提高效率;支持容器云多重动作失败后自动重试能提供高可用能力
附图说明
图1为本发明的集群控制器设计系统框图;
图2为本发明的节点控制器设计系统框图;
图3为本发明的集群部署流程图;
图4为本发明的节点扩容流程图;
图5为本发明的节点缩容流程图;
图6为本发明的节点角色转换流程图;
图7为本发明的集群升级流程图;
图8为本发明的集群删除流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1至图8,本发明提供一种技术方案:
一种实现声明式管理容器云的方法,该声明式管理容器云的方法主要设计包含以下步骤:
S1:基于Operater和Kubernetes的CRD技术设计容器云的声明资源;
S2:集群控制器是由集群启动器执行创建命令,以声明资源创建Kubernetes集群,在集群初始化后以高可用的方式将集群控制器部署在控制节点,同时进行集群的部署和监听功能;
S3:在集群初始化后以高可用的方式将节点控制器部署在控制节点,通过容器云当前节点的实体的状态辨别动作类别:扩容、缩容、角色转换;
S4:通过不同的逻辑树处理相应功能。
本发明提出了一种实现声明式管理容器云的方法,该声明式管理容器云的方法主要设计为:
设计多种容器云资源数据模型具体包括:容器云集群模型资源、容器云节点模型资源、容器云升级模型资源设计一套管理此类资源的管理模型设计适配该种管理模型的架构,主要分为集群资源控制器节点资源控制器。
控制器负责解析容器云模型的资源文件并执行相应逻辑处理,控制器在控制节点监听容器云资源的变更,通过内部的策略簇对资源变更不同部分进行解析,同时执行差异化动作目前容器云管理部分的动作分为:部署、扩容、缩容、角色转换、升级和删除六个动作,在动作执行期间操作人员可以调用控制器的相关命令查看当前容器云的进度与日志。
在进行组件模型设计中:
声明资源包括:集群资源、节点资源和升级资源。
集群资源内部包含集群当前的期望参数、集群运行状态、版本、镜像仓库域名与端口、集群VIP、当前状态、期望状态等。
节点资源内部包含当前节点的IP地址、节点名称、节点状态、节点标签、当前状态、期望状态,通过对该资源的创建与修改触发扩容、缩容、节点转换等动作。
升级资源内部包含容器云目标版本、容器云配置参数、容器云需升级组件信息、当前状态、期望状态。
在进行集群控制器设计中:
集群控制器将集群CRD资源注册进Kubernetes集群内部,监听容器云资源的变更,集群控制器通过Kube-Apiserver的注册监听机制,发现容器云资源的变化时,解析相应的资源类型以不同的逻辑模型处理容器云集群的差异化动作;
集群控制器利用Kubernetes上的Job机制并集成了Ansible的能力,可以高并发的执行多节点任务。
在进行节点控制器设计中:
节点控制器将节点CRD资源注册进Kubernetes集群内部,监听节点资源的变更;
节点控制器还包括自检模块和重试模块;
自检模块在运行过程中会对Kubernetes的node资源进行监控并根据监控的结果反馈到节点资源的状态上;
当前动作因某种原因失败后,节点控制器内置的重试模块监测到动作失败状态会自动触发重试机制且重试触发时间会随着次数进行权重叠加延长执行时间。
执行差异化动作目前容器云管理部分的动作分为:部署、扩容、缩容、角色转换、升级和删除六个动作:
集群部署,集群启动器在控制节点根据准备好的声明式的集群资源和节点资源进行集群的部署功能;
节点扩容,在监听到扩容节点的创建时进行集群节点的扩容动作触发逻辑执行完毕后将扩容节点添加到集群内部;
节点缩容,在监听到某节点的删除时进行集群节点的缩容动作触发逻辑执行完毕后将缩容节从集群内部删除;
节点角色转换,节点控制器监听到某个子节点标签改变时由控制节点转为工作节点或者由工作节点转为控制节点便执行角色转换功能完成节点的标签以及功能的转变;
集群升级,集群控制器监听到集群版本的向上迭代时触发升级动作利用job与Ansiable的功能进行集群的升级动作处理;
集群删除,集群控制器监听到集群资源被删除时,进行删除逻辑处理,在集群之外拉起一个临时的集群将有数据同步到这个临时集群上,通过这个临时集群把原有集群删除掉,最后将临时集群进行自我删除,完成动作。
集群控制器还包括节点规避策略和动作重试策略:
节点规避策略,当集群触发动作后,会优先检测各节点当前状态,如果发现存在部分节点处于无响应或者不可达状态,则标记该节点为异常状态,跳过此节点动作,待该节点经处理复原后,再依次执行动作逻辑;
动作重试策略,当容器云集群在触发动作后,因各种异常原因导致动作执行失败,会提示运维人员进行确认修复,等到运维人员进行完异常排错后,此时集群会按照时间叠加的方式进行动作的重试,直至上一个动作完成。
一种实现声明式管理容器云的装置,包括上的组件模型、集群控制器和节点控制器。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (10)

1.一种实现声明式管理容器云的方法,其特征在于:该声明式管理容器云的方法主要设计包含以下步骤:
组件模型,基于Operater和Kubernetes的CRD技术设计容器云的声明资源;
集群控制器,集群控制器是由集群启动器执行创建命令,以声明资源创建Kubernetes集群,在集群初始化后以高可用的方式将集群控制器部署在控制节点,同时进行集群的部署、升级、删除和监听功能;
节点控制器,在集群初始化后以高可用的方式将节点控制器部署在控制节点,通过容器云当前节点的实体的状态辨别动作类别:扩容、缩容、角色转换;
通过不同的逻辑树处理相应功能。
2.根据权利要求1所述的一种实现声明式管理容器云的方法,其特征在于:所述声明资源包括:集群资源、节点资源和升级资源,所述集群资源内部包含集群当前的期望参数、集群运行状态、版本、镜像仓库域名与端口、集群VIP、当前状态、期望状态等。
3.根据权利要求2所述的一种实现声明式管理容器云的方法,其特征在于:所述节点资源内部包含当前节点的IP地址、节点名称、节点状态、节点标签、当前状态、期望状态,通过对该资源的创建与修改触发扩容、缩容、节点转换等动作。
4.根据权利要求2所述的一种实现声明式管理容器云的方法,其特征在于:所述升级资源内部包含容器云目标版本、容器云配置参数、容器云需升级组件信息、当前状态、期望状态。
5.根据权利要求1所述的一种实现声明式管理容器云的方法,其特征在于:所述集群控制器将集群CRD资源注册进Kubernetes集群内部,监听容器云资源的变更,集群控制器通过Kube-Apiserver的注册监听机制,发现容器云资源的变化时,解析相应的资源类型以不同的逻辑模型处理容器云集群的差异化动作,集群控制器利用Kubernetes上的Job机制并集成了Ansible的能力,可以高并发的执行多节点任务。
6.根据权利要求1所述的一种实现声明式管理容器云的方法,其特征在于:所述节点控制器将节点CRD资源注册进Kubernetes集群内部,监听节点资源的变更,节点控制器还包括自检模块和重试模块,所述自检模块在运行过程中会对Kubernetes的node资源进行监控,并根据监控的结果反馈到节点资源的状态上,当前动作因某种原因失败后,节点控制器内置的重试模块监测到动作失败状态会自动触发重试机制,且重试触发时间会随着次数进行权重叠加延长执行时间。
7.根据权利要求1所述的一种实现声明式管理容器云的方法,其特征在于:所述节点控制器在通过容器云当前节点的实体的状态辨别动作类别后的处理功能包括:
在监听到扩容节点的创建时,进行集群节点的扩容动作触发,逻辑执行完毕后,将扩容节点添加到集群内部
在监听到某节点的删除时,进行集群节点的缩容动作触发,逻辑执行完毕后,将缩容节从集群内部删除
节点控制器监听到某个子节点标签改变时,由控制节点转为工作节点,或者由工作节点转为控制节点,便执行角色转换功能,完成节点的标签以及功能的转变。
8.根据权利要求1所述的一种实现声明式管理容器云的方法,其特征在于:所述集群启动器在控制节点,根据准备好的声明式的集群资源和节点资源进行集群的部署功能;
集群控制器监听到集群版本的向上迭代时,触发升级动作,利用job与Ansiable的功能进行集群的升级动作处理;
集群控制器监听到集群资源被删除时,进行删除逻辑处理,在集群之外拉起一个临时的集群将所有数据同步到这个临时集群上,通过这个临时集群把原有集群删除掉,最后将临时集群进行自我删除,完成动作。
9.根据权利要求8所述的一种实现声明式管理容器云的方法,其特征在于:所述集群控制器还包括节点规避策略和动作重试策略,
节点规避策略,当集群触发动作后,会优先检测各节点当前状态,如果发现存在部分节点处于无响应或者不可达状态,则标记该节点为异常状态,跳过此节点动作,待该节点经处理复原后,再依次执行动作逻辑;
动作重试策略,当容器云集群在触发动作后,因各种异常原因导致动作执行失败,会提示运维人员进行确认修复,等到运维人员进行完异常排错后,此时集群会按照时间叠加的方式进行动作的重试,直至上一个动作完成。
10.一种实现声明式管理容器云的装置,其特征在于:包括权利要求1-9中任意一项所述的组件模型、集群控制器和节点控制器。
CN202210221858.5A 2022-03-07 2022-03-07 一种实现声明式管理容器云的方法及装置 Pending CN114584559A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210221858.5A CN114584559A (zh) 2022-03-07 2022-03-07 一种实现声明式管理容器云的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210221858.5A CN114584559A (zh) 2022-03-07 2022-03-07 一种实现声明式管理容器云的方法及装置

Publications (1)

Publication Number Publication Date
CN114584559A true CN114584559A (zh) 2022-06-03

Family

ID=81772737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210221858.5A Pending CN114584559A (zh) 2022-03-07 2022-03-07 一种实现声明式管理容器云的方法及装置

Country Status (1)

Country Link
CN (1) CN114584559A (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628613A (zh) * 2018-05-02 2018-10-09 山东汇贸电子口岸有限公司 基于国产cpu和os的容器集群有状态服务的实现方法
CN112015593A (zh) * 2020-08-27 2020-12-01 北京浪潮数据技术有限公司 Kubernetes集群的容灾备份方法及相关组件
CN112099989A (zh) * 2020-08-28 2020-12-18 中国—东盟信息港股份有限公司 一种Kubernetes云原生应用灾备、迁移与恢复的方法
CN112269640A (zh) * 2020-11-02 2021-01-26 浪潮云信息技术股份公司 一种实现容器云组件的生命周期管理的方法
WO2021150307A1 (en) * 2020-01-20 2021-07-29 Oracle International Corporation Techniques for deploying infrastructure resources with a declarative provisioning tool
CN113220416A (zh) * 2021-04-28 2021-08-06 烽火通信科技股份有限公司 基于云平台的集群节点伸缩系统及实现方法和运行方法
CN113326107A (zh) * 2020-02-28 2021-08-31 中科星图股份有限公司 一种基于Kubernetes集群周期性任务调度的方法及电子设备
CN113742033A (zh) * 2021-09-08 2021-12-03 广西东信数建信息科技有限公司 一种kubernetes集群联邦系统及其实现方法
CN113900767A (zh) * 2020-06-22 2022-01-07 慧与发展有限责任合伙企业 监测集群和实施自动缩放策略的容器即服务控制器
US20220050674A1 (en) * 2020-08-17 2022-02-17 Salesforce.Com, Inc. Tenant declarative deployments with release staggering

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628613A (zh) * 2018-05-02 2018-10-09 山东汇贸电子口岸有限公司 基于国产cpu和os的容器集群有状态服务的实现方法
WO2021150307A1 (en) * 2020-01-20 2021-07-29 Oracle International Corporation Techniques for deploying infrastructure resources with a declarative provisioning tool
CN113326107A (zh) * 2020-02-28 2021-08-31 中科星图股份有限公司 一种基于Kubernetes集群周期性任务调度的方法及电子设备
CN113900767A (zh) * 2020-06-22 2022-01-07 慧与发展有限责任合伙企业 监测集群和实施自动缩放策略的容器即服务控制器
US20220050674A1 (en) * 2020-08-17 2022-02-17 Salesforce.Com, Inc. Tenant declarative deployments with release staggering
CN112015593A (zh) * 2020-08-27 2020-12-01 北京浪潮数据技术有限公司 Kubernetes集群的容灾备份方法及相关组件
CN112099989A (zh) * 2020-08-28 2020-12-18 中国—东盟信息港股份有限公司 一种Kubernetes云原生应用灾备、迁移与恢复的方法
CN112269640A (zh) * 2020-11-02 2021-01-26 浪潮云信息技术股份公司 一种实现容器云组件的生命周期管理的方法
CN113220416A (zh) * 2021-04-28 2021-08-06 烽火通信科技股份有限公司 基于云平台的集群节点伸缩系统及实现方法和运行方法
CN113742033A (zh) * 2021-09-08 2021-12-03 广西东信数建信息科技有限公司 一种kubernetes集群联邦系统及其实现方法

Similar Documents

Publication Publication Date Title
CN101411123B (zh) 用于分布式数据处理系统端点上的集中式系统管理的方法、系统和计算机程序
CN109298868B (zh) 测绘影像数据处理软件智能动态部署及卸载方法
CN107566165B (zh) 一种发现及部署电力云数据中心可用资源的方法及系统
CN112269640B (zh) 一种实现容器云组件的生命周期管理的方法
US20080307258A1 (en) Distributed Job Manager Recovery
CN113569987A (zh) 模型训练方法和装置
CN112527349A (zh) 动态部署策略优化及持续部署业务保障系统
CN112667362B (zh) Kubernetes上部署Kubernetes虚拟机集群的方法与系统
CN111984274A (zh) 一种一键自动化部署etcd集群的方法及装置
CN114138754A (zh) 基于Kubernetes平台的软件部署方法及装置
CN113515316A (zh) 一种新型边缘云操作系统
CN111880738A (zh) 一种K8s环境自动化创建和挂载LVM卷的方法
CN104850449A (zh) 一种系统架构的实现方法,及装置
Yiran et al. Design and implementation of continuous integration scheme based on Jenkins and Ansible
CN115801799A (zh) 基于kubernetes多集群管理中间件生命周期的系统
CN116089027A (zh) 一种基于jvm的非阻塞分布式计划任务调度方法
CN112565416B (zh) 基于云原生的大规模边缘安卓设备纳管系统及其纳管方法
CN113835834A (zh) 一种基于k8s容器集群计算节点的扩容方法及系统
CN116643950B (zh) 一种基于FaaS的云原生应用自动化运维方法
CN110764785B (zh) 基于开源组件的电力行业云平台工具链及云平台运维方法
CN111917588A (zh) 边缘设备管理方法、装置、边缘网关设备和存储介质
CN114584559A (zh) 一种实现声明式管理容器云的方法及装置
CN116107694A (zh) k8s子集群的部署方法、装置及存储介质
CN106250266B (zh) 一种系统的修复方法及装置
CN116069358A (zh) 分布式数据库中数据的升级方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination