乐趣区

关于容器:T3-出行云原生容器化平台实践

公司简介

T3 出行是南京领行科技股份有限公司打造的智慧出行生态平台,由中国第一汽车集团有限公司、东风汽车团体有限公司、重庆长安汽车股份有限公司发动,联结腾讯、阿里巴巴等互联网企业独特投资打造。公司以“成为最值得信赖的出行服务企业”为品牌愿景,“科技引领 愉悦出行”为使命,提倡“可信,更自在”的出行理念,致力为用户提供“可信、平安、品质”出行服务,让用户感触更加自在的出行体验。

背景介绍

随着 T3 出行业务体量继续上涨,服务的稳定性须要系统化的保障。容器化革新将提供标准化的环境,基于利用运行环境实现残缺的版本控制,打消开发到生产的环境差别,保障利用生命周期内环境一致性和标准化。同时容器化环境能够让服务共享计算资源,并通过混部形式来进步整体计算资源的利用率,升高企业应用的基础设施经营老本。

容器化之前 T3 出行是传统的虚拟机模式,所有业务都部署在虚拟机上,整体产研通过堡垒机、传统的监控零碎、日志平台等进行日常利用的运维。而一旦服务容器化开始,咱们必然须要一个云原生的容器化治理平台,让 T3 出行整体产研从传统的虚拟机操作模式转变为云原生操作模式。同时,之前日常的利用运维模式须要应用多个平台进行合作,产研定位一个利用性能问题往往须要来回切换多个平台。所以咱们心愿容器化平台能够集成周边的配套,如日志查看、监控零碎,让产研尽量在一个平台内实现日常运维的工作;也能够作为平台工程的一部分,让产研在开发环境能够领有足够的权限创立、更新、删除非基线环境,而无需理解底层架构常识,通过自助化的环境能力能够让研发并行开发测试,最终让业务能够疾速、高效增长。

选型阐明

咱们的选型思路基本上是依据性能、UI 体验、社区活跃度、学习老本这 4 点来的。首先必须要满足咱们对容器平台的需要(在背景介绍中曾经形容),其次是社区活跃度以及生态,最初是 UI 体验,在 UI 体验中蕴含了用户的学习老本,咱们心愿以低学习老本的形式让 T3 出行的研发更够疾速上手容器平台,同时也具备运维视角,如此就既满足了研发的利用视角纬度,也满足了运维的集群视角维度。
咱们在选型期间比照了 Rancher、Openshift、KubeSphere,最终抉择了 KubeSphere 作为 T3 出行云原生容器平台。KubeSphere 定位是以利用为核心的容器平台,提供简略易用的操作界面,帮忙用户屏蔽掉那些技术细节,肯定水平上升高了学习老本。同时 Kubesphere 具备优良的容器治理能力、多集群反对能力、多租户能力、人造集成的可观测能力等,让咱们能够在一个平台上满足了日常运维所需。

实际过程

多集群对立治理

KubeSphere 多集群中角色分为主集群和成员集群,由 1 个主集群和多个成员集群组成,与咱们原先的集群布局不约而同。主集群咱们作为成员集群的管制面存在,通过主集群下发不同的管理策略给到成员集群。对于成员集群而言,咱们依据不同的环境、不同的租户性质也会划分到不同集群。如依据环境辨别,咱们会有开发集群、测试集群、预生产集群、生产集群;而依据租户性质,咱们会有一些对接三方业务的集群。

项目管理

在很多传统的 DevOps 平台中,并没有与我的项目进行联动,服务往往只是关联了组织架构,当组织架构变动,服务的元信息就不精确了。而且,对于一个我的项目来说,常常会有跨部门单干的状况,而业务公布的视角却是在各自的部门下的,我的项目成员无奈在一个视图下看到我的项目的所有业务,在我的项目的合作过程中天然就减少了许多沟通老本。而 KubeSphere 就是基于我的项目维度对容器服务进行治理的,在 KubeSphere 中一个我的项目对应的就是 Kubernetes 一个 Namespace,租户之间的视图是隔离的,日常只须要在本人的我的项目视图下进行合作即可。

咱们的 DevOps 平台正在逐渐的往我的项目集成方向倒退,目前咱们是依照业务域进行对立治理,一个业务域代表了一个 KubeSphere 中的一个我的项目,业务域下会有多个相干的业务服务,无论组织架构如何变换,业务域始终不变。

多租户治理

KubeSphere 中的多租户治理是基于企业空间维度来实现的,企业空间是用来治理我的项目、DevOps 我的项目、利用模板和利用仓库的一种逻辑单元。咱们能够在企业空间中管制资源拜访权限,也能够平安地在团队外部分享资源。企业空间能够关联多个集群中的多个我的项目,并对企业空间中的成员进行权限治理,援用 KubeSphere 官网配图便于大家直观的了解:

咱们是以业务域为我的项目维度进行对立治理,那么企业空间作为 KubeSphere 最小的租户治理单元天然是被咱们依照业务域进行划分。所以 T3 当下的多租户治理逻辑就是:企业空间(业务域)→ 集群(开发、测试等)→ 我的项目(业务域)。同时在企业空间中,咱们也形象出了部门治理纬度,应用 KubeSphere 的部门治理,便于咱们给不同的人员赋予不同集群(环境)操作权限。

外部 DevOps 平台与 KubeSphere 的联合

T3 容器化之前已有一套 DevOps 平台,这套 DevOps 平台交付的制品是部署在虚拟机上的。而容器化我的项目发展的前置条件就是必须反对容器公布,如果让现有的 DevOps 平台革新成云原生化的 DevOps 平台工作量微小,项目风险不可控,所以咱们最终抉择了 DevOps 平台与 KubeSphere 的联合。外部 DevOps 平台新增容器公布性能,只进行容器服务的公布和 Pod 正本数的扩缩容操作,由 KubeSphere 对公布后的容器进行接管,给研发人员展现容器公布后的利用状态,让研发人员自助式的与容器进行交互。

能够说,KubeSphere 接管了 T3 容器化公布的后半场,研发人员执行公布后,便会来到 KubeSphere 上进行与容器的交互操作,如日志查看、监控查看、进入容器控制台、查看容器事件等。

成果

  • T3 出行的业务曾经全面容器化,所有的集群已被 KubeSphere 纳管,产研的日常利用保护工作都须要基于 KubeSphere 平台进行发展。
  • 得益于 KubeSphere 的以利用为核心的设计,帮用户屏蔽了底层技术细节,目前 T3 出行整体产研都能够自助式的应用 KubeSphere 进行日常的工作,也让 T3 产研从传统的利用保护模式胜利的转向了云原生利用保护模式。
  • KubeSphere 集成了监控、日志、事件,进步了 T3 产研日常的人效。
  • KubeSphere 集群级别的可观测,是咱们晋升集群资源利用率的参考根据。

将来布局

  1. 外部 DevOps 平台与 KubeSphere 深度交融,给 T3 产研带来更好的体验。
  2. 基于 T3 的业务场景采纳更多优良的开源我的项目,与社区独特成长。
  3. FinOps 与 Serverless 的摸索与实际。
退出移动版