CN111443993A - 一种实现大规模容器集群的方法 - Google Patents

一种实现大规模容器集群的方法 Download PDF

Info

Publication number
CN111443993A
CN111443993A CN202010247681.7A CN202010247681A CN111443993A CN 111443993 A CN111443993 A CN 111443993A CN 202010247681 A CN202010247681 A CN 202010247681A CN 111443993 A CN111443993 A CN 111443993A
Authority
CN
China
Prior art keywords
kubernets
component
node
kube
cluster
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
CN202010247681.7A
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.)
Shandong Huimao Electronic Port Co Ltd
Original Assignee
Shandong Huimao Electronic Port 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 Shandong Huimao Electronic Port Co Ltd filed Critical Shandong Huimao Electronic Port Co Ltd
Priority to CN202010247681.7A priority Critical patent/CN111443993A/zh
Publication of CN111443993A publication Critical patent/CN111443993A/zh
Pending legal-status Critical Current

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
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种实现大规模容器集群的方法,涉及kubernetes集群部署技术领域。针对集群规模到一定程度时效率、稳定性都会下降的缺陷,采用的技术方案包括:A)为kubernetes集群提供网络的calico组件配置BGP模式,同时,使用master节点作为calico组件的rr节点;B)升级etcd组件、kubernetes的版本;C)调整kubernetes所包含组件的参数,使其支撑大规模集群;D)调整etcd组件和kubernetes所包含关键组件的模式。本发明通过A)、B)、C)、D)四方面的改进,实现了大规模容器集群的安装和高效稳定的运行。

Description

一种实现大规模容器集群的方法
技术领域
本发明涉及kubernetes集群部署技术领域,具体的说是一种实现大规模容器集群的方法。
背景技术
近些年来,kubernetes作为先进的容器编排系统,得到了快速的发展,并在云计算云服务领域得到了广泛的应用,而集群部署及大集群有以下核心概念。
a)k8s核心组件:
kube-apiserver:提供了k8s各类资源的增删改查接口。
kube-controller-manager:集群内部的管理控制中心,负责node、pod副本等的管理。
kube-scheduler:负责pod的调度。
kubelet:每个节点上的节点代理,负责上报数据,处理任务。
kube-proxy:负责service的实现。
b)calico:为k8s集群提供网络。
c)etcd:k8s的存储组件,分布式key-value数据库。
d)集群规模:k8s集群节点数大小,集群节点个数越多,k8s的管理组件、etcd的数据读写、calico网络压力就会越大。
随着集群中应用数的增加,集群负载大大提升,这时,对集群的规模也有了较高的要求,但是集群规模到一定程度时,效率、稳定性都会下降。
发明内容
本发明针对集群规模到一定程度时效率、稳定性都会下降的缺陷,提供一种实现大规模容器集群的方法。
本发明的一种实现大规模容器集群的方法,解决上述技术问题采用的技术方案如下:
一种实现大规模容器集群的方法,该方法的实现内容包括:
A)为kubernetes集群提供网络的calico组件配置BGP模式,同时,使用master节点作为calico组件的rr节点;
B)升级etcd组件、kubernetes的版本;
C)调整kubernetes所包含组件的参数,使其支撑大规模集群;
D)调整etcd组件和kubernetes所包含关键组件的模式。
进一步的,为kubernetes集群提供网络的calico组件配置BGP模式,具体配置步骤包括:
A1)配置全局禁用全连接;
A2)创建BGPPeer,配置普通BGP node和rr节点的连接规则;
A3)master节点calico-node添加label i-am-a-route-reflector;
A4)master节点calico-node添加routeReflectorClusterID。
更进一步的,执行步骤A2)时,操作流程包括:
A2.1)创建peer-to-rrs BGPPeer,使普通BGP node与rr节点建立连接;
A2.2)创建rr-mesh BGPPeer,使rr节点之间建立连接。
进一步的,执行步骤B)时,将etcd组件升级到3.4.2版本,以改进etcd组件的读写性能。
更进一步的,执行步骤B)时,将kubernetes升级到1.6.2版本,完成kubernetes的性能优化。
进一步的,调整kubernetes所包含组件的参数,具体包括:
C1)调整kube-apiserver组件的参数,设定在给定时间内的最大mutating请求数和最大non-mutating请求数;
C2)调整kube-scheduler组件的参数,设定kube-api-qps每秒与kube-apiserver组件的通信次数限制;
C3)调整kube-controller-manager组件的参数,设定kube-api-qps每秒与kube-apiserver组件的通信次数限制,还设定kube-api-burst每秒向kube-apiserver组件的请求数限制;
C4)调整kubelet组件的参数,引入build-in Lease API,将与kubelet组件的上报心跳相关的信息从node对象中剥离出来。
进一步的,将调整etcd组件的模式时,将etcd组件单独部署,并与kubernetes集群的节点分离,进而减小etcd组件的节点压力。
更进一步的,调整kubernetes所包含关键组件的模式,具体操作为:
配置使用kube-proxy的ipvs模式,防止集群规模增大时增加iptables规则的更新时延。
本发明的一种实现大规模容器集群的方法,与现有技术相比具有的有益效果是:
本发明做出了以下四方面的改进:A)为kubernetes集群提供网络的calico组件配置BGP模式,同时,使用master节点作为calico组件的rr节点,B)升级etcd组件、kubernetes的版本,C)调整kubernetes所包含组件的参数,使其支撑大规模集群,D)调整etcd组件和kubernetes所包含关键组件的模式,实现了大规模容器集群的安装和高效稳定的运行。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
本实施例提出一种实现大规模容器集群的方法,该方法的实现内容包括:
A)为kubernetes集群提供网络的calico组件配置BGP模式,同时,使用master节点作为calico组件的rr节点;
B)升级etcd组件、kubernetes的版本;
C)调整kubernetes所包含组件的参数,使其支撑大规模集群;
D)调整etcd组件和kubernetes所包含关键组件的模式。
在本实施例中,calico ipip模式所有节点都需要两两建立连接,当节点数量增加时,连接数将剧增,导致资源占用剧增,引入rr节点之后,其他节点只需与rr节点连接,并交换路由信息,这样随着节点数量的增加,连接数的增长幅度大幅降低,节省了资源,更适用于大规模容器集群的场景。
基于此,为kubernetes集群提供网络的calico组件配置BGP模式,具体配置步骤包括:
A1)配置全局禁用全连接;代码执行如下:
Figure BDA0002434376460000041
A2)创建BGPPeer,配置普通BGP node和rr节点的连接规则;
A2.1)创建peer-to-rrs BGPPeer,使普通BGP node与rr节点建立连接;代码执行如下:
Figure BDA0002434376460000051
A2.2)创建rr-mesh BGPPeer,使rr节点之间建立连接;代码执行如下:
Figure BDA0002434376460000052
Figure BDA0002434376460000061
A3)master节点calico-node添加label i-am-a-route-reflector:true
添加label之后,master节点就作为了calico-node的rr节点。
A4)master节点calico-node添加routeReflectorClusterID:224.0.0.1'。
在本实施例中,etcd作为kubernetes的存储组件,读写性能决定着k8s的性能,因此,执行步骤B)时,将etcd组件升级到3.4.2版本,以改进etcd组件的读写性能,使写入吞吐增加70%,P99写入延迟减少90%,进而在大规模集群场景下大大提高集群的性能。
同时,将kubernetes升级到1.6.2版本,完成kubernetes的性能优化。
在本实施例中,执行步骤C)的过程中,调整kubernetes所包含组件的参数,具体包括:
C1)调整kube-apiserver组件的参数,设定在给定时间内的最大mutating请求数和最大non-mutating请求数;
例如:--max-mutating-requests-inflight,在给定时间内的最大mutating请求数,可以调整至3000;
--max-requests-inflight,在给定时间内的最大non-mutating请求数,可以调整至1000。
C2)调整kube-scheduler组件的参数,设定kube-api-qps每秒与kube-apiserver组件的通信次数限制,通常,可以具体设定默认50,可调至100。
C3)调整kube-controller-manager组件的参数,设定kube-api-qps每秒与kube-apiserver组件的通信次数限制,通常,可以具体设定默认20,可调至100;还设定kube-api-burst每秒向kube-apiserver组件的请求数限制,通常,可以具体设定默认30,可调至100。
C4)调整kubelet组件的参数。因为kubelet的最大开销在于其信息上报,kubelet的上报心跳会触发etcd的node对象更新,并产生大量的transaction logs,而apiserver为处理心跳请求,会消耗大量的cpu,所以,引入build-in Lease API,将与kubelet组件的上报心跳相关的信息从node对象中剥离出来,降低更新代价。
在本实施例中,将调整etcd组件的模式时,将etcd组件单独部署,并与kubernetes集群的节点分离,进而减小etcd组件的节点压力。
在本实施例中,由于kube-proxy原先的iptables模式会写入大量的iptables规则,调整kubernetes所包含关键组件的模式,具体操作为:
配置使用kube-proxy的ipvs模式,防止集群规模增大时增加iptables规则的更新时延。
综上可知,采用本发明的一种实现大规模容器集群的方法,可以实现大规模容器集群的安装和高效稳定的运行。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。

Claims (8)

1.一种实现大规模容器集群的方法,其特征在于,该方法的实现内容包括:
A)为kubernetes集群提供网络的calico组件配置BGP模式,同时,使用master节点作为calico组件的rr节点;
B)升级etcd组件、kubernetes的版本;
c)调整kubernetes所包含组件的参数,使其支撑大规模集群;
D)调整etcd组件和kubernetes所包含关键组件的模式。
2.根据权利要求1所述的一种实现大规模容器集群的方法,其特征在于,为kubernetes集群提供网络的calico组件配置BGP模式,具体配置步骤包括:
A1)配置全局禁用全连接;
A2)创建BGPPeer,配置普通BGP node和rr节点的连接规则;
A3)master节点calico-node添加label i-am-a-route-reflector;
A4)master节点calico-node添加routeReflectorClusterID。
3.根据权利要求2所述的一种实现大规模容器集群的方法,其特征在于,执行步骤A2)时,操作流程包括:
A2.1)创建peer-to-rrs BGPPeer,使普通BGP node与rr节点建立连接;
A2.2)创建rr-mesh BGPPeer,使rr节点之间建立连接。
4.根据权利要求1所述的一种实现大规模容器集群的方法,其特征在于,执行步骤B)时,将etcd组件升级到3.4.2版本,以改进etcd组件的读写性能。
5.根据权利要求4所述的一种实现大规模容器集群的方法,其特征在于,执行步骤B)时,将kubernetes升级到1.6.2版本,完成kubernetes的性能优化。
6.根据权利要求5所述的一种实现大规模容器集群的方法,其特征在于,调整kubernetes所包含组件的参数,具体包括:
C1)调整kube-apiserver组件的参数,设定在给定时间内的最大mutating请求数和最大non-mutating请求数;
C2)调整kube-scheduler组件的参数,设定kube-api-qps每秒与kube-apiserver组件的通信次数限制;
C3)调整kube-controller-manager组件的参数,设定kube-api-qps每秒与kube-apiserver组件的通信次数限制,还设定kube-api-burst每秒向kube-apiserver组件的请求数限制;
C4)调整kubelet组件的参数,引入build-in Lease API,将与kubelet组件的上报心跳相关的信息从node对象中剥离出来。
7.根据权利要求1所述的一种实现大规模容器集群的方法,其特征在于,将调整etcd组件的模式时,将etcd组件单独部署,并与kubernetes集群的节点分离,进而减小etcd组件的节点压力。
8.根据权利要求7所述的一种实现大规模容器集群的方法,其特征在于,调整kubernetes所包含关键组件的模式,具体操作为:
配置使用kube-proxy的ipvs模式,防止集群规模增大时增加iptables规则的更新时延。
CN202010247681.7A 2020-04-01 2020-04-01 一种实现大规模容器集群的方法 Pending CN111443993A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010247681.7A CN111443993A (zh) 2020-04-01 2020-04-01 一种实现大规模容器集群的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010247681.7A CN111443993A (zh) 2020-04-01 2020-04-01 一种实现大规模容器集群的方法

Publications (1)

Publication Number Publication Date
CN111443993A true CN111443993A (zh) 2020-07-24

Family

ID=71649442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010247681.7A Pending CN111443993A (zh) 2020-04-01 2020-04-01 一种实现大规模容器集群的方法

Country Status (1)

Country Link
CN (1) CN111443993A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112130965A (zh) * 2020-10-26 2020-12-25 腾讯科技(深圳)有限公司 部署分布式容器编排管理集群的方法、设备及存储介质
CN113676524A (zh) * 2021-08-09 2021-11-19 浪潮云信息技术股份公司 一种实现多cpu架构容器网络代理的方法
CN113672341A (zh) * 2021-07-30 2021-11-19 济南浪潮数据技术有限公司 一种提高k8s集群稳定性的方法、系统、装置及存储介质
CN114338524A (zh) * 2021-12-20 2022-04-12 浪潮云信息技术股份公司 一种提升大规模容器云集群网络Service性能的方法及系统
CN116866180A (zh) * 2023-07-04 2023-10-10 北京志凌海纳科技有限公司 集群升级的测试方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109245931A (zh) * 2018-09-19 2019-01-18 四川长虹电器股份有限公司 基于kubernetes的容器云平台的日志管理和监控报警的实现方法
CN109981351A (zh) * 2019-03-06 2019-07-05 浪潮通用软件有限公司 一种私有云部署方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109245931A (zh) * 2018-09-19 2019-01-18 四川长虹电器股份有限公司 基于kubernetes的容器云平台的日志管理和监控报警的实现方法
CN109981351A (zh) * 2019-03-06 2019-07-05 浪潮通用软件有限公司 一种私有云部署方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PRODAN: "Kubernetes网络 — Calico BGP模式", 《微信公众号"PRODANLABS"》 *
TIANFEIYU: "大规模场景下 k8s 集群的性能优化", 《微信公众号"进击云原生"》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112130965A (zh) * 2020-10-26 2020-12-25 腾讯科技(深圳)有限公司 部署分布式容器编排管理集群的方法、设备及存储介质
CN113672341A (zh) * 2021-07-30 2021-11-19 济南浪潮数据技术有限公司 一种提高k8s集群稳定性的方法、系统、装置及存储介质
CN113676524A (zh) * 2021-08-09 2021-11-19 浪潮云信息技术股份公司 一种实现多cpu架构容器网络代理的方法
CN114338524A (zh) * 2021-12-20 2022-04-12 浪潮云信息技术股份公司 一种提升大规模容器云集群网络Service性能的方法及系统
CN116866180A (zh) * 2023-07-04 2023-10-10 北京志凌海纳科技有限公司 集群升级的测试方法及系统
CN116866180B (zh) * 2023-07-04 2024-03-01 北京志凌海纳科技有限公司 集群升级的测试方法及系统

Similar Documents

Publication Publication Date Title
CN111443993A (zh) 一种实现大规模容器集群的方法
CN110134636B (zh) 模型训练方法、服务器和计算机可读存储介质
AU2004267742B2 (en) Automatic and dynamic provisioning of databases
US8769536B2 (en) Processing a batched unit of work
CN109639773B (zh) 一种动态构建的分布式数据集群控制系统及其方法
US20050060608A1 (en) Maximizing processor utilization and minimizing network bandwidth requirements in throughput compute clusters
CN111935738B (zh) 一种用于多运营商核心网对接mec的方法及系统
CN1836232A (zh) 数据库的自动和动态提供
CN112463290A (zh) 动态调整计算容器的数量的方法、系统、装置和存储介质
CN106953910A (zh) 一种Hadoop计算存储分离方法
US20210357397A1 (en) Efficient event-type-based distributed log-analytics system
CN110727738B (zh) 基于数据分片的全局路由系统、电子设备及存储介质
CN111143382A (zh) 数据处理方法、系统和计算机可读存储介质
WO2021003677A1 (zh) 一种分布式系统中的业务升级方法、装置及分布式系统
CN115733746B (zh) 一种服务网格单元的部署方法、装置、设备及存储介质
CN110311948A (zh) 容器/容器组间的通信方法及基于此的容器云网络系统
CN110019539A (zh) 一种数据仓库的数据同步的方法和装置
CN114691372A (zh) 一种多媒体端边云系统的群体智能控制方法
CN115268949A (zh) 一种镜像预热方法、装置、设备及存储介质
CN110569307A (zh) 一种基于ProxySQL和MGR的MySQL读写分离方法
CN112527450B (zh) 基于不同资源的超融合自适应方法、终端及系统
US20210141796A1 (en) System and methods for performing updated query requests in a system of multiple database engine
CN102955801A (zh) 基于分布式数据库系统的数据控制方法及系统
CN113032146A (zh) 一种面向多接入边缘计算环境的健壮性服务供应方法
CN106502842B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200724

RJ01 Rejection of invention patent application after publication