作者 | 卢兴民 红亚科技CTO
背景
青椒课堂是红亚科技推出的理实一体化授课平台,面向信息技术类专业提供教学实训服务。随着项目的迭代,从单体应用演化成为主站 + 资源调度服务(多可用区/客户混合部署)的架构。
在完全使用 KubeSphere 之前,由于我们的副本只在北京有一个集群,所以没有考虑用一个更方便的形式去部署多个集群,当时项目使用可视化 PAAS 平台来进行应用管理,这种形式极大地降低了团队接触上手 Kubernetes 的门槛,使得团队可以快速上手使用容器平台,但随着业务使用的深入,尤其是应用定义、应用配置变更较为繁琐,导致问题频出。
目前项目从开发到生产已经全量使用 Kubernetes,并使用 KubeSphere 进行管理。项目上线周期在一周一次左右的频率,开发环境进行了自动 CD 触发,每天进行数十次的发布和更新。
为什么使用 KubeSphere(QKE) ?
选型思路
对于中小型团队来说,在选择基础设施上,可以尽量使用第三方提供的成熟系统,避免自建。例如 Git 仓库、CI 服务、制品库、部署系统均使用第三方服务,Kubernetes 也尽量使用厂商提供的托管 K8s,避免采坑;日志、监控报警等系统也是如此(使用 aliyun sls、aliyun arms)。个人认为中小型企业在这方面投入过多并没有太大的实际意义,专注于业务即可。
在选择平台的过程中主要有以下几点考虑:
不被某个云服务商所绑定
开源解决方案
可以接受能力范围内的商业化订阅(服务支持付费)
部署难度低
统一认证
操作简便
在集群管理上,原有业务使用阿里云 ACK 进行部署,进行平台迁移时,不希望更换部署环境。另外在管控上,希望网络环境尽量简单,无需打通 VPC 等复杂操作。
平台方案
基于以上的选型思路,我们选择 KubeSphere(QKE) 部署在青云QingCloud 公有云,作为多集群的集中控制管理平面 (HOST 集群),开发环境(自建 K8s)、生产环境 (Aliyun ACK) 作为 member 集群。目前将整个开发、生产集群纳入到 KubeSphere 进行管理。
青椒课堂:使用