当前位置: 首页 > news >正文

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

作者简介:郑建林,现任深圳市技研智联科技有限公司架构师,技术负责人。多年物联网及金融行业经验,对云计算、区块链、大数据等领域有较深入研究及应用。现主要从事 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 发布!

相关文章:

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

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

订单服务:订单流程

订单流程 订单流程是指从订单产生到完成整个流转的过程,从而行程了一套标准流程规则。而不同的产品类型或业务类型在系统中的流程会千差万别,比如上面提到的线上实物订单和虚拟订单的流程,线上实物订单与 O2O 订单等,所以需要根据…...

Python的有用知识,一共十三个代码片段,确定不来看看吗

前言 之前发过22个小技巧,今天就来分享分享13个非常有用的代码片段 赶紧码住,看看你都了解吗 1.将两个列表合并成一个字典 假设我们在 Python 中有两个列表,我们希望将它们合并为字典形式,其中一个列表的项作为字典的键&#…...

数据结构与算法-数组

前言:几乎所有的编程语言都原生支持数组类型。因为数组是最简单的内存数据结构。创建一个数组:let arr new Array()或let arr new Array(5) // 指定长度或let arr new Array(1,2,3,4,5) // 将数组元素作为参数传给构造函数或let arr [1,2,3,4,5] // …...

PMP证书在哪个行业比较有用?

PMP 各个行业都能用,PMP 的知识体系是通用的,管理层的考试也有借鉴PMP知识的地方。历年考生考的最多的是IT 行业,其他行业也都有分布。PMP认证从国外引进大陆这么多年了,其火热程度依然不减,我个人认为是取决于市场的运…...

Wine零知识学习4 —— Wine编译进阶详解

本系列第3篇文章Wine零知识学习3 —— Winetricks介绍及下载和运行讲述了Wentricks的下载及使用。在Winetricks的使用过程中会发现很多应用下载会出现问题,会提示32位程序无法运行在64位系统上。为什么会出现这个问题?又如何解决此问题?这就是…...

win10-右键打开windows terminal

文章目录windows terminal设置右键打开打开注册表添加一个右键选项新建一个项添加右键的名称和图标右键选项执行的命令测试windows terminal windows 新一代命命令行 设置右键打开 打开注册表 WinR 输入: regedit 定位: 计算机\HKEY_CLASSES_ROOT\Di…...

关于使用CMT2300A FIFO缓存区间设置为64Byte的问题

首先请看,CMT2300A 是什么产品,或者说是 模组吗? 请看介绍: https://blog.csdn.net/sishuihuahua/article/details/105095994 以及RFPDK 的使用: 这博客,记录了 RFPDK 的使用,以及遇到的一些问题 我说一下&#…...

网页概念、常用浏览器及内核、Web标准

网页、常用浏览器及内核、Web标准一、网页1.1、什么是网页?1.2、什么是HTML?(重点)1.3、网页的形成?二、常用浏览器三、浏览器内核四、Web标准(重点)4.1 为什么需要Web标准?4.2 Web标准的构成一…...

【刷题笔记】--搜索二维矩阵 II

题目: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16…...

uni-app实战教程

一、准备 下载HBuilderX编辑器,前往下载注册百度AI账号,创建应用获得Appid和Secret 前往注册百度AI通用物体识别文档 前往查阅Uni-App文档 前往查阅HTML5 文档 前往查阅HTML5文档 前往查阅 二、介绍 开发工具:HBuilderX跨段框架&#xff0…...

SpringCloud: sentinel降级配置、热点参数、系统规则 配置到nacos

一、application.yml spring.cloud.sentinel cloud:nacos:discovery:# 服务注册地址server-addr: xxx.xxx.xxx.xxx:8848sentinel:eager: truetransport:# 控制台地址dashboard: localhost:9999# nacos配置持久化datasource:ds2:nacos:server-addr: xxx.xxx.xxx.xxx:8848dataId…...

交换机之配置netsflow

网络监测技术Sflow——提供完整的第二层到第四层信息,可以适应超大网络流量环境下的流量分析,让用户详细、实时地分析网络传输流的性能、趋势和存在的问题。 (1)特性: 支持在千兆戒更高速的网络上精确地监控网络流量…...

非科班出身学习软件测试可以么

IT行业里对小白最友好的非软件测试莫属了,但是也要看你个人在学习软件测试这件事上面花费了多少的时间和努力了~ 每年毕业季,IT行业依然是比较热门且收入是最高的行业。对于应届毕业生来说想要进入IT行业,除了前后端开发,软件测试…...

面试已上岸,成功拿到阿里和腾讯的入职offer,Java程序员面经全在这了,希望能帮到你!

前言 一开始的时候简历海投大多数都被拒绝了,后来自己找在腾讯上班的朋友帮忙改了一下简历,果然不一样了大多都能拿到面试机会,当然拿到后也没有那么顺利,面了差不多有十几家公司的样子,大大小小的都有,其中…...

Redisson分布式锁

目录一,场景说明二,Redisson分布式锁1,引入依赖2,生成RedissonClient对象3,测试三,说明一,场景说明 为什么需要分布式锁呢? 如果是单机服务,即只有一台服务器&#xff…...

LOF(Local Outlier Factor)原理

文章目录1定义2 k近邻距离(k-distance of an object p)3 k近邻4 可达距离5 局部可达密度6 lof参考:1定义 LOF(Local Outlier Factor)是一种描述异常值的方法。 2 k近邻距离(k-distance of an object p&am…...

[ vulhub漏洞复现篇 ] Drupal<7.32 Drupalgeddon SQL注入漏洞(CVE-2014-3704)

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

Part 4 描述性统计分析(占比 10%)——下

文章目录【后续会持续更新CDA Level I&II备考相关内容,敬请期待】【考试大纲】【考试内容】【备考资料】【扩展知识】4、相关分析4.1、相关分析的描述——散点图4.2、相关分析的类型4.3、相关分析的度量4.3.1、协方差4.3.2、相关系数【后续会持续更新CDA Level …...

【一般人不会告诉你】比肩chatgtp的5款AI网站

话不多说,直接上连接 1. Dall-E: https://labs.openai.com/ 2. Codeformer: https://shangchenzhou.com/projects/Co... 3. Playground AI: https://playgroundai.com/ 4. Clip Drop: https://clipdrop.co/relight 5. Astria: https://www.strmr.com/examples …...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

【JVM】- 内存结构

引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...