CN111443993A - 一种实现大规模容器集群的方法 - Google Patents
一种实现大规模容器集群的方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 241000322338 Loeseliastrum Species 0.000 claims abstract description 14
- 238000004891 communication Methods 0.000 claims description 6
- 238000009434 installation Methods 0.000 abstract description 3
- 230000007547 defect Effects 0.000 abstract description 2
- 239000000306 component Substances 0.000 description 46
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network 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)配置全局禁用全连接;代码执行如下:
A2)创建BGPPeer,配置普通BGP node和rr节点的连接规则;
A2.1)创建peer-to-rrs BGPPeer,使普通BGP node与rr节点建立连接;代码执行如下:
A2.2)创建rr-mesh BGPPeer,使rr节点之间建立连接;代码执行如下:
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规则的更新时延。
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)
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)
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 | 浪潮通用软件有限公司 | 一种私有云部署方法 |
-
2020
- 2020-04-01 CN CN202010247681.7A patent/CN111443993A/zh active Pending
Patent Citations (2)
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)
Title |
---|
PRODAN: "Kubernetes网络 — Calico BGP模式", 《微信公众号"PRODANLABS"》 * |
TIANFEIYU: "大规模场景下 k8s 集群的性能优化", 《微信公众号"进击云原生"》 * |
Cited By (6)
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 |