CN114020288A - 一种离线部署Kubernetes集群的方法 - Google Patents

一种离线部署Kubernetes集群的方法 Download PDF

Info

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
Application number
CN202111300252.2A
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.)
Sichuan Cric Technology Co ltd
Original Assignee
Sichuan Cric 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 Sichuan Cric Technology Co ltd filed Critical Sichuan Cric Technology Co ltd
Priority to CN202111300252.2A priority Critical patent/CN114020288A/zh
Publication of CN114020288A publication Critical patent/CN114020288A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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
    • 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

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集群的方法。
背景技术
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业务节点。
CN202111300252.2A 2021-11-04 2021-11-04 一种离线部署Kubernetes集群的方法 Pending CN114020288A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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的实现方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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