CN113824790B - 一种支持企业级应用的云原生PaaS管理平台 - Google Patents
一种支持企业级应用的云原生PaaS管理平台 Download PDFInfo
- Publication number
- CN113824790B CN113824790B CN202111115318.0A CN202111115318A CN113824790B CN 113824790 B CN113824790 B CN 113824790B CN 202111115318 A CN202111115318 A CN 202111115318A CN 113824790 B CN113824790 B CN 113824790B
- Authority
- CN
- China
- Prior art keywords
- management platform
- paas management
- certificate
- cluster
- paas
- 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
Links
- 238000007726 management method Methods 0.000 claims description 119
- 241000380131 Ammophila arenaria Species 0.000 claims description 45
- 238000004519 manufacturing process Methods 0.000 claims description 9
- 230000010354 integration Effects 0.000 claims description 8
- 238000009434 installation Methods 0.000 claims description 6
- 238000013439 planning Methods 0.000 claims description 4
- 241000322338 Loeseliastrum Species 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000009466 transformation Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 239000002360 explosive Substances 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011981 development test Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000002071 nanotube Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Stored Programmes (AREA)
Abstract
一种支持企业级应用的云原生PaaS管理平台,基于云原生架构技术的企业级PaaS平台,包括容器云平台、微服务治理平台、DevOps平台、云原生中间件、通用服务等技术产品。该平台具备更融合的调度和编排,更细粒度的弹性,更高的资源利用率等特色。
Description
技术领域
一种支持企业级应用的云原生PaaS管理平台,属于互联网技术领域。
背景技术
随着移动互联网时代的大步跃进,互联网公司业务的爆炸式增长发展给传统行业带来了巨大的冲击和挑战,被迫考虑转型和调整。对于传统行业来说,还存在传统的思维、落后的技术。一项新业务从提出需求到立项审批、公开招标、项目实施、上线、交付运维,没有一年半载下不来。而此中最为严重的问题是,系统交付时的功能可能已经偏离最初的需求,系统使用方不满意,IT人员觉得付出的劳动没有被认可,双方矛盾加剧。大力发展移动互联网业务,因此对业务需求的响应速度有了更高的要求,越来越多传统应用架构,为了适应不断变化的业务需求和难以预估的访问量而开始进行分布式改造、微服务改造,实现持续集成、持续发布、自动化测试、支持弹性伸缩、灰度发布、蓝绿部署等能力,容器云平台恰恰可以很好的支撑上述需求。容器技术是近些年来最火爆的技术方向之一,容器云能更好服务于应用,不断提升客户满意度。按照云计算的三种类型,建设PaaS(Platform as aservice)平台将有助于实现这些目标。
随着传统企业数字化转型的加速以及互联网企业的迅猛发展,企业业务都将上到“云端”。在数字化转型初期,企业更聚焦于建设成本投入巨大的IaaS(基础设施即服务),和云化改造的应用层SaaS(软件设施即服务),而随着近年来企业数字化转型进入深水区,精细化架构建设的需求热度逐渐提升,PaaS的重要性急速凸显。作为云计算模型中的能力层,PaaS帮助企业更好地将业务与IT融为一体,从而成为传统企业数字化转型,进行架构升级的必然选择。近年来,国家对云计算的政策支持力度持续提升,PaaS产业环境空前利好。
发明内容
为了解决上述存在的不足之处及缺点,本发明专利提出了一种支持企业级应用的云原生PaaS管理平台。
本发明为解决技术问题所采用的技术方案如下:
一种支持企业级应用的云原生PaaS管理平台,其特征在于,包括Kubernetes集群、PaaS管理平台部署、DevOps的集成;
Kubernetes集群通过ansible工具提供集群的部署,基础系统配置使用CentOS或Ubuntu,在每个节点安装依赖工具python3,在ansible控制端配置免密码登录,规划集群配置包括Kubernetes集群master节点的IP地址和worker node节点的IP地址,和用到的网络插件,配置集群参数后验证所有节点是否可以ping通,正常能看到节点返回SUCCESS;Kubernetes集群部署3个节点的etcd集群、部署3个master节点,且和etcd节点共用三台虚拟机、安装集群网络插件、创建内部通信用的证书、为每个节点安装docker服务、部署3个node节点、安装集群插件,部署组件包括:Etcd、Kube-apiserver、Kube-controller-manager、Kube-scheduler、Kube-proxy、Kubelet、Container Runtime,集群插件包括:Calico、Coredns、Metrics-server、Dashboard、Ingress;
PaaS管理平台部署,使用Helm在专用的Kubernetes集群上安装PaaS管理平台,因为通过在多个节点上运行PaaS管理平台可以提高可用性;在标准安装中,首先将Kubernetes安装在基础设施提供商中托管的节点上;然后使用Helm在Kubernetes集群上安装PaaS管理平台,Helm使用PaaS管理平台的Helm chart在Kubernetes集群的每个节点上安装PaaS管理平台的副本,使用负载均衡器将流量定向到集群中PaaS管理平台的每个副本,以提高PaaS管理平台的可用性;PaaS管理平台数据存储在etcd或MySQL中,etcd数据库在三个节点上运行,并且需要奇数个节点,这样它就可以由大多数节点选举出etcd集群的leader,如果etcd数据库不能选出leader,则etcd可能会失败,从而需要从备份中还原集群;
PaaS管理平台部署包括安装需要的CLI工具、添加Helm Chart仓库、为PaaS管理平台创建Namespace、选择合适的SSL选项、安装cert-manager、根据选择的SSL选项通过Helm安装PaaS管理平台、验证PaaS管理平台是否已成功部署、保存选项;
安装需要的CLI工具,确保kubectl-Kubernetes命令行工具、helm-Kubernetes的软件包管理工具已安装并在$PATH中可用,此安装指南使用的是Helm3;
添加Helm Chart仓库,使用helm repo add命令添加含有PaaS管理平台Chart的Helm Chart仓库,将命令中的<CHART_REPO>替换为latest,stable或alpha;latest表示推荐在尝试新功能时使用,stable表示推荐生产环境中使用,alpha表示未来版本的实验性预览;
为PaaS管理平台创建Namespace,定义一个Kubernetes Namespace,在Namespace中安装由Chart创建的资源,这个命名空间的名称为hithink-system:
选择SSL选项,PaaS管理平台默认需要SSL/TLS配置来保证访问的安全性,有三种关于证书来源的推荐选项,证书将用来在PaaS管理平台中终止TLS,PaaS管理平台生成的自签名证书,在这种情况下,在集群中安装cert-manager,PaaS管理平台利用cert-manager签发并维护证书,PaaS管理平台将生成CA证书,并使用该CA签署证书,然后cert-manager负责管理该证书;使用证书,此选项使用CA颁发的证书或自签名CA证书,PaaS管理平台将使用该证书来保护WebSocket和HTTPS流量,在这种情况下,必须上传名称分别为tls.crt和tls.key的PEM格式的证书以及相关的密钥,如果使用私有CA,则还必须上传该证书,这是由于节点可能不信任此私有CA;PaaS管理平台将获取该CA证书,并从中生成一个校验和,各种PaaS管理平台组件将使用该校验和来验证其与PaaS管理平台的连接;
安装cert-manager,如果使用证书文件ingress.tls.source=secret或者使用外部TLS负载均衡器可以跳过此步骤;仅在使用PaaS管理平台生成的证书ingress.tls.source=yunsheng或Let's Encrypt颁发的证书ingress.tls.source=letsEncrypt时才需要cert-manager,安装CustomResourceDefinition资源,为cert-manager创建命名空间;添加Jetstack Helm仓库,更新本地Helm chart仓库缓存,安装cert-manager Helm chart;安装完cert-manager后,通过检查cert-manager命名空间中正在运行的Pod来验证它是否已正确部署:
根据选择的SSL选项通过Helm安装PaaS管理平台,使用PaaS管理平台生成的自签名证书,PaaS管理平台的默认值是生成CA并使用cert-manager颁发证书,并将证书用于访问PaaS管理平台的接口,因为yunsheng是ingress.tls.source的默认选项,所以在运行helminstall命令时没有指定ingress.tls.source;将hostname设置指向负载均衡器的DNS名称,如果在安装alpha版本,需要把--devel选项添加到下面到Helm命令中,要安装指定版本的PaaS管理平台,使用--version选项;使用已有的证书,在此选项中,将使用证书来创建Kubernetes密文,以供PaaS管理平台使用;当运行此命令时,hostname选项必须与服务器证书中的Common Name或Subject Alternative Names条目匹配,否则Ingress控制器将无法正确配置;尽管技术上仅需要Subject Alternative Names中有一个条目,但是拥有一个匹配的Common Name可以最大程度的提高与旧版浏览器/应用程序的兼容性;设置hostname,将ingress.tls.source选项设置为secret,如果在安装alpha版本,需要把--devel选项添加到下面到Helm命令中;创建secret,创建ingress,配置secretName:yunsheng-secret;如果使用的是私有CA证书,在命令中增加--set privateCA=true;
验证PaaS管理平台是否已成功部署,检查PaaS管理平台是否运行成功:
保存选项,保存使用的全部--set选项,使用Helm升级PaaS管理平台到新版本时,将需要使用相同的选项。
DevOps的集成,用户向Gitlab或SVN提交代码,代码中包含Dockerfile文件;Jenkins监听代码库的推送和变更事件;Jenkins调用Maven插件对源码进行编译打包;Jenkins调用docker工具根据Dockerfile文件生成镜像,并推送镜像至Harbor仓库;Jenkins通过SSH远程调用Kubernetes集群的Master节点,更新Pod的的模板yaml文件,调用kubectl命令进行发布操作;Kubernetes集群的Node节点从Harbor仓库拉取镜像,启动Pod和应用容器。
本发明所达到的有益效果是:主要面向中型客户提供平台产品,面向小型客户提供平台服务;结合上层行业应用产品与方案的绑定,深耕垂直化行业,提供个性化,定制化的产品及服务;帮助企业完成数字化转型,降本增效;结合用户实际使用场景,实现资源的合理规划,为不同项目的不同阶段提供隔离的、可管理的、可监控的资源集合;提供多集群管理功能,通过统一管理平面,实现多集群纳管及监控。平台以项目为基本管理单元,将集群分为生产和非生产两种类型,用户通过平台创建项目,并为项目分配集群资源;项目创建成功后,可在项目使用的非生产集群中创建开发测试环境,可在项目使用的生产集群中创建生产环境,实现不同环境使用不同的集群资源,确保开发与生产环境的资源隔离;提供基础服务及中间件,满足项目在开发云原生应用时所需的平台级基础技术支撑;项目也可通过应用商店在不同的环境中部署应用,满足差异化需求;对项目所使用的集群的各种资源,进行更细粒度的管理;用户可通过微服务治理平台,对服务的配置、策略、流量等进行统一管理;用户可通过DevOps平台,打通项目整个生命周期管理,实现快速集成和部署;用户可通过统一监控平台,对集群资源、日志、服务链路等进行统一监控;从技术角度,平台能帮助企业构建更易于弹性扩展的应用程序;从业务角度,平台能为企业带来更快的业务响应速度和需求高效实现,有效地缩短应用交付的周期,让需求更快地变成代码,代码更快地变成线上的应用,最终为用户服务带来切实的业务价值。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
一种支持企业级应用的云原生PaaS管理平台,包括Kubernetes集群、PaaS管理平台部署、DevOps的集成;
Kubernetes集群通过ansible工具提供集群的部署,基础系统配置使用CentOS或Ubuntu,在每个节点安装依赖工具python3,在ansible控制端配置免密码登录,规划集群配置包括Kubernetes集群master节点的IP地址和worker node节点的IP地址,和用到的网络插件,配置集群参数后验证所有节点是否可以ping通,正常能看到节点返回SUCCESS;Kubernetes集群部署3个节点的etcd集群、部署3个master节点,且和etcd节点共用三台虚拟机、安装集群网络插件、创建内部通信用的证书、为每个节点安装docker服务、部署3个node节点、安装集群插件,部署组件包括:Etcd、Kube-apiserver、Kube-controller-manager、Kube-scheduler、Kube-proxy、Kubelet、Container Runtime,集群插件包括:Calico、Coredns、Metrics-server、Dashboard、Ingress;
还包括PaaS管理平台部署,使用Helm(Kubernetes包管理器)在专用的Kubernetes集群上安装PaaS管理平台,因为通过在多个节点上运行PaaS管理平台可以提高可用性;在标准安装中,首先将Kubernetes安装在基础设施提供商(例如Amazon的EC2或GoogleCompute Engine)中托管的节点上;然后使用Helm在Kubernetes集群上安装PaaS管理平台,Helm使用PaaS管理平台的Helm chart在Kubernetes集群的每个节点上安装PaaS管理平台的副本,使用负载均衡器将流量定向到集群中PaaS管理平台的每个副本,以提高PaaS管理平台的可用性;PaaS管理平台数据存储在etcd或MySQL中,etcd数据库在三个节点上运行,并且需要奇数个节点,这样它就可以由大多数节点选举出etcd集群的leader,如果etcd数据库不能选出leader,则etcd可能会失败,从而需要从备份中还原集群;
PaaS管理平台部署包括安装需要的CLI工具、添加Helm Chart仓库、为PaaS管理平台创建Namespace、选择合适的SSL选项、安装cert-manager、根据选择的SSL选项通过Helm安装PaaS管理平台、验证PaaS管理平台是否已成功部署、保存选项;
安装需要的CLI工具,确保kubectl-Kubernetes命令行工具、helm-Kubernetes的软件包管理工具已安装并在$PATH中可用,此安装指南使用的是Helm3;
添加Helm Chart仓库,使用helm repo add命令添加含有PaaS管理平台Chart的Helm Chart仓库,将命令中的<CHART_REPO>替换为latest,stable或alpha;latest表示推荐在尝试新功能时使用,stable表示推荐生产环境中使用,alpha表示未来版本的实验性预览;
为PaaS管理平台创建Namespace,定义一个Kubernetes Namespace,在Namespace中安装由Chart创建的资源,这个命名空间的名称为hithink-system:
选择SSL选项,PaaS管理平台默认需要SSL/TLS配置来保证访问的安全性,有三种关于证书来源的推荐选项,证书将用来在PaaS管理平台中终止TLS,PaaS管理平台生成的自签名证书,在这种情况下,在集群中安装cert-manager,PaaS管理平台利用cert-manager签发并维护证书,PaaS管理平台将生成CA证书,并使用该CA签署证书,然后cert-manager负责管理该证书;使用证书,此选项使用CA颁发的证书或自签名CA证书,PaaS管理平台将使用该证书来保护WebSocket和HTTPS流量,在这种情况下,必须上传名称分别为tls.crt和tls.key的PEM格式的证书以及相关的密钥,如果使用私有CA,则还必须上传该证书,这是由于节点可能不信任此私有CA;PaaS管理平台将获取该CA证书,并从中生成一个校验和,各种PaaS管理平台组件将使用该校验和来验证其与PaaS管理平台的连接;
安装cert-manager,如果使用证书文件ingress.tls.source=secret或者使用外部TLS负载均衡器可以跳过此步骤;仅在使用PaaS管理平台生成的证书ingress.tls.source=yunsheng或Let's Encrypt颁发的证书ingress.tls.source=letsEncrypt时才需要cert-manager,安装CustomResourceDefinition资源,为cert-manager创建命名空间;添加Jetstack Helm仓库,更新本地Helm chart仓库缓存,安装cert-manager Helm chart;安装完cert-manager后,通过检查cert-manager命名空间中正在运行的Pod来验证它是否已正确部署:
根据选择的SSL选项通过Helm安装PaaS管理平台,使用PaaS管理平台生成的自签名证书,PaaS管理平台的默认值是生成CA并使用cert-manager颁发证书,并将证书用于访问PaaS管理平台的接口,因为yunsheng是ingress.tls.source的默认选项,所以在运行helminstall命令时没有指定ingress.tls.source;将hostname设置指向负载均衡器的DNS名称,如果在安装alpha版本,需要把--devel选项添加到下面到Helm命令中,要安装指定版本的PaaS管理平台,使用--version选项,;使用已有的证书,在此选项中,将使用证书来创建Kubernetes密文,以供PaaS管理平台使用;当运行此命令时,hostname选项必须与服务器证书中的Common Name或Subject Alternative Names条目匹配,否则Ingress控制器将无法正确配置;尽管技术上仅需要Subject Alternative Names中有一个条目,但是拥有一个匹配的Common Name可以最大程度的提高与旧版浏览器/应用程序的兼容性;设置hostname,将ingress.tls.source选项设置为secret,如果在安装alpha版本,需要把--devel选项添加到下面到Helm命令中;创建secret,创建ingress,配置secretName:yunsheng-secret;如果使用的是私有CA证书,在命令中增加--set privateCA=true;
验证PaaS管理平台是否已成功部署,检查PaaS管理平台是否运行成功:
保存选项,保存使用的全部--set选项,使用Helm升级PaaS管理平台到新版本时,将需要使用相同的选项;
DevOps的集成,用户向Gitlab或SVN提交代码,代码中包含Dockerfile文件;Jenkins监听代码库的推送和变更事件;Jenkins调用Maven插件对源码进行编译打包;Jenkins调用docker工具根据Dockerfile文件生成镜像,并推送镜像至Harbor仓库;Jenkins通过SSH远程调用Kubernetes集群的Master节点,更新Pod的的模板yaml文件,调用kubectl命令进行发布操作;Kubernetes集群的Node节点从Harbor仓库拉取镜像,启动Pod和应用容器。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种支持企业级应用的云原生PaaS管理平台,其特征在于,包括Kubernetes集群、PaaS管理平台部署、DevOps的集成;
Kubernetes集群通过ansible工具提供集群的部署,基础系统配置使用CentOS或Ubuntu,在每个节点安装依赖工具python3,在ansible控制端配置免密码登录,规划集群配置包括Kubernetes集群master节点的IP地址和worker node节点的IP地址,和用到的网络插件,配置集群参数后验证所有节点是否可以ping通,正常能看到节点返回SUCCESS;Kubernetes集群部署3个节点的etcd集群、部署3个master节点,且和etcd节点共用三台虚拟机、安装集群网络插件、创建内部通信用的证书、为每个节点安装docker服务、部署3个node节点、安装集群插件,部署组件包括:Etcd、Kube-apiserver、Kube-controller-manager、Kube-scheduler、Kube-proxy、Kubelet、Container Runtime,集群插件包括:Calico、Coredns、Metrics-server、Dashboard、Ingress;
PaaS管理平台部署,使用Helm在专用的Kubernetes集群上安装PaaS管理平台,因为通过在多个节点上运行PaaS管理平台可以提高可用性;在标准安装中,首先将Kubernetes安装在基础设施提供商中托管的节点上;然后使用Helm在Kubernetes集群上安装PaaS管理平台,Helm使用PaaS管理平台的Helm chart在Kubernetes集群的每个节点上安装PaaS管理平台的副本,使用负载均衡器将流量定向到集群中PaaS管理平台的每个副本,以提高PaaS管理平台的可用性;PaaS管理平台数据存储在etcd或MySQL中,etcd数据库在三个节点上运行,并且需要奇数个节点,这样它就可以由大多数节点选举出etcd集群的leader,如果etcd数据库不能选出leader,则etcd可能会失败,从而需要从备份中还原集群;
PaaS管理平台部署包括安装需要的CLI工具、添加Helm Chart仓库、为PaaS管理平台创建Namespace、选择合适的SSL选项、安装cert-manager、根据选择的SSL选项通过Helm安装PaaS管理平台、验证PaaS管理平台是否已成功部署、保存选项;
安装需要的CLI工具,确保kubectl-Kubernetes命令行工具、helm-Kubernetes的软件包管理工具已安装并在$PATH中可用,此安装指南使用的是Helm3;
添加Helm Chart仓库,使用helm repo add命令添加含有PaaS管理平台Chart的HelmChart仓库,将命令中的<CHART_REPO>替换为latest,stable或alpha;latest表示推荐在尝试新功能时使用,stable表示推荐生产环境中使用,alpha表示未来版本的实验性预览;
为PaaS管理平台创建Namespace,定义一个Kubernetes Namespace,在Namespace中安装由Chart创建的资源,这个命名空间的名称为hithink-system:
选择SSL选项,PaaS管理平台默认需要SSL/TLS配置来保证访问的安全性,有三种关于证书来源的推荐选项,证书将用来在PaaS管理平台中终止TLS,PaaS管理平台生成的自签名证书,在这种情况下,在集群中安装cert-manager,PaaS管理平台利用cert-manager签发并维护证书,PaaS管理平台将生成CA证书,并使用该CA签署证书,然后cert-manager负责管理该证书;使用证书,此选项使用CA颁发的证书或自签名CA证书,PaaS管理平台将使用该证书来保护WebSocket和HTTPS流量,在这种情况下,必须上传名称分别为tls.crt和tls.key的PEM格式的证书以及相关的密钥,如果使用私有CA,则还必须上传该证书,这是由于节点可能不信任此私有CA;PaaS管理平台将获取该CA证书,并从中生成一个校验和,各种PaaS管理平台组件将使用该校验和来验证其与PaaS管理平台的连接;
安装cert-manager,如果使用证书文件ingress.tls.source=secret或者使用外部TLS负载均衡器可以跳过此步骤;仅在使用PaaS管理平台生成的证书ingress.tls.source=yunsheng或Let's Encrypt颁发的证书ingress.tls.source=letsEncrypt时才需要cert-manager,安装CustomResourceDefinition资源,为cert-manager创建命名空间;添加Jetstack Helm仓库,更新本地Helm chart仓库缓存,安装cert-manager Helm chart;安装完cert-manager后,通过检查cert-manager命名空间中正在运行的Pod来验证它是否已正确部署:
根据选择的SSL选项通过Helm安装PaaS管理平台,使用PaaS管理平台生成的自签名证书,PaaS管理平台的默认值是生成CA并使用cert-manager颁发证书,并将证书用于访问PaaS管理平台的接口,因为yunsheng是ingress.tls.source的默认选项,所以在运行helminstall命令时没有指定ingress.tls.source;将hostname设置指向负载均衡器的DNS名称,如果在安装alpha版本,需要把--devel选项添加到下面到Helm命令中,要安装指定版本的PaaS管理平台,使用--version选项;使用已有的证书,在此选项中,将使用证书来创建Kubernetes密文,以供PaaS管理平台使用;当运行此命令时,hostname选项必须与服务器证书中的Common Name或Subject Alternative Names条目匹配,否则Ingress控制器将无法正确配置;尽管技术上仅需要Subject Alternative Names中有一个条目,但是拥有一个匹配的Common Name可以最大程度的提高与旧版浏览器/应用程序的兼容性;设置hostname,将ingress.tls.source选项设置为secret,如果在安装alpha版本,需要把--devel选项添加到下面到Helm命令中;创建secret,创建ingress,配置secretName:yunsheng-secret;如果使用的是私有CA证书,在命令中增加--set privateCA=true;
验证PaaS管理平台是否已成功部署,检查PaaS管理平台是否运行成功:
保存选项,保存使用的全部--set选项,使用Helm升级PaaS管理平台到新版本时,将需要使用相同的选项;
DevOps的集成,用户向Gitlab或SVN提交代码,代码中包含Dockerfile文件;Jenkins监听代码库的推送和变更事件;Jenkins调用Maven插件对源码进行编译打包;Jenkins调用docker工具根据Dockerfile文件生成镜像,并推送镜像至Harbor仓库;Jenkins通过SSH远程调用Kubernetes集群的Master节点,更新Pod的的模板yaml文件,调用kubectl命令进行发布操作;Kubernetes集群的Node节点从Harbor仓库拉取镜像,启动Pod和应用容器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111115318.0A CN113824790B (zh) | 2021-09-23 | 2021-09-23 | 一种支持企业级应用的云原生PaaS管理平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111115318.0A CN113824790B (zh) | 2021-09-23 | 2021-09-23 | 一种支持企业级应用的云原生PaaS管理平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113824790A CN113824790A (zh) | 2021-12-21 |
CN113824790B true CN113824790B (zh) | 2024-04-26 |
Family
ID=78915273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111115318.0A Active CN113824790B (zh) | 2021-09-23 | 2021-09-23 | 一种支持企业级应用的云原生PaaS管理平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113824790B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064062B (zh) * | 2022-01-17 | 2022-05-13 | 北京快成科技有限公司 | 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置 |
CN115396304B (zh) * | 2022-09-15 | 2023-08-08 | 科讯嘉联信息技术有限公司 | 一种基于部署规划表自动化部署云原生应用的系统和方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800055A (zh) * | 2018-12-27 | 2019-05-24 | 北京航天智造科技发展有限公司 | 容器调度编排方法和系统 |
US10402090B1 (en) * | 2016-09-30 | 2019-09-03 | EMC IP Holding Company LLC | Data service protection for cloud management platforms |
CN110704164A (zh) * | 2019-09-30 | 2020-01-17 | 珠海市新德汇信息技术有限公司 | 一种基于Kubernetes技术的云原生应用平台构建方法 |
CN110990026A (zh) * | 2019-10-10 | 2020-04-10 | 武汉烽火信息集成技术有限公司 | 一种PaaS平台自动部署方法及系统 |
CN112311605A (zh) * | 2020-11-06 | 2021-02-02 | 北京格灵深瞳信息技术有限公司 | 提供机器学习服务的云平台及方法 |
CN113110326A (zh) * | 2021-04-12 | 2021-07-13 | 清华大学 | 基于工业互联网架构的智能工厂操作系统 |
CN113312074A (zh) * | 2021-06-16 | 2021-08-27 | 上海驻云信息科技有限公司 | 一种基于Kubernetes的软件部署方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180189054A1 (en) * | 2016-12-29 | 2018-07-05 | Arvind Varma Kalidindi | Automated platform re-creation system |
KR101987661B1 (ko) * | 2018-07-19 | 2019-06-11 | 나무기술 주식회사 | 클라우드 플랫폼에서의 클러스터 리소스 할당 및 관리 방법 |
-
2021
- 2021-09-23 CN CN202111115318.0A patent/CN113824790B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10402090B1 (en) * | 2016-09-30 | 2019-09-03 | EMC IP Holding Company LLC | Data service protection for cloud management platforms |
CN109800055A (zh) * | 2018-12-27 | 2019-05-24 | 北京航天智造科技发展有限公司 | 容器调度编排方法和系统 |
CN110704164A (zh) * | 2019-09-30 | 2020-01-17 | 珠海市新德汇信息技术有限公司 | 一种基于Kubernetes技术的云原生应用平台构建方法 |
CN110990026A (zh) * | 2019-10-10 | 2020-04-10 | 武汉烽火信息集成技术有限公司 | 一种PaaS平台自动部署方法及系统 |
CN112311605A (zh) * | 2020-11-06 | 2021-02-02 | 北京格灵深瞳信息技术有限公司 | 提供机器学习服务的云平台及方法 |
CN113110326A (zh) * | 2021-04-12 | 2021-07-13 | 清华大学 | 基于工业互联网架构的智能工厂操作系统 |
CN113312074A (zh) * | 2021-06-16 | 2021-08-27 | 上海驻云信息科技有限公司 | 一种基于Kubernetes的软件部署方法 |
Non-Patent Citations (2)
Title |
---|
基于Kubernetes和Docker技术的企业级容器云平台解决方案;王骏翔;郭磊;;上海船舶运输科学研究所学报(03);全文 * |
打造微服务容器化客服系统的设计与实现;仇建飞;;中国新通信(18);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113824790A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506412B (zh) | 基于Airflow的分布式异步任务构建、调度系统及方法 | |
US8918513B2 (en) | Network resource deployment for cloud-based services | |
CN113824790B (zh) | 一种支持企业级应用的云原生PaaS管理平台 | |
CN102427481B (zh) | 用于对云计算服务进行管理的系统及云计算管理方法 | |
US10462018B2 (en) | Managing a number of secondary clouds by a master cloud service manager | |
EP2675127B1 (en) | Method and device for automatically migrating system configuration item | |
CN110737442A (zh) | 一种边缘应用管理方法及系统 | |
EP2796996A1 (en) | Cloud infrastructure based management system and method for performing maintenance and deployment for application system | |
WO2020154194A1 (en) | Transformation configuration in instance data replication with bi-directional replication support | |
US11223615B2 (en) | Provisioning initial keystore for multi-tenant, microservice architecture-based integration service in a cloud computing environment setup | |
US8230416B2 (en) | System, method and article of manufacture for using shadow installations of software modules during distributed system upgrade | |
US20150207703A1 (en) | Abstraction models for monitoring of cloud resources | |
JP2012248184A (ja) | 自動化システムへアクセスする方法、ならびに本方法に基づいて動作するシステム | |
US11861342B2 (en) | Enhanced cloud-computing environment deployment | |
US10324701B1 (en) | Rapid deployment of computing instances | |
US11140147B2 (en) | SAML SSO UX improvements | |
US20220360504A1 (en) | Adapting microservices to multi-platform deployments | |
CN105426208A (zh) | 一种云计算系统OpenStack离线自动安装方法 | |
US11221839B2 (en) | Early software updates for multi-tenant integration service | |
US10817809B2 (en) | Systems and methods for customizable route optimization | |
CN111026723A (zh) | 大数据集群管理控制方法、装置、计算机设备及存储介质 | |
US20180217570A1 (en) | Methods for provisioning an industrial internet-of-things control framework of dynamic multi-cloud events and devices thereof | |
CN117112122A (zh) | 一种集群部署方法和装置 | |
US11755301B2 (en) | Deployment of cloud infrastructures using a cloud management platform | |
KR20210141601A (ko) | 라이센스 분석을 위한 시스템들 및 방법들 |
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 | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 116000, No. 977 Huangpu Road, Dalian High tech Industrial Park, Dalian, Liaoning Province Applicant after: Xinhuaxin Technology Co.,Ltd. Address before: 116085 No. 977, Huangpu Road, high tech Industrial Park, Dalian, Liaoning Applicant before: DALIAN HI-THINK COMPUTER TECHNOLOGY, Corp. Country or region before: China |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |