集成底座方案是应用于企业信息化建设的集成整合阶段,通过建立统一、标准、柔性、可复用、可扩展的IT架构,解决企业信息化建设过程中缺乏整体规划、集成整合难度大、安全管控不到位等问题,强化企业信息化的架构建设、集成整合、数据治理、安全管控的水平,为企业发展提供全面的支撑。

集成底座主要包括IDM统一认证平台、MDM基础数据平台、ESB企业服务总线三个产品,产品之间相互支撑,同时对外提供数据和服务,满足统一认证、主数据治理、业务集成等需求。同时为了保证集成底座方案的管理与维护,整个方案采用云平台容器化的部署方案,基于K8S进行容器统一管理,而在实际项目中K8S集群的管理往往会成为运维的难点。本次环境升级的主要目的就在于优化K8S集群的维护模式,提升环境的稳定性

1总体说明

集成底座方案包括IDM、MDM、ESB产品,并且通过各个产品的集成整合形成了一个整体,解决企业信息化基础建设的难题,同时借助产品的灵活特性,基于各个子方案满足更多的业务场景需求。

1.1集成架构

集成底座方案,实际上基于IDM、MDM、ESB产品实现了5A管控、主数据治理、业务集成等多个方面的需求,其中5A管控以IDM平台为主,结合ESB和MDM完成组织、角色、用户、权限的统一;主数据治理以MDM平台为主,结合ESB实现主数据的同步分发,保证各个业务系统基础数据的一致;业务集成以ESB为主,通过ESB的服务治理实现跨系统的面向服务的业务数据集成,并通过MDM平台保证业务数据集成时基础数据的一致。

1.2业务场景

集成底座的业务场景主要包括5A管控、主数据治理、API治理、应用集成等。

1.5A管控:以IDM为主,通过ESB实现组织、角色、用户、权限等同步,实现基于IDM平台的统一用户、统一认证、统一授权、统一审计、统一应用管控;

2.主数据治理:以MDM平台为主,通过ESB实现从源头系统到MDM、MDM到下游系统的同步分发,实现各系统基础数据的同源一致;

3.API治理:以ESB平台为主,将IDM、MDM,以及各业务系统的服务接口注册到ESB平台,并通过ESB实现API安全、监控、预警、测试等功能;

4.应用集成:以ESB平台为主,主要是通过ESB实现跨系统的服务对接,实现系统单据、业务数据的集成,满足异构系统集成对接的需求,同时借助MDM实现的基础数据治理保证业务对接过程中基础数据的一致。

1.3升级说明

本次升级主要是为了彻底解决之前在实际项目中出现的K8S证书到期的问题,同时通过升级对集成底座平台的部署环境进行整体的优化。

本次升级主要有两个目的:一是通过部署新环境实现双K8S集群运行,保证在一套K8S宕机的情况下,可以快速切换另一套K8S集群,提高集成底座系统运行的稳定性;二是部署切换到新环境,对已有的K8S集群进行重置,彻底解决K8S证书有效期只有1年的问题。

2升级方案

本次升级主要是基于现有的K8S集群环境进行扩展,通过再部署一套K8S实现两套环境并行的方式,从而提升云平台整体环境的稳定性,实现环境的快速切换。

2.1部署架构

新部署架构,采用双K8S集群,部署开发、测试、发布、生产四个环境:

通过升级后,需要部署两套K8S集群,通过一套UMC集群进行管理维护,再部署不同的环境,并保证发布、生产环境部署在不同的集群中,从而保证在一个K8S集群宕机的情况下,可以保证通过另一个环境进行替换

2.2升级步骤

升级主要包括两部分内容:一是再部署一套K8S环境,并采用两套K8S并行的方式,用于解决单K8S集群出问题时的备用;二是彻底解决现有环境的K8S证书有效期只有1年的问题。

1.部署新集群:基于新服务器部署K8S环境,并且在部署时采用永久证书(100年)的安装文件;

2.部署新环境:通过UMC平台部署一套新的产品集群(包括IDM、MDM和ESB),并且通过资源同步保证新环境的配置和原生产环境一致;

3.老环境切换:通过UMC进行环境切换,将生产地址指向新环境,保证访问地址不变的情况下,直接访问新的生产环境;

4.老环境重置:切换到新环境后,释放原生产环境和K8S集群,并对原K8S集群进行重置,解决K8S证书有效期只有1年的问题;

5.老环境冷备:原环境重置后,重建生产环境作为备份,并将环境配置文件同步到备份环境中,保证备份环境和运行环境一致。

2.3所需资源 

2.4问题修复

1.问题修复主要是修复现有的K8S证书有效期只有1年的问题,处理成永久许可(100年);

2.新生产环境部署后,启动新生产环境,通过Nginx代理将生产环境端口82指向新生产环境,释放现有生产环境;

3.替换K8S源码补丁文件,通过集群初始化的方式重置现有K8S集群,从而将K8S证书许可处理为永久许可;

4.K8S集群重建后,验证K8S证书有效期,创建生产环境,验证环境准确性。

3升级步骤

由于需要重新部署一套K8S集群,而按照云平台的部署架构,需要单独提供5台服务器部署高可用的K8S环境,并基于新服务器进行环境部署,再通过UMC部署生产环境。

3.1服务器准备

1.根据服务器资源清单分配服务器资源;

2.验证服务器的连接信息,并且检查服务器的系统、CPU、内存信息,确认相关磁盘的分配以及挂载点;

3.确认服务器的网络、IP情况,以及新服务器和现有服务器的网络互通情况;

4.环境确认无误后,将外围产品安装包、K8S集群安装包上传至服务器。

3.2集群部署

1.解压外围产品安装包,修改配置文件,通过服务器命令安装外围相关产品;

2.访问UMC平台,注意K8S集群及服务器信息,通过UMC的部署功能部署K8S集群;

3.注意:需要在UMC中新增一个K8S集群,不要在原K8S集群的基础上进行扩充。 

3.3环境部署

1.通过UMC新建一个生产环境,并将现生产环境的资源同步到新的生产环境中;

2.启动新的生产环境,启动成功后测试各个产品访问、产品功能、集成接口是否可以正常访问,对照接口文档是否可以正常进行数据的读写操作。

3.4环境切换

1.测试通过后进行生产环境的切换工作,主要通过Nginx进行端口切换,修改Nginx中的配置,将新的生产环境端口切换为82端口,原生产环境切换到闲置接口中(如83);

2.重启Nginx,通过生产环境地址进行访问,测试是否可以正常访问;

3.通过UMC检查产品运行日志,确认当前运行的生产环境为新部署的环境;

4.监控生产环境的运行,确认生产环境已经可以正常运行后,再重置原生产环境,修复K8S证书的问题。

4切换方案

在部署完成并且通过测试后,需要切换生产环境,将生产运行环境切换到新环境,并释放原生产环境和K8S集群,从而进行K8S集群重置,以解决原K8S集群证书有效期只有1年的问题

4.1切换方式

新K8S集群和生产环境部署完成,并测试完成后,通过UMC的接入配置修改Nginx的配置,将生产地址指向新建的生产环境,从而实现生产地址不变的情况下,直接访问到新生产环境。

由于集成底座的外网访问是通过外网服务器的Nginx指向的内网,所以无需对外网进行调整。

4.2影响内容

1.影响内容:在进行生产环境切换时,需要进行环境重启,会影响到生产环境的访问,所以需要在访问量小的时间重启,并且提前进行时间协调;

2.停机时间:停机重启的时间会根据环境部署以及测试的结果确定,尽量选择在业务量比较小的时间段,减小对业务的影响;

3.访问信息:采用Nginx代理的方式控制访问地址,保证切换完成后访问地址不变,对用户以及其他系统来说是无感知的。

4.3切换条件

对于升级后的环境,采用双K8S集群,并且部署两套生产环境,根据具体需要再进行环境的切换,一般在遇到如下问题时需要考虑切换环境:

1.需要对生产环境进行产品、代码升级,升级过程中需要重启服务,考虑采用两套环境切换的方式,尽量减少对业务使用的影响;

2.当前运行的生产环境资源不足,需要对资源进行扩充或调整,会导致生产环境重启,通过切换生产环境来进行分别调整;

3.当前运行的生产环境出现异常,且无法快速恢复,需要切换到备用生产环境,再进行环境问题的排查;

5注意事项

在环境升级以及后续切换、运维的过程中,要注意两套生产环境是护卫备份的,所以要控制两个环境的资源同步,保证两个环境可以快速切换

5.1生产环境

1.部署两套K8S集群,在每一套集群下分别建立一个生产环境(由于UMC的限制,可以建立一个生产环境、一个发布环境,发布环境作为生产环境的备份),两套K8S集群并行,但生产环境只运行一个,在需要的时候进行切换。

2.在进行生产环境启动时,要注意产品的许可,由于产品许可时控制容器数,所以在启动产品容器时,主要总容器数不要超过产品许可限制。

5.2环境同步

1.由于两个生产环境采用的是互为备份,单环境运行的模式,所以需要保证两个生产环境的一致;

2.为了保证数据一致,两个环境使用同一套数据库,无论启用任意一个,环境、数据都来源于同一位置,从而保证数据的一致;

3.对于产品相关的配置、补丁,以及通过ESB开发部署的相关服务接口,通过UMC进行资源拉取的方式;

4.在环境升级维护过程中,需要先升级开发、测试环境,测试通过后才允许向生产环境迁移,而UMC的“推送资源”可以将相关文件直接推送至生产环境:

5.在升级、部署、运维过程中,要先通过开发、测试环境进行测试,然后用UMC的资源推送进行生产环境部署,从而保证两个生产环境的一致;

6.注意1:在将测试环境资源同步生产环境时,需要先推送一套环境,在启动运行测试无误后,再将测试资源推送至另一套生产环境,如果存在问题,则在修复完成后统一推送;

7.注意2:后续每次调整测试资源并推送生产环境时,需要做好版本记录,记录推送时间以及推送内容,参考如下:

5.3切换步骤

1.首先通过UMC访问生产环境的备份环境,确认备份环境的启动状态,如果未启动则先启动备份环境(如果容器不足则先将开发、测试环境的容器结束);

2.确认生产环境的备份环境是否可以正常访问使用(备份环境也会绑定一个端口83,用于测试验证);

3.修改Nginx配置文件,将生产环境端口82与冷备生产环境的端口83进行互换,通过reload命令重启Nginx;

4.访问测试,确认访问时运行的是备份的生产环境(可以通过UMC的运行日志确认)。

6总结说明

本次升级主要是为了解决之前在项目中出现的K8S证书过期的问题,同时由于项目中的环境已处于上线运行状态,不能长时间停机维护,所以采用双K8S集群的方案,一方面便于解决问题,另一方面通过双集群运行,也能保证后续再出现集群问题时可以快速切换

6.1环境部署

通过升级建立两套生产环境(基于UMC构建发布环境作为生产环境的备份),在后续管理、运维的过程中,可以通过两套环境切换的方式进一步提升使用效果。由于统一认证涉及内部大部分业务系统的日常登录与使用,所以在平时升级维护时需要多方协调时间来减小对业务的影响,通过两套生产环境互为备份,并基于UMC的接入配置进行Nginx的动态切换,基于可以实现不停机的环境切换,可以更进一步提升运维的效率。

6.2优化架构

通过对整体环境进行升级,优化了整体的部署架构,由于部署过程中释放了原有的生产环境和K8S集群,可以对原环境中部署的内容和部署方式进行进一步优化,从而完善整体的架构体系,降低后续出问题的几率。

6.3验证产品

为了提高K8S集群部署的便捷性,在UMC中提供了K8S集群的一键部署功能,并且支持多集群的部署,在升级过程中就是通过UMC进行集群的部署,并且实现了同一套UMC管理多套K8S集群,通过这种管理方式也对产品的相关管理功能进行验证和完善,不断优化产品的功能,保证后续产品使用时可以更加人性化和便捷化。

集成底座方案作为核心方案之一,在实际项目中也有很多的应用,而每个项目遇到的实际问题都会有所区别,解决实际项目问题的过程,也是对产品功能和方案架构不断优化的过程,所以对于每一次的优化调整都要做好分析记录,把重要的内容纳入到产品和方案中,以提升产品方案的实用性,提升项目的交付效率。 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐