关于云计算:国星宇航-SaaS-系统容器化最佳实践

6次阅读

共计 2760 个字符,预计需要花费 7 分钟才能阅读完成。

作者:石浩男,国星宇航 Java 开发工程师,平时次要负责开发工作以及运维工作。之前次要从事大数据组件开发,以及数据血统相干的工作。K8s 对大数据组件反对水平还不够欠缺,能接触 K8s 的机会比拟少,但自己对于云原生有很强烈的向往,苦于原生 K8s 门槛较高,较为繁琐,正好借助于低成本入门的 KubeSphere,从头学习实际了 K8s。

公司简介

国星宇航是一家 Al 卫星互联网科技公司,由卫星互联网畛域的科研院所及部耿领军人才开办。截至目前,国星宇航已实现 10 次太空工作,研制并发射 14 颗 AI 卫星及载荷国星宇航通过低成本快响应卫星研制技术体系、全栈 AI 卫星网络技术体系、面向未来的可信共享互联通信技术体系,造成了面向不同利用场景的 B 端、G 端、C 端等卫星互联网产品,已服务上百家政企客户,并笼罩上亿 C 端用户。国星宇航始终保持与祖国在一起,助力社会,服务人民,致力于实现“同一个星空,同一个网络”的美妙愿景。

IT 建设指标

咱们冀望基于 K8s 搭建 PaaS 云计算根底平台,多租户治理应用资源,集成 CI/CD、反对灵便扩容与降级集群,构建企业级一站式 DevOps 架构,进步集群资源可监控性,可溯源操作审计。

环境痛点

物理机服务器集群,未应用第三方托管上云,在应用 K8s 之前应用 Docker Swarm 模式部署,Portainer 可视化治理 Docker 容器,开发部署环境凌乱,运维治理老本大,服务器资源利用率不高。

IT 运维与开发团队的规模

子部门,后端开发 2 人,前端 2 人,运维兼开发一人,小规模开发团队。

背景介绍

云原生(Cloud Native)这个概念最早由来自美国云原生公司 Pivotal 的 MattStine 于 2013 年首次提出,最早只是他依据其多年的架构与征询经验总结出的一个思维汇合,包含 DevOps、继续交付、微服务、麻利基础设施和 12 因素等几大主体。

当初着眼于云利用部署,其领有着弹性、共享、自治、高可用、按需分配资源、可监控审计等优良特点。

联合于云原生的各项劣势,咱们置信云原生即是将来。

在应用 K8s 之前,利用的部署以及管控对于开发者、运维来说繁琐且消耗精力,容器资源的调配、应用的状况在利用分部散乱的时候尤其难治理。

拥抱云原生,应用 K8s 后能不便业务解耦,拆散部署,高可用,对于开发人员能极大晋升开发效率。

在初期选型思考过部署原生 K8s,应用原生 Dashboard,起初思考学习老本过高,得失相当,直到偶尔的机会发现了 KubeShpere。

对于自己来说始终对于云原生都有向往,一眼相中了 KubeSphere 的 UI 界面,当然,还有更贴合开发的操作界面,在我认知方面 KubeSphere 之于 K8s 如同 Spring 之于 Java,开箱即用,即用即拿。

KubeSphere 比照于同类产品(Rancher 之类)的劣势在于国人开发,本地化水平更高,面向开发用户敌对,多租户权限调配更细粒度,日志查问界面便捷,周边生态整合全面,模块可插拔,可灵便配置须要的模块。

咱们以后将一部分 SaaS 产品运行于 KubeSphere 上,后续会思考进一步迁徙。

实际过程

KubeSphere 在相干业务的基础设施与部署架构介绍

咱们依靠于 kubeshere 部署 Harbor 公有镜像库,临时应用手动上传 Jar 包构建镜像,未应用 CI/CD 流程,后续可能会自行构建流水线,采纳 Helm 构建利用,更好贴合于 KubeSphere 利用市场。

在我的项目中,咱们应用我的项目网关,服务只有 Gateway 模块通过 Ingress 裸露对外地址,前端应用 OpenResty 部署。

鉴于人员不多以及利用临时仅对公司外部运行的状况,还未接入容器监控模块,后续可能会采纳 Prometheus+Grafana 监控配置,以保障服务运行状态的可观测性,以及依据监控数据灵便的动静伸缩。

通过企业空间逻辑隔离出 pord、dev、test 环境,开发人员按部门以及我的项目进行受权。

搭建 Nacos

在 Mysql 中执行 Nacos 初始化 SQL。

抉择新建自制利用。

本处应用 DockerHub 中的 Nacos 镜像,须要退出参数启动。

如若只增加这两个环境变量,则默认采纳内置 derby 数据库,重启会导致数据革除,为了数据长久化,倡议采纳外置数据库。

- name: MODE
  value: standalone
- name: PREFER_HOST_MODE
  value: hostname
- name: SPRING_DATASOURCE_PLATFORM
  value: mysql
- name: MYSQL_SERVICE_HOST
  value: xxx.xxx.xxx.xxx
- name: MYSQL_SERVICE_DB_NAME
  value: nacos
- name: MYSQL_SERVICE_PORT
  value: '30576'
- name: MYSQL_SERVICE_USER
  value: nacos
- name: MYSQL_SERVICE_PASSWORD
  value: nacos

部署结束后,登入 Nacos(此处应用路由解析了域名)

KubeSphere 自带底包运行利用近程调试

(应用第三方底包能够之家在启动命令处退出 java 启动命令来实现近程 Debug,此处示例 KubeSphere 自带 Java 底包)

在构建镜像,点击高级设置,能够对应增加调试参数,应用 Nodeport 对外裸露端口,即能够进行近程 Debug 利用。

KubeSphere 自带集群监控

与 KubeSphere 的契合点

在开发部署上,对内可针对于我的项目疾速利用开发,部署运行环境、中间件,且借助于 KubeSphere 自带监控告警保障服务可用;对外产品演示时能灵便创立销毁容器,服务即用即拿。

思考到 KubeSphere 无缝符合 K8s,其敌对的操作界面,使得咱们开发人员也能低成本的上手应用 K8s,享受其带来的便捷性。

因为咱们以后应用物理机部署,在未来可能会接入私有云产品,所导致的资源连通问题是绕不开的话题,所以 KubeSphere 所推广的混合云也是吸引咱们的一个点,借助于 KubeSphere 减速云上云下整合实现更好的资源共享。

对于一个良好的 K8s 载体,KubeSphere 的多租户个性这是原生 K8s 和其余同类产品都没有的性能。青云 QingCloud 做了很多企业级个性加强的工作,对于多我的项目并行以及环境隔离来说几乎是一剂良药,使得我的项目部署布局更加规整,并且 KubeSphere 的可察看性以及监控告警也是多租户的,能够细分开发人员更好的专一于本人所负责的模块。

落地功效

利用 KubeSphere 之后,和之前相比,开发人员生成镜像制品更加便捷、集群资源利用率进步、应用服务能灵便分配资源、环境隔离更加直观且易于治理、多租户权限配置能更大限度的避免误操作,后续可扩展性晋升。

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

正文完
 0