前言:当看到一个开源项目被限制在某地区使用的时候,我想很多人都会刷新对于开源的认识。诚然,中国在开源领域的参与度在增强,但缺少一些更有影响力的开源项目。开源也需要看时势,顺应发展趋势才能成就更有影响力的开源项目。Kubernetes作为当下最热的容器云原生领域的开源项目,找到了一个最佳发展机遇。
提起中国著名的开源项目,每个搞IT的人都能说出个一二,但这些开源项目大多都是在中国用户群体中流行,能吸引大量国外用户的少之又少,究其原因是在于,这些开源项目并没有真正尊重开源世界的规则,并不重视开源社区的运营,只是单纯作为商业模式的辅助,贡献局限在公司内部,主要还是为商业项目服务。
KubeSphere——一个国际化的开源项目
KubeSphere就是一个极少数中国开源的,在国外也广受认可的项目。在最近一次沟通中,青云QingCloud应用及容器平台研发总监周小四表示,Github上的数据显示,过去半年,KubeSphere海外用户达到58%,已经超过国内用户。KubeSphere俨然已经成为一个国际化的开源项目。
KubeSphere是一个经过CNCF官方认证的开源容器云平台,是已知目前中国唯一的Kubernetes发行版。有了它,用户就能对下到硬件资源,上到应用层的IT栈进行管理;有了它,用户就可以开发管理和运维大量容器应用,对应用负载进行迁移,进行DevOps,开发微服务,享受到云原生的美好。
KubeSphere于2018年正式对外发布,2019年4月发布了2.0版本,2020年6月30日,KubeSphere终于迎来了又一次重大更新,KubeSphere 3.0版本新增了多集群管理,便于进行基于容器的混合云管理,另外,生态支持方面也有了新的进展。
新特性1:多集群管理功能开启容器混合云时代
混合云已是大势所趋,作为混合云领域的先行者,青云QingCloud早在2014年就看准了混合云的方向。青云QingCloud应用及容器平台研发总监周小四表示,混合云正在从资源型管理向应用型管理转型。
这一转变背后的重要技术推动力就是容器,而KubeSphere本身是一个侧重云原生应用管理的容器平台。周小四介绍说,KubeSphere3.0解决了混合云常态化带来的应用层面上的诉求,能够让企业快速迈入云原生时代。
从功能定位上来看,KubeSphere 3.0的一大亮点是真正支持容器混合云。
因为KubeSphere 3.0提供了多集群管理功能,除了字面意思上的能增加和删除集群以外,还支持应用层面的多集群管理,可以让应用进行跨集群部署,选择让应用部署在某个集群上。
KubeSphere容器平台产品经理于爽介绍说,KubeSphere的多集群管理支持Solo和联邦两种集群管理方式。Solo是指对各个独立的Kubernetes集群进行集中控制;联邦模式则是把多个Kubernetes集群聚合起来形成一个Kubernetes资源池,并且在其上层构建跨Zone、跨集群的高可用。
新特性2:可观察性能力让所有人看得懂
可观察性是Kubernetes生态里的专业术语,包含监控、日志、链路追踪、告警、通知等方方面面,但不难发现,这些都是面向运维人员的,随着大量业务迁移到Kubernetes上,大量业务人员也在使用这一平台,如何能站在业务人员角度来提供服务,让业务人员也能看懂、会用呢?
为此,KubeSphere 3.0兼容了已经成为了事实标准的监控框架Prometheus,现有应用只要基于Prometheus暴露了监控指标,就可以无缝地对接到在KubeSphere上,如果没有基于Prometheus做开发,那么也可以使用Prometheus Exporter来让已经开发好的应用暴露出监控指标。
所有暴露出来的监控指标最终通过KubeSphere UI控制台来展示,监控面板将多个监控指标进行拼接组装,让业务人员看到自己最关注的指标。
可以看到,作为一个技术架构平台,KubeSphere已经与业务尽可能多地进行整合,这点突破了笔者对于一个基础设施架构的认知范围,凸显了容器云平台的独特价值。
新特性3:强化安全能力让企业用的更放心
KubeSphere3.0在两个点上强化了安全性,一个是支持金融用户做审计,系统能记录什么时间、谁做过操作,操作了什么,发生了什么结果等。
另一个强化主要在于网络安全隔离特性,原生的Kubernetes有一个Namespace(命名空间)的概念,但并没有考虑网络安全隔离,不同租户之间的应用可以相互访问,这是企业用户不能接受的。尤其是那些对于安全和审计有严格要求的大型企业,更需要强隔离的特性。
KubeSphere3.0一方面保留了原生的租户可互相访问的特性,一方面又加入了租户网络安全策略管理,用户可自行配置访问策略,用它来配置某租户下的服务能否对外提供访问,或者哪些租户可以访问这个服务。这一安全策略契合了现在很多大型企业的诉求,特别是金融类企业的诉求。
功能特性已经基本成型,接下来要精进生态
进化到3.0,KubeSphere在功能特性上已经基本成型,开始强化对于生态方面的支持。周小四表示,在云原生应用领域,容器平台厂商未来的竞争一定是生态的竞争,并不是某一个功能比别人做得好,就一定能赢得市场。
在生态方面,KubeSphere会尽可能多地保持开放性和兼容性。目前,KubeSphere支持各种主流云平台以及同类容器平台,包括Rancher和OpenShift。
与Rancher和OpenShift相比,KubeSphere更轻量一些,所以,KubeSphere也能与它们友好兼容。
KubeKey是KubeSphere 3.0新增的安装方式,有了它,用户可以可以一键部署Kubernetes和KubeSphere,意义在于可以更好地与合作伙伴的方案集成。
对于已经部署了K8s的集群,KubeSphere作为纯软件方案,可以无缝地部署在这些既有Kubernetes平台上。不会因为使用了KubeSphere而需要做迁移、改造,可以很好地保护用户现有的业务资产,也不会对业务有任何影响。
KubeSphere本身的开放性也从根本上隔绝了绑定的问题。KubeSphere支持社区标准,只要遵循社区标准,所有组件都可以对接到这一平台。比如,用户可以把所有兼容Prometheus Exporter标准的应用对接进来,可以支持兼容Helm v3的应用打包方式,支持Open Policy Agent标准。反之,在KubeSphere上可以运行的组件,也可以在所有兼容社区标准的平台上运行。
面向企业的开源容器平台
青云QingCloud从公有云起步,而后又做基于分布式存储以及超融合的企业级产品服务,有公有云和私有云的技术和经验积累,这些积累也都将在KubeSphere中得到体现。KubeSphere有丰富的企业级特性,功能上能更符合企业需求和IT现状。
目前已经有各行各业的用户在生产环境下在使用KubeSphere,我们简单看看这两个案例。
国内某头部城商行经常通过外包团队来完成业务开发和运维,这些外包团队来自多个外包公司,每个外包团队都各自为政,使用不同的开发项目管理工具,有自己的开发习惯和架构,这对于作为管理者的银行带来了较大负担,风险管控和可靠性上都有影响。
KubeSphere提供的平台管理、内置DevOps等功能,为该城商行信用卡中心提供了整体解决方案,通过对业务梳理,优化代码版本管理,提高了开发测试效率,通过统一化的平台把各自为政的外包公司汇聚管理起来。
与红帽的商业逻辑类似,做开源的同时,青云QingCloud也会提供基于KubeSphere的商业服务,在该城商行信用卡中心项目中,青云的产品团队、服务团队和售前解决方案团队,合力帮助用户梳理了他们的业务,使得银行的业务构建效率大大提高。
某互联网创业公司是KubeShpere社区用户,他们主要对外提供加速小程序开发的服务,可以用拖拽的方式构建小程序。作为创业公司,该公司人员非常有限,而构建和运维一个Kubernetes平台需要大量专业技术人员,算下来成本其实非常高,对于创业公司来说,一个好的容器平台才是明智之选。
该互联网公司有一部分业务在AWS上,还有一部分在青云QingCloud上,是典型的混合多云架构。该公司使用了KubeSphere里的DevOps和微服务功能来管理不同集群中的不同的业务,比如,把测试业务放在了青云QingCloud容器云服务QKE里,开发业务放在AWS上,通过KubeSphere一套平台来管理。通过使用自定义开发镜像、代码直达镜像等特性提高了业务开发效率。
初步体验的感受
Kubernetes的入门门槛其实很高,手动从零开始安装一套能运行,且功能组件相对完备的Kubernetes集群是非常麻烦的,网上有许多教程,但操作过程非常复杂,如果有环境依赖问题很容易安装失败,即使安装成功,在使用过程中的问题也非常让人头疼,想要直接使用Kubernetes,门槛其实非常高。
而使用KubeSphere的门槛很低。它的安装过程非常简单,KubeSphere提供图形化的管理方式,即使是对容器平台一无所知的小白,在开发文档的指引下,也能轻松安装部署一个应用,进而熟悉整个容器平台的各种关键概念,能大大降低上手的门槛。就好比第一次使用Windows、iOS或者安卓系统来安装一款软件后,你就能渐渐熟悉一款操作系统一样。
KubeSphere极大地降低了Kubernetes的入门门槛,是非常理想的Kubernetes新手村教官。它能大大降低Kubernetes的使用难度,用户可以对照着KubeSphere了解整个Kubernetes体系,了解Kubernetes的主要概念和特性。当然,也也可以对照着KubeSphere的设计来理解Kubernetes。
有兴趣的朋友可以自己做做测试,在本地虚拟机上就能安装体验,参照文档进行一些基本的体验了。(https://kubesphere.io/zh/)