CN111176788B - Kubernetes集群的主节点的部署方法及系统 - Google Patents

Kubernetes集群的主节点的部署方法及系统 Download PDF

Info

Publication number
CN111176788B
CN111176788B CN201911345033.9A CN201911345033A CN111176788B CN 111176788 B CN111176788 B CN 111176788B CN 201911345033 A CN201911345033 A CN 201911345033A CN 111176788 B CN111176788 B CN 111176788B
Authority
CN
China
Prior art keywords
network
pod
deployment
space
container
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.)
Active
Application number
CN201911345033.9A
Other languages
English (en)
Other versions
CN111176788A (zh
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.)
Ucloud Technology Co ltd
Original Assignee
Ucloud 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 Ucloud Technology Co ltd filed Critical Ucloud Technology Co ltd
Priority to CN201911345033.9A priority Critical patent/CN111176788B/zh
Publication of CN111176788A publication Critical patent/CN111176788A/zh
Application granted granted Critical
Publication of CN111176788B publication Critical patent/CN111176788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

本发明公开了一种Kubernetes集群的主节点的部署方法及系统,基于根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,和获取的主节点的网卡信息,生成一个Deployment实例,并发布到Kubernetes集群中,根据Deployment实例生成主节点的容器组Pod以及Pod下的容器,在Pod的共享网络命名空间中添加网卡信息,完成主节点的部署。本发明中Kubernetes集群的主节点的各个容器共享一个网络命名空间,并能够在该共享网络命名空间中通信,因此,各个容器之间无需跨服务器通信,从而提高了主节点各个容器之间的通信性能,进而提高了主节点的稳定性。

Description

Kubernetes集群的主节点的部署方法及系统
技术领域
本发明涉及计算机技术领域,更具体的说,涉及一种Kubernetes集群的主节点的部署方法及系统。
背景技术
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩和应用容器化管理。Kubernetes集群的主节点主要用来对Kubernetes集群做出全局性决策(例如,调度),检测和响应Kubernetes集群事件。Kubernetes集群的主节点由kube-scheduler、kube-controller-manager和kube-apiserver三个容器组成,三个容器可以是以进程服务的方式启动,也可以以容器的方式启动。
目前,为方便管理多个Kubernetes集群的主节点,通常将各个Kubernetes集群的主节点放到一个新建Kubernetes集群中,通过为各个主节点所在容器设置双网卡进行管理,其中一个网卡在新建Kubernetes集群管理各个主节点时使用,另一个网卡是在新建Kubernetes集群中的主节点与对应的从节点通信时使用。
现有方案将Kubernetes集群的主节点的三个容器分别独立进行部署。由于三个容器之间网络通信非常频繁,若将三个容器分别部署在不同的服务器上,则容器之间的通信就会跨服务器,导致三个容器之间的网络通信出现延时,网络通信的吞吐量降低,因此,导致主节点管理的容器集群的性能比较差。同时由于主节点的各个容器可能分布在不同的服务器上,因此,任何一个容器故障都会影响主节点的稳定性。
发明内容
有鉴于此,本发明公开一种Kubernetes集群的主节点的部署方法及系统,以实现Kubernetes集群的主节点的各个容器共享一个网络命名空间,并能够在该共享网络命名空间中通信,因此,各个容器之间无需跨服务器通信,从而提高了主节点各个容器之间的通信性能,进而提高了主节点的稳定性。
一种Kubernetes集群的主节点的部署方法,包括:
根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板;
获取所述主节点的网卡信息,所述网卡信息包括:IP地址和MAC地址以及网关;
基于建立的所述发布模板和所述网卡信息,生成一个Deployment实例;
将所述Deployment实例发布到所述Kubernetes集群中,并在所述Kubernetes集群根据所述Deployment实例生成所述主节点的容器组Pod以及所述Pod下的容器;
当所述Pod以及所述Pod下的容器创建成功后,在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
可选的,所述根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,具体包括:
基于YAML格式将所述主节点的三个容器放在一个Deployment类型的原始发布模板中;
基于不同Kubernetes集群的主节点的通用参数,将所述原始发布模板中与所述通用参数对应的参数用预设变量进行替换,得到所述发布模板。
可选的,所述基于建立的所述发布模板和所述网卡信息,生成一个Deployment实例,具体包括:
获取所述发布模板的目标变量,其中,所述目标变量包括:IP地址、MAC地址、网关、掩码信息、资源ID、集群ID和容器镜像地址;
将所述发布模板中与所述目标变量对应的变量,替换成所述目标变量,生成所述Deployment实例。
可选的,所述将所述Deployment实例发布到所述Kubernetes集群中,并在所述Kubernetes集群根据所述Deployment实例生成所述主节点的容器组Pod以及所述Pod下的容器,具体包括:
将所述Deployment实例发布到所述Kubernetes集群中,根据所述Deployment实例的YAML配置文件,通过kubectl命令在所述Kubernetes集群中创建目标Deployment实例;
根据所述目标Deployment实例的配置生成对应的所述Pod以及所述Pod下的容器。
可选的,所述当所述Pod以及所述Pod下的容器创建成功后,在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署,具体包括:
当所述Pod以及所述Pod下的容器创建成功后,获取所述Pod中用于分配网络的目标容器,记为第一目标容器;
获取所述第一目标容器的网络空间ID,记为第一网络空间ID;
根据所述第一网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
可选的,所述部署方法还包括:
当所述主节点发生主节点漂移时,重新为所述共享网络命名空间添加所述网络信息。
可选的,所述当所述主节点发生主节点漂移时,重新为所述共享网络命名空间添加所述网络信息,具体包括:
当所述主节点发生主节点漂移时,重新获取所述Pod中用于分配网络的目标容器,记为第二目标容器;
获取所述第二目标容器的网络空间ID,记为第二网络空间ID;
根据所述第二网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
可选的,所述部署方法还包括:
当需要删除所述Kubernetes集群时,释放所述共享网络命名空间中的所述网卡信息。
可选的,所述当需要删除所述Kubernetes集群时,释放所述共享网络命名空间中的所述网卡信息,具体包括:
当所述Kubernetes集群的主节点发生主节点漂移时,获取所述Pod中用于分配网络的目标容器,记为第三目标容器;
获取所述第三目标容器的网络空间ID,记为第三网络空间ID;
根据所述第三网络空间ID通过IP命令从所述共享网络命名空间中释放所述网卡信息;
调用IP管理服务,删除所述网卡信息。
一种Kubernetes集群的主节点的部署系统,包括:
模板建立单元,用于根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板;
获取单元,用于获取所述主节点的网卡信息,所述网卡信息包括:IP地址和MAC地址以及网关;
第一生成单元,用于基于建立的所述发布模板和所述网卡信息,生成一个Deployment实例;
第二生成单元,用于将所述Deployment实例发布到所述Kubernetes集群中,并在所述Kubernetes集群根据所述Deployment实例生成所述主节点的容器组Pod以及所述Pod下的容器;
添加单元,用于当所述Pod以及所述Pod下的容器创建成功后,在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
可选的,所述模板建立单元具体用于:
基于YAML格式将所述主节点的三个容器放在一个Deployment类型的原始发布模板中;
基于不同Kubernetes集群的主节点的通用参数,将所述原始发布模板中与所述通用参数对应的参数用预设变量进行替换,得到所述发布模板。
可选的,所述第一生成单元具体用于:
获取所述发布模板的目标变量,其中,所述目标变量包括:IP地址、MAC地址、网关、掩码信息、资源ID、集群ID和容器镜像地址;
将所述发布模板中与所述目标变量对应的变量,替换成所述目标变量,生成所述Deployment实例。
可选的,所述第二生成单元具体用于:
将所述Deployment实例发布到所述Kubernetes集群中,根据所述Deployment实例的YAML配置文件,通过kubectl命令在所述Kubernetes集群中创建目标Deployment实例;
根据所述目标Deployment实例的配置生成对应的所述Pod以及所述Pod下的容器。
可选的,所述添加单元具体用于:
当所述Pod以及所述Pod下的容器创建成功后,获取所述Pod中用于分配网络的目标容器,记为第一目标容器;
获取所述第一目标容器的网络空间ID,记为第一网络空间ID;
根据所述第一网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
可选的,所述部署系统还包括:
重新添加单元,用于当所述主节点发生主节点漂移时,重新为所述共享网络命名空间添加所述网络信息。
可选的,所述重新添加单元具体用于:
当所述主节点发生主节点漂移时,重新获取所述Pod中用于分配网络的目标容器,记为第二目标容器;
获取所述第二目标容器的网络空间ID,记为第二网络空间ID;
根据所述第二网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
可选的,所述部署系统还包括:
释放单元,用于当需要删除所述Kubernetes集群时,释放所述共享网络命名空间中的所述网卡信息。
可选的,所述释放单元具体用于:
当所述Kubernetes集群的主节点发生主节点漂移时,获取所述Pod中用于分配网络的目标容器,记为第三目标容器;
获取所述第三目标容器的网络空间ID,记为第三网络空间ID;
根据所述第三网络空间ID通过IP命令从所述共享网络命名空间中释放所述网卡信息;
调用IP管理服务,删除所述网卡信息。
从上述的技术方案可知,本发明公开的Kubernetes集群的主节点的部署方法及系统,根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,并获取主节点的网卡信息,基于网卡信息和建立的发布模板,生成一个Deployment实例,将Deployment实例发布到Kubernetes集群中,并在Kubernetes集群根据Deployment实例生成主节点的容器组Pod以及Pod下的容器,当Pod以及Pod下的容器创建成功后,在Pod的共享网络命名空间中添加网卡信息,完成主节点的部署。本发明中Kubernetes集群的主节点的各个容器共享一个网络命名空间,并能够在该共享网络命名空间中通信,因此,各个容器之间无需跨服务器通信,从而提高了主节点各个容器之间的通信性能,进而提高了主节点的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本发明实施例公开的一种Kubernetes集群的主节点的部署方法流程图;
图2为本发明实施例公开的一种Kubernetes集群的主节点的部署系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种Kubernetes集群的主节点的部署方法及系统,根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,并获取主节点的网卡信息,基于网卡信息和建立的发布模板,生成一个Deployment实例,将Deployment实例发布到Kubernetes集群中,并在Kubernetes集群根据Deployment实例生成主节点的容器组Pod以及Pod下的容器,当Pod以及Pod下的容器创建成功后,在Pod的共享网络命名空间中添加网卡信息,完成主节点的部署。本发明中Kubernetes集群的主节点的各个容器共享一个网络命名空间,并能够在该共享网络命名空间中通信,因此,各个容器之间无需跨服务器通信,从而提高了主节点各个容器之间的通信性能,进而提高了主节点的稳定性。
参见图1,本发明一实施例公开的一种Kubernetes集群的主节点的部署方法流程图,该方法包括步骤:
步骤S101、根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板;
需要说明的是,Kubernetes集群的主节点由kube-scheduler、kube-controller-manager和kube-apiserver三个容器组成。
Deployment(部署)用于管理无状态应用,主要面向集群管理。
其中,步骤S101具体包括:
基于YAML(一种标记语言)格式将Kubernetes集群的主节点的三个容器放在一个Deployment类型的原始发布模板中;
基于不同Kubernetes集群的主节点的通用参数,将所述原始发布模板中与所述通用参数对应的参数用预设变量进行替换,得到所述Deployment类型的发布模板。
需要说明的是,本实施例中的发布模板是一个YAML格式模板。
步骤S102、获取所述主节点的网卡信息;
其中,网卡信息包括:IP地址、MAC地址(Media Access Control Address)以及网关。
在实际应用中,可以通过管理IP分配的服务上通过调用http的API(ApplicationProgramming Interface,应用程序接口)申请主节点的网卡信息。
步骤S103、基于建立的所述发布模板和所述网卡信息,生成一个Deployment实例;
具体的,获取所述发布模板的目标变量,其中,目标变量包括:IP地址、MAC地址、网关、掩码信息、资源ID、集群ID和容器镜像地址;
将所述发布模板中与所述目标变量对应的变量,替换成所述目标变量,生成所述Deployment实例。
步骤S104、将所述Deployment实例发布到所述Kubernetes集群中,并在所述Kubernetes集群根据所述Deployment实例生成所述主节点的容器组Pod以及所述Pod下的容器;
其中,Pod是由多个容器组成的容器组,其是可以创建和管理Kubernetes计算的最小可部署单元。一个Pod代表着集群中运行的一个进程。
具体的,将所述Deployment实例发布到所述Kubernetes集群中,根据所述Deployment实例的YAML配置文件,通过kubectl命令在所述Kubernetes集群中创建目标Deployment实例;
根据所述目标Deployment实例的配置生成对应的Pod以及所述Pod下的容器。
步骤S105、当所述Pod以及所述Pod下的容器创建成功后,在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
具体的,当所述Pod以及所述Pod下的容器创建成功后,获取所述Pod中用于分配网络的目标容器,记为第一目标容器;
获取所述第一目标容器的网络空间ID,记为第一网络空间ID;
根据所述第一网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
综上可知,本发明公开的Kubernetes集群的主节点的部署方法,根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,并获取主节点的网卡信息,基于网卡信息和建立的发布模板,生成一个Deployment实例,将Deployment实例发布到Kubernetes集群中,并在Kubernetes集群根据Deployment实例生成主节点的容器组Pod以及Pod下的容器,当Pod以及Pod下的容器创建成功后,在Pod的共享网络命名空间中添加网卡信息,完成主节点的部署。本发明中Kubernetes集群的主节点的各个容器共享一个网络命名空间,并能够在该共享网络命名空间中通信,因此,各个容器之间无需跨服务器通信,从而提高了主节点各个容器之间的通信性能,进而提高了主节点的稳定性。
另外,由于Kubernetes集群的主节点的各个容器共享一个网络命名空间,从而省去了将三个容器分别部署在不同的服务器上的繁琐操作,因此可以实现快速进行主节点部署。
Kubernetes集群的主节点漂移指的是:在某个主节点不可用的情况下,系统会自动启动一个新的主节点来替代不可用的主节点。
一般当Kubernetes集群的主节点所在的宿主机宕机时,会发生主节点漂移。当主节点漂移时,漂移的主节点的网卡信息会丢失。
因此,为进一步优化上述实施例,Kubernetes集群的主节点的部署方法还可以包括:
当所述主节点发生主节点漂移时,重新为所述共享网络命名空间添加所述网络信息。
具体的,当所述主节点发生主节点漂移时,重新获取所述Pod中用于分配网络的目标容器,记为第二目标容器;
获取所述第二目标容器的网络空间ID,记为第二网络空间ID;
根据所述第二网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
为进一步优化上述实施例,Kubernetes集群的主节点的部署方法还可以包括:
当需要删除所述Kubernetes集群时,释放所述共享网络命名空间中的所述网卡信息。
具体的,当所述Kubernetes集群的主节点发生主节点漂移时,获取所述Pod中用于分配网络的目标容器,记为第三目标容器;
获取所述第三目标容器的网络空间ID,记为第三网络空间ID;
根据所述第三网络空间ID通过IP命令从所述共享网络命名空间中释放所述网卡信息;
调用IP管理服务,删除所述网卡信息。
综上可知,本发明公开的Kubernetes集群的主节点的部署方法,根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,并获取主节点的网卡信息,基于网卡信息和建立的发布模板,生成一个Deployment实例,将Deployment实例发布到Kubernetes集群中,并在Kubernetes集群根据Deployment实例生成主节点的容器组Pod以及Pod下的容器,当Pod以及Pod下的容器创建成功后,在Pod的共享网络命名空间中添加网卡信息,完成主节点的部署。本发明中Kubernetes集群的主节点的各个容器共享一个网络命名空间,并能够在该共享网络命名空间中通信,因此,各个容器之间无需跨服务器通信,从而提高了主节点各个容器之间的通信性能,进而提高了主节点的稳定性。
另外,由于Kubernetes集群的主节点的各个容器共享一个网络命名空间,从而省去了将三个容器分别部署在不同的服务器上的繁琐操作,因此可以实现快速进行主节点部署。
进一步,本发明还可以在主极点漂移时快速绑定网卡信息。
与上述方法实施例相对应,本发明还公开了一种Kubernetes集群的主节点的部署系统。
参见图2,本发明一实施例公开的一种Kubernetes集群的主节点的部署系统的结构示意图,该系统包括:
模板建立单元201,用于根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板;
需要说明的是,Kubernetes集群的主节点由kube-scheduler、kube-controller-manager和kube-apiserver三个容器组成。
Deployment(部署)用于管理无状态应用,主要面向集群管理。
其中,模板建立单元201具体用于:
基于YAML格式将所述主节点的三个容器放在一个Deployment类型的原始发布模板中;
基于不同Kubernetes集群的主节点的通用参数,将所述原始发布模板中与所述通用参数对应的参数用预设变量进行替换,得到所述发布模板。
获取单元202,用于获取所述主节点的网卡信息,所述网卡信息包括:IP地址和MAC地址以及网关;
其中,网卡信息包括:IP地址、MAC地址(Media Access Control Address)以及网关。
在实际应用中,可以通过管理IP分配的服务上通过调用http的API(ApplicationProgramming Interface,应用程序接口)申请主节点的网卡信息。
第一生成单元203,用于基于建立的所述发布模板和所述网卡信息,生成一个Deployment实例;
其中,第一生成单元203具体用于:
获取所述发布模板的目标变量,其中,所述目标变量包括:IP地址、MAC地址、网关、掩码信息、资源ID、集群ID和容器镜像地址;
将所述发布模板中与所述目标变量对应的变量,替换成所述目标变量,生成所述Deployment实例。
第二生成单元204,用于将所述Deployment实例发布到所述Kubernetes集群中,并在所述Kubernetes集群根据所述Deployment实例生成所述主节点的容器组Pod以及所述Pod下的容器;
其中,Pod是由多个容器组成的容器组,其是可以创建和管理Kubernetes计算的最小可部署单元。一个Pod代表着集群中运行的一个进程。
第二生成单元204具体用于:
将所述Deployment实例发布到所述Kubernetes集群中,根据所述Deployment实例的YAML配置文件,通过kubectl命令在所述Kubernetes集群中创建目标Deployment实例;
根据所述目标Deployment实例的配置生成对应的所述Pod以及所述Pod下的容器。
添加单元205,用于当所述Pod以及所述Pod下的容器创建成功后,在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
其中,添加单元205具体用于:
当所述Pod以及所述Pod下的容器创建成功后,获取所述Pod中用于分配网络的目标容器,记为第一目标容器;
获取所述第一目标容器的网络空间ID,记为第一网络空间ID;
根据所述第一网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
综上可知,本发明公开的Kubernetes集群的主节点的部署系统,根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,并获取主节点的网卡信息,基于网卡信息和建立的发布模板,生成一个Deployment实例,将Deployment实例发布到Kubernetes集群中,并在Kubernetes集群根据Deployment实例生成主节点的容器组Pod以及Pod下的容器,当Pod以及Pod下的容器创建成功后,在Pod的共享网络命名空间中添加网卡信息,完成主节点的部署。本发明中Kubernetes集群的主节点的各个容器共享一个网络命名空间,并能够在该共享网络命名空间中通信,因此,各个容器之间无需跨服务器通信,从而提高了主节点各个容器之间的通信性能,进而提高了主节点的稳定性。
另外,由于Kubernetes集群的主节点的各个容器共享一个网络命名空间,从而省去了将三个容器分别部署在不同的服务器上的繁琐操作,因此可以实现快速进行主节点部署。
Kubernetes集群的主节点漂移指的是:在某个主节点不可用的情况下,系统会自动启动一个新的主节点来替代不可用的主节点。
一般当Kubernetes集群的主节点所在的宿主机宕机时,会发生主节点漂移。当主节点漂移时,漂移的主节点的网卡信息会丢失。
因此,为进一步优化上述实施例,Kubernetes集群的主节点的部署系统还可以包括:
重新添加单元,用于当所述主节点发生主节点漂移时,重新为所述共享网络命名空间添加所述网络信息。
其中,重新添加单元具体用于:
当所述主节点发生主节点漂移时,重新获取所述Pod中用于分配网络的目标容器,记为第二目标容器;
获取所述第二目标容器的网络空间ID,记为第二网络空间ID;
根据所述第二网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
为进一步优化上述实施例,Kubernetes集群的主节点的部署系统还可以包括:
释放单元,用于当需要删除所述Kubernetes集群时,释放所述共享网络命名空间中的所述网卡信息。
其中,所述释放单元具体用于:
当所述Kubernetes集群的主节点发生主节点漂移时,获取所述Pod中用于分配网络的目标容器,记为第三目标容器;
获取所述第三目标容器的网络空间ID,记为第三网络空间ID;
根据所述第三网络空间ID通过IP命令从所述共享网络命名空间中释放所述网卡信息;
调用IP管理服务,删除所述网卡信息。
综上可知,本发明公开的Kubernetes集群的主节点的部署系统,根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,并获取主节点的网卡信息,基于网卡信息和建立的发布模板,生成一个Deployment实例,将Deployment实例发布到Kubernetes集群中,并在Kubernetes集群根据Deployment实例生成主节点的容器组Pod以及Pod下的容器,当Pod以及Pod下的容器创建成功后,在Pod的共享网络命名空间中添加网卡信息,完成主节点的部署。本发明中Kubernetes集群的主节点的各个容器共享一个网络命名空间,并能够在该共享网络命名空间中通信,因此,各个容器之间无需跨服务器通信,从而提高了主节点各个容器之间的通信性能,进而提高了主节点的稳定性。
另外,由于Kubernetes集群的主节点的各个容器共享一个网络命名空间,从而省去了将三个容器分别部署在不同的服务器上的繁琐操作,因此可以实现快速进行主节点部署。
进一步,本发明还可以在主极点漂移时快速绑定网卡信息。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (18)

1.一种Kubernetes集群的主节点的部署方法,其特征在于,包括:
根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,所述Kubernetes集群的主节点的三个容器包括kube-scheduler、kube-controller-manager和kube-apiserver;
获取所述主节点的网卡信息,所述网卡信息包括:IP地址和MAC地址以及网关;
基于建立的所述发布模板和所述网卡信息,生成一个Deployment实例;
将所述Deployment实例发布到所述Kubernetes集群中,并在所述Kubernetes集群根据所述Deployment实例生成所述主节点的容器组Pod以及所述Pod下的容器;
当所述Pod以及所述Pod下的容器创建成功后,在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
2.根据权利要求1所述的部署方法,其特征在于,所述根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,具体包括:
基于YAML格式将所述主节点的三个容器放在一个Deployment类型的原始发布模板中;
基于不同Kubernetes集群的主节点的通用参数,将所述原始发布模板中与所述通用参数对应的参数用预设变量进行替换,得到所述发布模板。
3.根据权利要求1所述的部署方法,其特征在于,所述基于建立的所述发布模板和所述网卡信息,生成一个Deployment实例,具体包括:
获取所述发布模板的目标变量,其中,所述目标变量包括:IP地址、MAC地址、网关、掩码信息、资源ID、集群ID和容器镜像地址;
将所述发布模板中与所述目标变量对应的变量,替换成所述目标变量,生成所述Deployment实例。
4.根据权利要求1所述的部署方法,其特征在于,所述将所述Deployment实例发布到所述Kubernetes集群中,并在所述Kubernetes集群根据所述Deployment实例生成所述主节点的容器组Pod以及所述Pod下的容器,具体包括:
将所述Deployment实例发布到所述Kubernetes集群中,根据所述Deployment实例的YAML配置文件,通过kubectl命令在所述Kubernetes集群中创建目标Deployment实例;
根据所述目标Deployment实例的配置生成对应的所述Pod以及所述Pod下的容器。
5.根据权利要求1所述的部署方法,其特征在于,所述当所述Pod以及所述Pod下的容器创建成功后,在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署,具体包括:
当所述Pod以及所述Pod下的容器创建成功后,获取所述Pod中用于分配网络的目标容器,记为第一目标容器;
获取所述第一目标容器的网络空间ID,记为第一网络空间ID;
根据所述第一网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
6.根据权利要求1所述的部署方法,其特征在于,所述部署方法还包括:
当所述主节点发生主节点漂移时,重新为所述共享网络命名空间添加网络信息。
7.根据权利要求6所述的部署方法,其特征在于,所述当所述主节点发生主节点漂移时,重新为所述共享网络命名空间添加所述网络信息,具体包括:
当所述主节点发生主节点漂移时,重新获取所述Pod中用于分配网络的目标容器,记为第二目标容器;
获取所述第二目标容器的网络空间ID,记为第二网络空间ID;
根据所述第二网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
8.根据权利要求1所述的部署方法,其特征在于,所述部署方法还包括:
当需要删除所述Kubernetes集群时,释放所述共享网络命名空间中的所述网卡信息。
9.根据权利要求8所述的部署方法,其特征在于,所述当需要删除所述Kubernetes集群时,释放所述共享网络命名空间中的所述网卡信息,具体包括:
当所述Kubernetes集群的主节点发生主节点漂移时,获取所述Pod中用于分配网络的目标容器,记为第三目标容器;
获取所述第三目标容器的网络空间ID,记为第三网络空间ID;
根据所述第三网络空间ID通过IP命令从所述共享网络命名空间中释放所述网卡信息;
调用IP管理服务,删除所述网卡信息。
10.一种Kubernetes集群的主节点的部署系统,其特征在于,包括:
模板建立单元,用于根据Kubernetes集群的主节点的三个容器建立Deployment类型的发布模板,所述Kubernetes集群的主节点的三个容器包括kube-scheduler、kube-controller-manager和kube-apiserver;
获取单元,用于获取所述主节点的网卡信息,所述网卡信息包括:IP地址和MAC地址以及网关;
第一生成单元,用于基于建立的所述发布模板和所述网卡信息,生成一个Deployment实例;
第二生成单元,用于将所述Deployment实例发布到所述Kubernetes集群中,并在所述Kubernetes集群根据所述Deployment实例生成所述主节点的容器组Pod以及所述Pod下的容器;
添加单元,用于当所述Pod以及所述Pod下的容器创建成功后,在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
11.根据权利要求10所述的部署系统,其特征在于,所述模板建立单元具体用于:
基于YAML格式将所述主节点的三个容器放在一个Deployment类型的原始发布模板中;
基于不同Kubernetes集群的主节点的通用参数,将所述原始发布模板中与所述通用参数对应的参数用预设变量进行替换,得到所述发布模板。
12.根据权利要求10所述的部署系统,其特征在于,所述第一生成单元具体用于:
获取所述发布模板的目标变量,其中,所述目标变量包括:IP地址、MAC地址、网关、掩码信息、资源ID、集群ID和容器镜像地址;
将所述发布模板中与所述目标变量对应的变量,替换成所述目标变量,生成所述Deployment实例。
13.根据权利要求10所述的部署系统,其特征在于,所述第二生成单元具体用于:
将所述Deployment实例发布到所述Kubernetes集群中,根据所述Deployment实例的YAML配置文件,通过kubectl命令在所述Kubernetes集群中创建目标Deployment实例;
根据所述目标Deployment实例的配置生成对应的所述Pod以及所述Pod下的容器。
14.根据权利要求10所述的部署系统,其特征在于,所述添加单元具体用于:
当所述Pod以及所述Pod下的容器创建成功后,获取所述Pod中用于分配网络的目标容器,记为第一目标容器;
获取所述第一目标容器的网络空间ID,记为第一网络空间ID;
根据所述第一网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
15.根据权利要求10所述的部署系统,其特征在于,所述部署系统还包括:
重新添加单元,用于当所述主节点发生主节点漂移时,重新为所述共享网络命名空间添加网络信息。
16.根据权利要求15所述的部署系统,其特征在于,所述重新添加单元具体用于:
当所述主节点发生主节点漂移时,重新获取所述Pod中用于分配网络的目标容器,记为第二目标容器;
获取所述第二目标容器的网络空间ID,记为第二网络空间ID;
根据所述第二网络空间ID通过IP命令在所述Pod的共享网络命名空间中添加所述网卡信息,完成所述主节点的部署。
17.根据权利要求10所述的部署系统,其特征在于,所述部署系统还包括:
释放单元,用于当需要删除所述Kubernetes集群时,释放所述共享网络命名空间中的所述网卡信息。
18.根据权利要求17所述的部署系统,其特征在于,所述释放单元具体用于:
当所述Kubernetes集群的主节点发生主节点漂移时,获取所述Pod中用于分配网络的目标容器,记为第三目标容器;
获取所述第三目标容器的网络空间ID,记为第三网络空间ID;
根据所述第三网络空间ID通过IP命令从所述共享网络命名空间中释放所述网卡信息;
调用IP管理服务,删除所述网卡信息。
CN201911345033.9A 2019-12-24 2019-12-24 Kubernetes集群的主节点的部署方法及系统 Active CN111176788B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911345033.9A CN111176788B (zh) 2019-12-24 2019-12-24 Kubernetes集群的主节点的部署方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911345033.9A CN111176788B (zh) 2019-12-24 2019-12-24 Kubernetes集群的主节点的部署方法及系统

Publications (2)

Publication Number Publication Date
CN111176788A CN111176788A (zh) 2020-05-19
CN111176788B true CN111176788B (zh) 2023-08-25

Family

ID=70657390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911345033.9A Active CN111176788B (zh) 2019-12-24 2019-12-24 Kubernetes集群的主节点的部署方法及系统

Country Status (1)

Country Link
CN (1) CN111176788B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111796905B (zh) * 2020-05-22 2021-04-16 浙商银行股份有限公司 一种kubernetes容器云平台VLAN网络的实现方法及系统
CN113918273B (zh) * 2020-07-10 2023-07-18 华为技术有限公司 一种容器组的创建方法和装置
CN111897551B (zh) * 2020-08-03 2021-07-02 汇链通供应链科技(上海)有限公司 一种云环境下快速克隆软件环境的平台及方法
WO2022056845A1 (en) * 2020-09-18 2022-03-24 Zte Corporation A method of container cluster management and system thereof
CN112398936B (zh) * 2020-11-06 2023-03-28 浪潮云信息技术股份公司 一种基于Kubernetes的多网卡容器实现方法及系统
CN112463298B (zh) * 2020-11-26 2022-08-30 浪潮云信息技术股份公司 一种跨命名空间检测容器可用性的方法
CN112600931B (zh) * 2020-12-22 2022-05-24 新华三云计算技术有限公司 一种api网关部署方法及装置
CN113296888B (zh) * 2021-04-27 2022-11-22 优刻得科技股份有限公司 一种镜像处理方法及系统
CN113626043B (zh) * 2021-08-04 2024-04-05 武汉美和易思数字科技有限公司 一种基于Kubernetes的容器开发环境自动打包方法及系统
CN116436671B (zh) * 2023-04-14 2023-11-17 北京志凌海纳科技有限公司 私有网络内的Kubernetes集群接入的方法、系统、设备和介质
CN117081959B (zh) * 2023-10-17 2023-12-22 明阳产业技术研究院(沈阳)有限公司 一种网络连通性监测与恢复方法、系统、介质及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108921551A (zh) * 2018-06-11 2018-11-30 西安纸贵互联网科技有限公司 基于Kubernetes平台的联盟区块链系统
CN109032806A (zh) * 2018-07-30 2018-12-18 华为技术有限公司 容器的服务调度方法和装置
CN110457134A (zh) * 2019-08-08 2019-11-15 杭州阿启视科技有限公司 建立基于容器云和微服务架构的视频大数据云平台的方法
CN110535831A (zh) * 2019-07-30 2019-12-03 平安科技(深圳)有限公司 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108111470B (zh) * 2016-11-25 2020-06-16 华为技术有限公司 容器的部署方法、服务间的通信方法及相关装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108921551A (zh) * 2018-06-11 2018-11-30 西安纸贵互联网科技有限公司 基于Kubernetes平台的联盟区块链系统
CN109032806A (zh) * 2018-07-30 2018-12-18 华为技术有限公司 容器的服务调度方法和装置
CN110535831A (zh) * 2019-07-30 2019-12-03 平安科技(深圳)有限公司 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质
CN110457134A (zh) * 2019-08-08 2019-11-15 杭州阿启视科技有限公司 建立基于容器云和微服务架构的视频大数据云平台的方法

Also Published As

Publication number Publication date
CN111176788A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN111176788B (zh) Kubernetes集群的主节点的部署方法及系统
CN103167041B (zh) 一种支持云环境应用集群自动化部署的系统及方法
CN110750332A (zh) 一种在Kubernetes中Pod设置静态IP的方法
CN111666080A (zh) 微服务集群部署方法、装置、计算机设备及存储介质
CN111628886B (zh) 私有云环境下组建区块链网络的方法、装置、计算机设备
US20190372908A1 (en) Failover management using availability groups
US10673694B2 (en) Private network mirroring
CN113965585B (zh) 一种多云互联方法及装置
CN112631614B (zh) 应用部署方法、装置、计算机设备和存储介质
CN107294750B (zh) 一种云集群能自识别的分布配置管理方法和装置
JP2009514283A (ja) ネットワーク構成
CN105426208A (zh) 一种云计算系统OpenStack离线自动安装方法
EP4050850A1 (en) Service upgrading method, device and system
CN110764918A (zh) 一种容器集群中主节点管理方法
CN108062225B (zh) 一种多模板组合发布应用集群的方法
CN105324968A (zh) 可靠性资源的分配方法和装置
CN113377499B (zh) 一种虚拟机管理方法、装置、设备及可读存储介质
CN115168031A (zh) 一种雾计算系统、方法、电子设备及存储介质
WO2016192432A1 (zh) 一种网络管理系统部署方法、装置和网络管理系统
CN112130931A (zh) 一种应用部署方法、节点、系统及存储介质
CN115244912A (zh) 文件分发方法、装置、电子设备和计算机可读存储介质
CN116028463A (zh) 搭建存储与计算分离的大数据平台的方法
CN107294773B (zh) 一种软件可定义的网络业务配置方法
CN116260827A (zh) 一种集群中领导者的选举方法、选举系统及相关装置
CN107231394A (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
GR01 Patent grant
GR01 Patent grant