基于UMC的K8S和产品部署说明

标签: #无关联标签#
作者: 管理员  

2023-02-03 08:10 阅读量(117)

K8S云平台是目前产品的主要部署方式,通过云平台进行产品、方案部署,可以加快部署的效率,特别是针对集群式、高可用部署,云平台具有天然的优势。云平台的部署模式在满足常规部署的同时,也提供了对于服务器资源的监控、运维的辅助,能协助运维人员快速进行服务器升级、扩容、启停等操作,降低运维的难度。

由于K8S的部署方案一直在不断完善,并且基于UMC建立了一键部署的模式,所以在进行环境部署的过程中,对整个部署过程进行了梳理,记录了整体的部署以及部署过程中的问题点。本次部署由于部署的是测试环境,所以使用的是三台服务器搭建的非高可用环境。

总体说明

K8S云管理平台主要是为了满足对K8S集群的统一管理的,主要实现对K8S集群的部署、监控,以及对方案、环境、产品容器等的管理维护、运行监控、配置扩容等。

1.总体架构

UMC云管理平台是为了K8S统一管理与维护而开发的,支持多租户、多K8S集群、多方案、多产品/多组件的分布式高可用部署,简化系统使用者的操作过程和操作难度,提高了运维的工作效率。


底层通过容器化的产品套件作为支撑,包含ESB企业服务总线、MDM基础数据平台、IDM身份管理平台、DAP数据分析平台、Portal门户集成平台等产品。

中层通过K8S集群可根据自身需求对底层容器化的产品套件进行统一调度管理,UMC云管理平台可以对调度过来的各容器化的产品集成套件进行统一管理和监控。

2.部署方式

目前K8S的部署主要采用UMC一键部署的方式,而一键部署目前都是基于Ansible+部署脚本的方式实现的,Ansible作为一种自动化运维的工具,能满足批量系统配置、批量程序部署、批量运行命令等功能,而K8S的一键部署就是通过Ansible自动调用安装脚本,从而完成整个的部署过程。在这个过程中,根据实际部署的需要以及使用的不同,又分成了外围产品部署、K8S部署等不同的阶段。

3.部署流程

K8S的部署流程都是基于Ansible完成的,而K8S的容器操作这是基于K8S的API,具体的操作流程有所不同,总体来说主要分为以下步骤:

1.外围产品部署:部署UMC、Nginx、Redis、jdk、MySQL等,主要目的是保证UMC产品可以正常访问,通过服务器手动执行脚本完成;

2.K8S部署:部署docker、K8S、NFS镜像库等,主要目的保证K8S集群的建立,通过UMC配置和操作完成整个过程;

3.产品部署:通过UMC完成,主要是通过K8S的API实现容器的管理。

前置条件

由于K8S的部署采用Ansible+部署脚本的方式,所以在部署K8S环境前,需要部署服务器的基础环境,包括解压缩工具、Ansible工具、时间同步工具(如果服务器时间不一致需要进行时间同步)等。

1.服务器准备

非高可用环境需要使用3台服务器,其中一台master,两个worker,并且需要在同一网段操作,并且保证服务器可以互通,参考配置如下:


注意:存储SSD需要挂载在根目录/,或者/opt目录。

2.安装资料


3.安装工具

Ansible安装并放置到了对应的文件夹中,可以进行灵活配置,具体的操作步骤如下:

在master上创建目录,并上传Ansible安装包ansible-install.zip:


1.进入目录解压文件:



2.修改ansible-install目录下的install-ansible.sh文件:


根据服务器网络情况,选择对应有网或无网的配置,并调整对应的IP地址。

3.执行如下命令,给sh文件进行授权:


注意相关提示,根据提示输入服务器密码,知道显示SUCCESS表示所有服务器全部连通。

注意:在离线安装过程中,由于不同服务器的环境不一样,可能出现依赖包缺失的问题,根据报错信息下载对应的依赖包,再手动上传到

/opt/soft/ansible-install/ansible/目录,再重新执行部署脚本即可,下载地址可参考:http://rpmfind.net/linux/rpm2html/search.php或者https://pkgs.org/,根据操作系统的版本下载对应的依赖。

外围产品

外围产品主要利用Ansible进行一键安装UMC、Nginx、Redis、jdk、MySQL等,先安装外围产品主要是保证UMC的正常访问,能操作UMC才能保证后续通过UMC一键部署K8S集群,以及产品容器的部署。

1.介质上传

1.输入如下命令创建产品介质放置的文件夹,并且进入:


2.将产品介质上传到soft目录:


3.输入命令进行解压,并且进入到文件夹中:


2.参数配置

1.配置hosts.ini文件,只需要配置master的ip:


2.配置group_vars目录下的all.yml文件:


修改各产品参数,包括路径、用户名、密码、端口、版本等信息。

3.部署安装

1.输入命令进行外围产品安装:


2.安装完成后执行如下命令,让jdk的环境变量生效:

3.访问数据库,修改root密码,改为复杂密码:

4.初始化UMC的数据库:

5.执行命令安装UMC:

6.执行命令查看UMC日志:

7.启动成功后浏览器通过ip:1010/UMC登录UMC:

8.登录修改全局变量,修改“UMC服务URL”,将地址改为http://ip:1010/UMC:

分析总结

K8S云平台的部署模式是目前公司产品和方案统一采用的部署方案,通过云平台模式不仅可以降低产品部署、运维的难度,同时对于服务器的资源监控、统计分析也能发挥作用,实现集中的、一体化的管理。

1.部署总结

本次部署验证是第一次完全通过UMC进行K8S部署安装,虽然之前使用过一键部署,但都是在服务器直接执行脚本的。通过本次通过UMC部署,发现在部署过程中还是有很多需要注意的关键点,后续部署过程中需要加以关注。

1.依赖的问题,因为不同服务器的基础环境不一样,可能有的服务器会缺少一下关键依赖,导致软件部署失败,就需要手动下载依赖包;

2.时间不同步的问题,因为环境部署都是基于虚拟机,之前从未出现时间不一致的情况,但是这次部署由于虚拟机是复用的之前的,出现了比较大的时间差,但是K8S部署时集群一致无法创建,排查了很久才发现,后续需要注意将系统时间也纳入服务器检查范围。

2.文档资料

由于K8S的部署方式经历多个阶段不断完善,在这过程中也输出了大量的部署文档,这些文档有的是手动部署的,有外围产品部署说明的,也有UMC环境部署的,虽然各个阶段的部署内容都包含了,但后续还是需要对文档进行统一整合归档,形成标准的部署规程,也便于后续项目中进行环境部署,提升环境部署的效率。

3.个人总结

UMC云平台实际是一个K8S的管理工具,通过配置实现对K8S集群的统一管理,通过UMC的管理功能可以将产品方案直接融合到平台中,实现不同产品、不同方案的快速组合,并且随着UMC产品的不断升级,也逐渐完善了一键部署、接入配置、灰度升级等功能,不断优化运维效率。

对于一名技术人员来说,项目管理的能力非常重要,但是对于产品的掌握、环境的优化、运维也是十分重要的,无论是项目中遇到的技术问题,还是在实施过程中评估工作,了解技术、具备一定的技术能力将大大提升对项目的掌握,才能有效地推送项目的进展。

返回顶部