CN114020288A - 一种离线部署Kubernetes集群的方法 - Google Patents
一种离线部署Kubernetes集群的方法 Download PDFInfo
- Publication number
- CN114020288A CN114020288A CN202111300252.2A CN202111300252A CN114020288A CN 114020288 A CN114020288 A CN 114020288A CN 202111300252 A CN202111300252 A CN 202111300252A CN 114020288 A CN114020288 A CN 114020288A
- Authority
- CN
- China
- Prior art keywords
- cluster
- kubernets
- offline
- installation
- warehouse
- 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 21
- 238000009434 installation Methods 0.000 claims abstract description 62
- 238000013515 script Methods 0.000 claims abstract description 17
- 238000011900 installation process Methods 0.000 claims abstract description 8
- 238000004519 manufacturing process Methods 0.000 claims abstract description 6
- 241000109539 Conchita Species 0.000 claims description 6
- 238000011161 development Methods 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 abstract description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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
- 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/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种离线部署Kubernetes集群的方法,制作与Kubernetes集群安装有关的操作系统离线软件仓库;制作Kubernetes集群安装依赖的容器镜像私有仓库;开发Kubernetes集群安装ansible剧本,安装实时日志展示服务;制作整体离线安装包,离线部署Kubernetes集群。采用Go语言与Shell脚本结合开发一套能够为Kubernetes安装过程中提供本地软件包服务以及镜像服务的系统,从而解决离线安装Kubernetes依赖组件以及相关镜像部署效率低、以及在无网络环境中Kubernetes无法部署的问题。
Description
技术领域
本发明涉及容器技术领域,具体的说,是一种离线部署Kubernetes集群的方法。
背景技术
Kubernetes是一个全新的基于容器技术的分布式架构领先方案,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。同时Kubernetes提供完善的管理工具,涵盖了包括开发、部署测试、运维监控在内的各个环节,在集群管理方面Kubernetes将集群中的机器划分为一个Master节点和一群工作节点Node,其中,在Master节点运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理能力,Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。Node上运行着Kubernetes的kubelet、kube-proxy服务进程,这些服务进程负责Pod的创建、启动、监控、重启、销毁以及实现软件模式的负载均衡器。虽然Kubernetes给我们带来了如此多的好处,但Kubernetes集群本身的安装极其复杂,而且其主要安装包均在国外网站,安装一个Kubernetes集群并非一件易事,更甚至一些特定安装环境完全没有接入公网,安装Kubernetes涉及到的工具、二进制可执行程序、依赖组件以及相关的镜像都无法获取。
发明内容
本发明的目的在于提供一种离线部署Kubernetes集群的方法,用于解决现有技术中Kubernetes集群的安装复杂、依赖组件和镜像,受到安装环境限制部署效率低以及无网络环境无法部署的问题。
本发明通过下述技术方案解决上述问题:
一种离线部署Kubernetes集群的方法,包括:
步骤S1、制作与Kubernetes集群安装有关的操作系统离线软件仓库;
步骤S2、制作Kubernetes集群安装依赖的容器镜像私有仓库,用于动态更新容器镜像版本以及自动加载离线镜像;
步骤S3、开发Kubernetes集群安装ansible剧本,用于通过配置文件修改参数,安装实时日志展示服务;
步骤S4、制作整体离线安装包,离线部署Kubernetes集群:上传整体离线安装包到安装机,单独指定一台安装机不与Kubernetes集群节点复用,准备Kubernetes集群安装节点环境,配置离线安装机能够免密登录Kubernetes集群节点,修改配置文件后一键安装Kubernetes集群。
全部成功后,通过Shell脚本打包一个Kubernetes集群整体离线安装包,整体离线安装包用于Kubernetes集群安装时需单独指定一台服务器作为集群安装机,安装机不可与Kubernetes集群中节点复用,因为集群安装中可能对Kubernetes集群节点进行重启,解压离线安装包进行集群配置后,一键安装集群,整个集群安装过程中无需人工干预。针对无外网访问的环境安装Kubernetes集群时,用户只需准备一台安装机,解压制作好的离线包并简单配置Kubernetes集群参数就能做到一键自动安装Kubernetes集群,且不限制安装Kubernetes节点数,还提供实时安装Kubernetes集群日志,这样大大提高了企业安装Kubernetes集群的效率。
所述步骤S1采用createrepo命令制作centos系统离线软件仓库:先清除已缓存软件包,下载Kubernetes集群安装过程需要的软件,通过createrepo命令制作centos系统软件仓库。
所述步骤S2中采用registry作为容器镜像私有仓库,采用Shell开发自动下载加载更新容器镜像私有仓库脚本。
所述步骤S3中基于kubespray开发Kubernetes集群安装ansible剧本,用于提炼Kubernetes集群配置文件并修改参,参数包括集群名、集群版本、master节点列表、node节点列表、所述操作系统离线软件仓库的地址和容器镜像私有仓库的地址。
所述步骤S3中采用Go语言、c++、python和java中的任意一种语言实现gRPC框架,gRPC框架对Kubernetes集群安装中实时日志数据进行传输,实现实时日志展示服务。
所述步骤S4中制作Kubernetes集群整体离线安装包包括:通过开发Shell脚本连接操作系统离线软件仓库、容器镜像私有仓库中、Kubernetes集群安装ansible剧本和实时日志展示服务,实现自动运行操作系统软件仓库、自动运行Kubernetes集群安装容器镜像私有仓库并加载离线镜像、Kubernetes集群安装ansible剧本接口调用以及开发实时日志展示通道。
所述配置文件采用yaml方式,字段包括cluster_name、k8s_version、ssh_user、ssh_port、masters、nodes,其中cluster_name用于设置Kubernetes集群名字,k8s_version用于设置Kubernetes集群版本,ssh_user用于设置安装机与Kubernetes集群节点免密登录系统用户,ssh_port用于设置Kubernetes集群节点免密登录所用端口,masters属于数组,设置1到多个Kubernetes主控节点,nodes属于数组,用于设置一到多个Kubernetes业务节点。
本发明与现有技术相比,具有以下优点及有益效果:
本发明主要采用Go语言与Shell脚本结合开发一套能够为Kubernetes安装过程中提供本地软件包服务以及镜像服务的系统,从而解决离线安装Kubernetes依赖组件以及相关镜像部署效率低、以及在无网络环境中Kubernetes无法部署的问题。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1所示,一种离线部署Kubernetes集群的方法,包括:
步骤S1、制作与Kubernetes集群安装有关的操作系统离线软件仓库,不限定操作系统种类;
步骤S2、制作Kubernetes集群安装依赖的容器镜像私有仓库,用于动态更新容器镜像版本以及自动加载离线镜像,不限定私有仓库软件类型;
步骤S3、开发Kubernetes集群安装ansible剧本,用于通过配置文件修改参数,安装实时日志展示服务;
步骤S4、制作整体离线安装包,离线部署Kubernetes集群:上传整体离线安装包到安装机,单独指定一台安装机不与Kubernetes集群节点复用,准备Kubernetes集群安装节点环境,配置离线安装机能够免密登录Kubernetes集群节点,修改配置文件后一键安装Kubernetes集群,整个集群安装过程中无需人工干预。
全部成功后,通过Shell脚本打包一个Kubernetes集群整体离线安装包,整体离线安装包用于Kubernetes集群安装时需单独指定一台服务器作为集群安装机,安装机不可与Kubernetes集群中节点复用,因为集群安装中可能对Kubernetes集群节点进行重启,解压离线安装包进行集群配置后,一键安装集群,整个集群安装过程中无需人工干预。针对无外网访问的环境安装Kubernetes集群时,用户只需准备一台安装机,解压制作好的离线包并简单配置Kubernetes集群参数就能做到一键自动安装Kubernetes集群,且不限制安装Kubernetes节点数,还提供实时安装Kubernetes集群日志,这样大大提高了企业安装Kubernetes集群的效率。
实施例2:
所述步骤S1采用createrepo命令制作centos系统离线软件仓库:先清除已缓存软件包,下载Kubernetes集群安装过程需要的软件,通过createrepo命令制作centos系统软件仓库。采用Go语言开发一个简单的HTTP服务来暴露操作系统所依赖的软件包及Kubernetes集群二进制下载文件。
所述步骤S2中采用registry作为容器镜像私有仓库,采用Shell开发自动下载加载更新容器镜像私有仓库脚本,方便重复打包以及更新Kubernetes集群依赖镜像的版本。
所述步骤S3中基于kubespray开发Kubernetes集群安装ansible剧本,用于提炼Kubernetes集群配置文件并修改参,参数包括集群名、集群版本、master节点列表、node节点列表、所述操作系统离线软件仓库的地址和容器镜像私有仓库的地址。
所述步骤S3中采用Go语言、c++、python和java中的任意一种语言实现gRPC框架,gRPC框架对Kubernetes集群安装中实时日志数据进行传输,实现实时日志展示服务,Kubernetes集群安装实时日志采用gRPC技术开发,使用protobuf二进制编码的数据序列化协议提高日志传输效率。
所述步骤S4中制作Kubernetes集群整体离线安装包包括:通过开发Shell脚本连接操作系统离线软件仓库、容器镜像私有仓库中、Kubernetes集群安装ansible剧本和实时日志展示服务,实现自动运行操作系统软件仓库、自动运行Kubernetes集群安装容器镜像私有仓库并加载离线镜像、Kubernetes集群安装ansible剧本接口调用以及开发实时日志展示通道。
所述配置文件采用yaml方式,字段包括cluster_name、k8s_version、ssh_user、ssh_port、masters、nodes,其中cluster_name用于设置Kubernetes集群名字,k8s_version用于设置Kubernetes集群版本,ssh_user用于设置安装机与Kubernetes集群节点免密登录系统用户,ssh_port用于设置Kubernetes集群节点免密登录所用端口,masters属于数组,设置1到多个Kubernetes主控节点,nodes属于数组,用于设置一到多个Kubernetes业务节点。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (7)
1.一种离线部署Kubernetes集群的方法,其特征在于,包括:
步骤S1、制作与Kubernetes集群安装有关的操作系统离线软件仓库;
步骤S2、制作Kubernetes集群安装依赖的容器镜像私有仓库,用于动态更新容器镜像版本以及自动加载离线镜像;
步骤S3、开发Kubernetes集群安装ansible剧本,用于通过配置文件修改参数,安装实时日志展示服务;
步骤S4、制作整体离线安装包,离线部署Kubernetes集群:上传整体离线安装包到安装机,单独指定一台安装机不与Kubernetes集群节点复用,准备Kubernetes集群安装节点环境,配置离线安装机能够免密登录Kubernetes集群节点,修改配置文件后一键安装Kubernetes集群。
2.根据权利要求1所述的一种离线部署Kubernetes集群的方法,其特征在于,所述步骤S1采用createrepo命令制作centos系统离线软件仓库:先清除已缓存软件包,下载Kubernetes集群安装过程需要的软件,通过createrepo命令制作centos系统软件仓库。
3.根据权利要求1所述的一种离线部署Kubernetes集群的方法,其特征在于,所述步骤S2中采用registry作为容器镜像私有仓库,采用Shell开发自动下载加载更新容器镜像私有仓库脚本。
4.根据权利要求1所述的一种离线部署Kubernetes集群的方法,其特征在于,所述步骤S3中基于kubespray开发Kubernetes集群安装ansible剧本,用于提炼Kubernetes集群配置文件并修改参数,参数包括集群名、集群版本、master节点列表、node节点列表、所述操作系统离线软件仓库的地址和容器镜像私有仓库的地址。
5.根据权利要求4所述的一种离线部署Kubernetes集群的方法,其特征在于,所述步骤S3中采用Go语言、c++、python和java中的任意一种语言实现gRPC框架,gRPC框架对Kubernetes集群安装中实时日志数据进行传输,实现实时日志展示服务。
6.根据权利要求1所述的一种离线部署Kubernetes集群的方法,其特征在于,所述步骤S4中制作Kubernetes集群整体离线安装包包括:通过开发Shell脚本连接操作系统离线软件仓库、容器镜像私有仓库中、Kubernetes集群安装ansible剧本和实时日志展示服务,实现自动运行操作系统软件仓库、自动运行Kubernetes集群安装容器镜像私有仓库并加载离线镜像、Kubernetes集群安装ansible剧本接口调用以及开发实时日志展示通道。
7.根据权利要求1所述的一种离线部署Kubernetes集群的方法,其特征在于,所述配置文件采用yaml方式,字段包括cluster_name、k8s_version、ssh_user、ssh_port、masters、nodes,其中cluster_name用于设置Kubernetes集群名字,k8s_version用于设置Kubernetes集群版本,ssh_user用于设置安装机与Kubernetes集群节点免密登录系统用户,ssh_port用于设置Kubernetes集群节点免密登录所用端口,masters属于数组,设置1到多个Kubernetes主控节点,nodes为数组,用于设置一到多个Kubernetes业务节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111300252.2A CN114020288A (zh) | 2021-11-04 | 2021-11-04 | 一种离线部署Kubernetes集群的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111300252.2A CN114020288A (zh) | 2021-11-04 | 2021-11-04 | 一种离线部署Kubernetes集群的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020288A true CN114020288A (zh) | 2022-02-08 |
Family
ID=80060696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111300252.2A Pending CN114020288A (zh) | 2021-11-04 | 2021-11-04 | 一种离线部署Kubernetes集群的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020288A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483394A (zh) * | 2023-04-26 | 2023-07-25 | 北京远舢智能科技有限公司 | 一种基于容器的Kubernetes离线安装方法及装置 |
CN118733068A (zh) * | 2024-09-04 | 2024-10-01 | 河南嵩山实验室产业研究院有限公司洛阳分公司 | 混合架构k8s集群离线部署方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520997A (zh) * | 2011-12-08 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种同构集群操作系统半自动批量部署的方法 |
CN109981351A (zh) * | 2019-03-06 | 2019-07-05 | 浪潮通用软件有限公司 | 一种私有云部署方法 |
CN112416524A (zh) * | 2020-11-25 | 2021-02-26 | 电信科学技术第十研究所有限公司 | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 |
-
2021
- 2021-11-04 CN CN202111300252.2A patent/CN114020288A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520997A (zh) * | 2011-12-08 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种同构集群操作系统半自动批量部署的方法 |
CN109981351A (zh) * | 2019-03-06 | 2019-07-05 | 浪潮通用软件有限公司 | 一种私有云部署方法 |
CN112416524A (zh) * | 2020-11-25 | 2021-02-26 | 电信科学技术第十研究所有限公司 | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 |
Non-Patent Citations (3)
Title |
---|
ALPHAHINEX: "使用 kubeasz 离线安装 k8s 集群", pages 1 - 9, Retrieved from the Internet <URL:https://www.jianshu.com/p/7c37236f2719?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes> * |
ZHANNK: "内网环境离线部署kubernetes,docker", pages 1 - 3, Retrieved from the Internet <URL:https://blog.csdn.net/zhannk/article/details/101766625/> * |
民生运维人: "kubespray离线创建kubernetes并与portal集成管理", pages 1 - 41, Retrieved from the Internet <URL:《https://www.modb.pro/db/43892》> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483394A (zh) * | 2023-04-26 | 2023-07-25 | 北京远舢智能科技有限公司 | 一种基于容器的Kubernetes离线安装方法及装置 |
CN118733068A (zh) * | 2024-09-04 | 2024-10-01 | 河南嵩山实验室产业研究院有限公司洛阳分公司 | 混合架构k8s集群离线部署方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108549717B (zh) | 自动化部署运维Hadoop生态圈组件的方法及系统 | |
CN114020288A (zh) | 一种离线部署Kubernetes集群的方法 | |
US20190179726A1 (en) | Monitoring method and apparatus of server, and storage medium | |
CN109918061B (zh) | 基于安卓系统的跨平台接口中间件实现方法和装置 | |
US8713177B2 (en) | Remote management of networked systems using secure modular platform | |
JP2021051735A (ja) | モジュラープロセス制御システム | |
US8050801B2 (en) | Dynamically extensible and automatically configurable building automation system and architecture | |
CN107229484B (zh) | 一种虚拟化环境下自动部署应用程序的方法及装置 | |
EP2184903A1 (en) | Method and device for automatically installing an applciation | |
CN105487892A (zh) | 一种Linux环境下的云中GIS服务部署系统 | |
US20140156816A1 (en) | Method for composing configuration changes in a network element | |
CN112328361A (zh) | 一种快速部署kubenetes集群的方法 | |
Albrecht et al. | Remote Control: Distributed Application Configuration, Management, and Visualization with Plush. | |
CN112073247B (zh) | 区块链网络部署方法、装置、计算机系统和介质 | |
CN110912728B (zh) | 一种操作系统补丁批量自动化更新管理方法及系统 | |
CN107911467B (zh) | 一种脚本化操作的服务操作管理系统和方法 | |
JP2023518198A (ja) | 産業用オートメーションプラットフォームのオートメーションプログラムを管理する方法および装置 | |
CN112084008A (zh) | 一种基于容器技术快速部署云管系统的方法 | |
CN114153468A (zh) | 工业协议的适配方法、装置、边缘设备及云端服务器 | |
CN106445611B (zh) | 大数据节点系统及自动部署方法 | |
CN115857955A (zh) | 一种离线部署k8s集群的方法、装置、设备及存储介质 | |
CN112306492A (zh) | 一种基于管理者和工作者架构的支持多平台的自动化编译方法 | |
CN117215818A (zh) | 一种基于云边协同的物联网轻量化应用协同的方法 | |
CN111541565A (zh) | 一种基于通信拓扑结构的应用服务可视化快速部署方法 | |
US11729051B2 (en) | Automated deployment of control nodes at remote locations |
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 |