您当前的位置: 青岛新闻网 > 国内 > 一文说清 KubeSphere 容器平台的价值

一文说清 KubeSphere 容器平台的价值

发布日期:2020-04-17

KubeSphere (github.com/kubesphere)作为云原生家族后起之秀,开源近两年的时间以来收获了诸多用户与开发者的认可。本文通过大白话诠释 KubeSphere的定位与价值,以及不同团队为什么会选择 KubeSphere。

对于企业 KubeSphere是什么

KubeSphere是在 Kubernetes之上构建的多租户容器平台,以应用为中心,提供全栈的 IT自动化运维的能力,简化企业的 DevOps工作流。使用 KubeSphere不仅能够帮助企业在公有云或私有化数据中心快速搭建 Kubernetes集群,还提供了一套功能丰富的向导式操作界面。

KubeSphere能够帮助企业快速构建一个功能丰富的容器云平台,让企业在享受 Kubernetes的弹性伸缩与敏捷部署的同时,还可以在容器平台拥有 IaaS平台的存储与网络能力,获得与 IaaS一样稳定的用户体验。比如在 KubeSphere 2.1.1新增了对阿里云与腾讯云块存储插件的集成,支持为 Pod挂载公有云的存储,为有状态应用提供更稳定的持久化存储的能力。

多租户平台

在日常的运维开发中,我们可能需要使用与管理大量的开源工具,频繁地在不同工具的 GUI和 CLI窗口操作,每一个工具的单独安装、使用与运维都会带来一定的学习成本,而 KubeSphere容器平台能够统一纳管与对接这些工具,提供一致性的用户体验。这意味着,我们不需要再去多线程频繁地在各种开源组件的控制面板窗口和命令行终端切换,极大赋能企业中的开发和运维团队,提高生产效率。

image.png

统一纳管云原生工具

对于开发者 KubeSphere是什么

有很多用户习惯把 KubeSphere定义为“云原生全家桶”。不难理解,KubeSphere就像是一个一揽子解决方案,我们设计了一套完整的管理界面,开发与运维在一个统一的平台中,可以非常方便地安装与管理用户最常用的云原生工具,从业务视角提供了一致的用户体验来降低复杂性。为了不影响底层 Kubernetes本身的灵活性,也为了让用户能够按需安装,KubeSphere所有功能组件都是可插拔的。

image.png

支持在任何平台运行

KubeSphere基于 OpenPitrix (openpitrix.io)和 Helm提供了应用商店,对内可作为团队间共享企业内部的中间件、大数据、APM和业务应用等,方便开发者一键部署应用至 Kubernetes中;对外可作为根据行业特性构建行业交付标准、交付流程和应用生命周期管理的基础,作为行业通用的应用商店,可根据不同需求应对不同的业务场景。在 3.0版本还将支持计量 (Metering),方便企业对应用与集群资源消耗的成本进行管理。

image.png

KubeSphere应用商店

对于运维 KubeSphere是什么

可观察性是容器云平台非常关键的一环,狭义上主要包含监控、日志和追踪等,广义上还包括告警、事件、审计等。对于 Kubernetes运维人员来说,通常需要搭建和运维一整套可观察性的技术架构,例如 Prometheus + Grafana + AlertManager、EFK等等。并且,企业通常还需要对不同租户能够看到的监控、日志、事件、审计等信息,实现按不同租户隔离,这些需求的引入无疑会增大企业的运维成本与复杂性。

KubeSphere能够帮助运维人员基于 Kubernetes快速搭建一套满足云原生可观察性标准的技术架构,支持在一个统一的平台纳管这些组件,或对接外部已有的组件。KubeSphere能够在一套管理界面中,实现从基础设施层级到容器微服务层级的多维度日志与监控,支持逐级下钻定位异常资源,并且能够满足多租户隔离的需求。在 3.0版本还将持续增强可观察性,近一步丰富事件与审计的可视化管理能力。

image.png

丰富的可观察性

对于 DevOps团队 KubeSphere是什么

对于 DevOps团队而言,日常工作除了开发一些自动化的工具之外,还需要运维与管理众多开源工具链。DevOps本身作为一个很广义的方法论,也可以被认为是一种文化,很多 DevOps团队在落地过程中,也会遇到各种各样问题,例如 CI/CD工具繁多、涉及人员和环境较多、流程相对复杂等等。

image.png

GitOps流程

我们选择以工具型产品的形式,将 DevOps在 KubeSphere中落地。KubeSphere DevOps系统选择 Jenkins作为其 CI/CD引擎,借助 Jenkins丰富的插件体系和易于进行扩展开发的特性,帮助 DevOps团队在一个统一的平台中,打通开发、测试、构建、部署、监控、日志与通知等流程。KubeSphere为 DevOps团队打造了以容器为载体的端到端的应用交付平台,实现从项目管理、应用开发、持续集成、单元测试、制品构建到应用的生产交付,所有的流程都是一个完整的闭环。

image.png

KubeSphere DevOps流水线

基于 Kubernetes,KubeSphere DevOps充分利用和释放 Kubernetes动态扩展的能力。例如,我们在内置的 DevOps系统使用了 Jenkins Kubernetes的动态 Agent,即默认全部使用动态的 Kubernetes Slave,这样的方案相较于传统虚拟机上的 Jenkins要更加灵活敏捷。同时,在 KubeSphere DevOps中内置了用户常用的 Agent类型,例如 Maven、Node.js、Go等,并且还支持用户自定义与扩展的 Agent类型。

image.png

基于 Kubernetes的动态 Jenkins

我们将内置的 Jenkins与 KubeSphere账户打通,满足企业对 CI/CD流水线多租户隔离与统一认证的需求。另外,KubeSphere DevOps支持创建 InSCM与 OutOfSCM两种形式的流水线。这样能很好地兼容项目已有的 Jenkinsfile,或使用图形化编辑流水线。

image.png

可视化流水线

业务开发者即使还没有深入了解 Docker与 Kubernetes的机制,也可以借助 KubeSphere内置的自动化 CD工具,如 Binary to Image和 Source to Image。用户只需要提交一个仓库地址,或上传 JAR/WAR/Binary等二进制文件,即可快速将制品打包成 Docker镜像并发布到镜像仓库,最终将服务自动发布至 Kubernetes中,无需编写一行 Dockerfile。并且,在自动构建的过程中,能够生成动态日志,帮助开发者快速定位服务构建与发布的问题。

image.png

Binary/Source to Image

对于运营 KubeSphere是什么

在产品新版本发布前,运营团队通常需要引入一部分流量对新版本灰度测试。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以对新版本进行测试,方便及时发现和调整问题,以验证产品的可行性和收集用户反馈。

image.png

KubeSphere灰度发布

KubeSphere基于 Istio提供了蓝绿部署、金丝雀发布、流量镜像等三种灰度策略,无需修改应用的服务代码,即可实现灰度、流量治理、Tracing、流量监控、调用链等服务治理功能,即让产品的迭代能够按照不同的灰度策略对新版本进行线上环境的测试,并且能够在服务拓扑与 Tracing中发现微服务间互相请求的网络问题。

image.png

KubeSphere Service Mesh流量拓扑

如何安装 KubeSphere

KubeSphere支持部署和运行在包括公有云、私有云、虚机、物理机和 Kubernetes等任何基础设施之上,并支持在线与离线安装,可 「点击原文」参考 KubeSphere官方文档 (kubesphere.com.cn)进行安装。