技研智联云原生容器化平台实践

news2024/11/17 7:23:17

作者简介:郑建林,现任深圳市技研智联科技有限公司架构师,技术负责人。多年物联网及金融行业经验,对云计算、区块链、大数据等领域有较深入研究及应用。现主要从事 PaaS 平台建设,为公司各业务产品线提供平台底座如技术中台,数据中台,业务中台等。

公司简介

深圳市技研智联科技有限公司:为佛山技研智联科技有限公司子公司,前者为三技精密和研华合资公司。提供从工控设备,网关,云平台一体化的专业印染数字化工业互联网平台。

佛山技研智联科技有限公司(以下简称“技研智联”)是由三技精密技术(广东)股份有限公司以及研华科技股份有限公司于 2020 年 8 月合资成立,是一家专注于为纺织企业提供自动化控制系统软件、工业互联网应用平台、数字化转型与智能制造整体解决方案,并为企业提供行业软件咨询、实施、集成等服务的高新技术企业,专精特新中小企业。

公司发展至今已经是 100 多人规模专业技术产品团队,自主研发的 iTEX 智慧纺织云平台,目前已经连接 70 多家工厂,2000 多台设备,能够把工厂各个系统、各类跨业务的数据在同一个平台上打通,让企业实现基于数据和流程的业务协同。

公司较早就开始拥抱云原生容器化部署,支持客户在公有云 iTEX 云平台使用 SaaS 产品,同时支持用户按私有云方式私有化部署安装使用。目前 IT 和运维团队规模 5 人,主要满足自身研发上云和客户安装部署运维需求。

背景介绍

本人为深圳市技研智联科技有限公司架构师和技术负责人,负责整个公司基础平台搭建设计,所在团队为整个公司产品业务提供基础 PaaS 平台,包括技术中台,数据中台,业务中台等。原先业务团队主要做 SaaS 云平台和边缘控制相关产品。使用超融合服务器上分割部署 K8s 集群,通过 Rancher 来管理服务器集群。DevOps 用的 git 支持的脚步打 Docker 镜像方式,手动发布服务。存在服务器资源不足,扩展性欠缺,运维管理不便,技术框架差异等问题,随着业务发展需要底层资源管理,技术框架,公共服务统一服务化迫在眉睫。

选型说明

作为公司基础服务平台团队,需要提供统一易用的容器服务发布部署管理一站式平台,期间对比了 Openshift,Rancher,KubeSphere 这几大开源 PaaS 容器管理平台,对比特点如下(希望尽量客观,各个平台组件不断发展,若有失正确望见谅):

表 1 开源 PaaS 容器管理平台对比

开源 PaaSRancherOpenshiftKubeSphere
开发团队Rancher红帽青云科技
容器平台
监控
devops一般一般
多集群支持一般良好
应用市场支持OperatorHelm
多租户支持一般支持一般支持良好
交互良好良好
安装

一方面 KubeSphere 优秀的交互体验一下击中了研发人员的心理,同时本着融合产品模块化开发的初衷,最终选择了 KubeSphere,希望能提高交互效果,另外期望可以提升整体产品底层设施稳定性和开发效率。

实践过程

K8s 集群基于腾讯云服务器 centos7.9 系统采用三个 Master 节点高可用集群多个 Worker 节点方案搭建,使用稳定 K8s v1.23.5 版本。分为开发,测试,预发布和生产四个私有网络 K8s 集群。

网络方案

网络采用 Calico CNI。相比 Flannel,Calico 网络插件具有如下优势:

  • 功能更全面,还可提供网络安全和管理;
  • Calico 不使用 Overlay 网络。相反,Calico 配置第 3 层网络,该网络使用 BGP 路由协议在主机之间路由数据包,性能具有优势 - 能做网络策略,可与服务网格 Istio 集成。

集群网络为腾讯云 VPC 私有网络外网不可访问,对外采用负载均衡统一接入经过 APISIX 流量网关后再到业务网关处理。服务之间都是内网通过 K8s 虚拟网络解析服务名访问。

存储方案

出于成本考虑,存储主要采用腾讯云 CBS 云硬盘存储,通过 NFS 挂载到 PV 中供服务绑定 PVC 使用。对性能要求高的也可以使用腾讯云上提供的其他高性能存储服务。

DevOps 持续集成部署

在使用 KubeSphere 之前公司公有云服务都部署在超融合服务器环境,使用 GitLab 的 CI 能力,在 Rancher 上发布服务。开发测试环境开发人员进行代码编译打包然后发布,生产环境开发人员打 tag 推送镜像,然后统一由运维人员使用 Rancher 进行发布部署。CI/CD 流程架构图如下:

原先使用 Rancher 集成部署项目流程

改用 KubeSphere 后开发人员集成发布在 KubeSphere DevOps 项目里完成整个流程的编辑运行查看等操作。基于 Jenkins 脚本编排流水线,生产环境由运维人员进行 DevOps 项目授权操作。操作起来更流畅,能实现更复杂的流水线编排,但 Jenkins 容器镜像相对较大会吃资源一点。基于 KubepShere CI/CD 流程架构图如下:

使用 KubeSphere 后集成发布部署项目流程

日志与监控

日志与监控方案

日志监控采用更为轻量的 Loki 系统组件来采集处理,并用 Grafana 进行可视化展示,监控使用 Prometheus,同样使用 Grafana 来展示。

Loki+Granfana 日志系统

KubeSphere 账号权限管理

各个应用普遍存在自己的账号角色体系,管理起来会比较繁琐,因此打通产品应用账号和 KubepShere 账号体系能极大提高配置使用体验,幸好 KubepShere 提供了 oauth 授权接口模板,只需要按照例子配置 url 及 client_id,写好回调处理接口即可打通账号授权登录。授权登录架构图如下:

KubeSphere 账号授权方案

使用效果

账号以及项目权限管理

打通应用系统账号跟 KubepShere 账号授权后,用户及权限管理更容易便捷,KubeSphere 集成效果如下图:

KubeSphere 平台集成

初次登录 KubeSphere 授权个人信息即可,后续登录无需重复授权操作。目前不足之处是企业租户和角色没有和我们平台应用打通,需要各自配置。授权信息需要账号 ID,账号名字以及邮箱等。第一次授权确认账号信息如下图所示:

账号授权 KubeSphere 登录

应用服务发布部署

应用服务发布部署功能更全面,方便统一管理控制。

服务集成发布

在使用过程中也出现过偶尔卡住需要取消重新运行情况,多个流水线同时运行需要较长时间排队问题,后续运行效率这块希望能够优化。

资源及服务性能监控

KubeSphere 监控提供了 Prometheus 监控套件,对服务器资源及使用情况能实时监控同时可以查询历史变化,极大方便了系统维护管理,提前发现系统资源瓶颈进行处理,提高稳定性。服务器集群监控如下图所示:

集群资源性能监控

KubeSphere 同时支持对单个服务的性能和资源使用进行监控,这是原先使用 Rancher 没有体验过的,对评估整体服务部署资源性能占用有了很好计算参考和优化方向。服务监控如下图所示:

服务资源性能监控

容器管理组件扩展

去年六月底 KubeShere 3.3.0 版本发布后第一时间安装尝鲜,一开始全功能安装 KubeSphere,core,Prometheus,Istio,DevOps,monitor,APP 应用商店等各个组件。发现整个一套部署下去会很重,同时当前阶段有些组件还不太用得上,于是在部署安装配置文件里对一些模块(如 Istio,APP 商店)设置为 false 不安装即可。

未来规划

PaaS 容器管理监控等基础设施作为企业产品服务的重要底座,稳定性,易用性,可适配性也是我们不断追求的目标,因此计划后续结合 KubeSphere 强大的容器管理平台能力进行自身产品需求服务管理进行融合,几个重要方向如下:

  1. 轻量化部署 KubeSphere 核心组件,同时开发适配自己需要的插件。
  2. 轻量化部署后做多环境集群统一管理。
  3. 同时特殊场景下支持混合云场景。
  4. 根据后续业务量合适时机上 Istio 和 Serverless。

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/350218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何将Python项目部署到新电脑上运行?

如何将Python项目部署到新电脑上运行? 在工作中,可能需要在新服务器上部署项目代码,例如新增服务器、把测试环境的代码部署到生产环境等。 在生活中,也会遇到换新电脑,需要将自己在旧电脑上写的(项目&…

Linux内存分区(swap)

目录 1、使用物理分区创建内存交换分区 2、使用文件创建内存交换文件 当硬件的设备资源充足的话,那么swap是不会被我们的系统所使用到的,所以swap会被利用到的时刻通常就是物理内存不足的情况 我们知道CPU所读取的数据都来自于内存,那么当…

硬件系统工程师宝典(7)-----信号完整性分析中的时序设计

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。 上篇我们说到信号的串扰以及减小串扰的方法。今天我们来看看信号的时序设计需要考虑什么? 信号的时序设计 信号的时序要求就是数据信…

【JavaGuide面试总结】Redis篇·上

【JavaGuide面试总结】Redis篇上1.Redis 除了做缓存,还能做什么?2.Redis 可以做消息队列么?3.如何基于 Redis 实现分布式锁?4.Redis 常用的数据结构有哪些?5.String 的应用场景有哪些?6.String 还是 Hash 存…

【AI/NLP】InstructGPT数据标注问题

文章目录1 背景介绍2 标记员筛选2.1 标记员筛选标准3 数据集及其标注3.1 预训练3.2 微调3.2.1 SFT-demonstration data3.2.2 RM-comparison data3.3 数据集大小4 模型实现1 背景介绍 ChatGPT的训练过程与InstructGPT相近,大致分为三步: SFT&#xff1a…

基金详细介绍

投资回报率 利润 / 投资总额(第一次投资回报率 5%) 关注南方理财 60 天债券 B(202306)万元收益 50—60 元 购基七步曲: 风险测试基本知识交易指南查看业绩了解评级在线下单赎回 基金类型: 积极成长型基金…

svg转png

svg转png写了一个spring boot项目,支持传入svg文件转出png图片,并且自定义转出png的宽和高。主要代码如下:所需依赖如下:演示如下:首先,运行项目使用接口调用工具调用接口发送请求,提取文件1000…

日本机载激光雷达测深进展(一)日本启动测量90%沿岸水深项目

海洋地图项目利用航空测深绘制日本90%沿海20m以浅区域,是日本海道协会(JHA)和日本财团的一个联合项目。 迄今为止,只有不到2%的日本沿海水域得到了测绘,严重拖累了在海洋事故、防灾减灾、篮碳以及生物多样性保护等领域…

数据结构——第二章 线性表(1)——顺序结构

线性表1. 线性表1.1 线性表的定义1.1.1 访问型操作1.1.2 加工型操作1.2 线性表的顺序存储结构1.2.1 定义顺序表数据类型方法11.2.2 定义顺序表数据类型方法21.3 顺序表的基本操作实现1.3.1 顺序表的初始化操作1.3.2 顺序表的插入操作1.3.3 顺序表的删除操作1.3.4 顺序表的更新操…

Windows环境下使用Pycharm运行sh文件

博主在调试一些程序时,时常遇到 .sh文件,这是Linux中的shell脚本文件,那么这种文件在windows下如何运行呢,其实我们可以通过git来实现,接下来看我操作。 首先我们需要安装Git,关于其安装过程可以参考博主这…

wholeaked:一款能够追责数据泄露的文件共享工具

关于wholeaked wholeaked是一款功能强大的文件共享工具,该工具基于go语言开发,可以帮助广大系统管理员和安全研究人员在组织发生数据泄露的时候,迅速找出数据泄露的“始作俑者”。 wholeaked可以获取被共享的文件信息以及接收人列表&#x…

【云计算自学路线】

云计算包含的技术内容和涉及的方向比较多,一定要进行系统化的学习才能更好的掌握这门技术。 云计算作为互联网新技术领域,现阶段也是出于高速发展期,想学习加入云计算行业的小伙伴可以抓紧机会了,跟着小课一起来了解云计算以及它…

【PTA Advanced】1146 Topological Order(C++)

目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 思路 C 知识UP 代码 题目 This is a problem given in the Graduate Entrance Exam in 2018: Which of the following is NOT a topological order obtained from the given dire…

佳能镜头EOS系统EF协议逆向工程(四)常用指令

目录 EOS5000(基础协议) AE*记忆键 物镜38-76焦距76mm的帧值(手动焦距) 帧操作和解码命令 指令0x0A:请求物镜可用 指令0xA0、B0、B2、90和F0:光学特性和AF状态 指令0x80-0A:请求物镜的物理特性 指令0xC2&#…

(考研湖科大教书匠计算机网络)第四章网络层-第四节:IP数据报的发送和转发过程

获取pdf:密码7281专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:概述二:举例三:路由器可以隔离广播域本节对应视频如下 【计算机网络微课堂(有字幕无背景音乐版)】&…

文华财经期货策略高胜率顶底反转指标公式,短线操盘量化CTA主图K线指标

​期货指标公式不是交易的圣杯,也不是期货亏损后的救命稻草。请理性运用指标公式,独立决策,盈亏自负。 什么是多头趋势行情? 多头趋势行情指的是市场单边多头行情。具体表现为上涨过程中出现连续上涨的高点与低点,只要…

3.4 ISIS和OSPF之间路由引入

实验目的掌握在IS-IS中引入OSPF路由的方法掌握在OSPF中引入IS-IS路由的方法实验拓扑ISIS和OSPF之间路由引入实验拓扑如图3-3所示: 图3-3:ISIS和OSPF之间路由引入 实验步骤IP地址的配置R1的配置 <Huawei>system-view [Huawei]undo info-center enable

Spring 框架源码(六) Bean的生命周期全流程源码解析

Spring框架作为Java王国的地基&#xff0c;我觉得它包含了很多精妙的设计&#xff0c;例如Bean工厂设计、Bean的生命周期、tx、aop、web、mvc等&#xff0c;最核心基本的Bean设计是Spring 的框架的灵魂&#xff0c;本文就Bean的生命周期全流程做源码程度上的解析&#xff0c;欢…

【surfaceflinger源码分析】surfaceflinger进程的消息驱动模型(二)

接着上篇文章中的两个新疑问: mEventTube是个什么玩意&#xff1f;MessageQueue::setEventConnection(…) 什么时候有谁调用的 &#xff1f; BitTube mEventTube的类型为class BitTube&#xff0c;BitTube从字面上的意思来看bit管道&#xff0c;bit隧道&#xff0c;应该是一…

20230216在Ubuntu18.04下查看硬盘信息

20230216在Ubuntu18.04下查看硬盘信息 2023/2/16 22:25 百度搜索&#xff1a;查看 HDD 缓存 ubuntu [BEGIN] 2023/2/16 22:10:24 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ cat /sys/block/sda/device/modelHUS726060ALE61…