一、介绍
KubeSphere是在Kubernetes之上构建的面向云原生应用的 容器混合云,支持多云与多集群管理,提供全栈的 IT 自动化运维的能力,简化企业的DevOps工作流。KubeSphere提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere愿景是打造一个基于Kubernetes的云原生分布式操作系统,它的架构可以很方便地与云原生生态进行即插即用(plug-and-play)的集成。
KubeSphere目前最新的版本为v3.0.0(国人开源的云原生项目,青云公司),所有版本100%开源,关于 KubeSphere更详细的介绍与说明请参阅《什么是 KubeSphere》。
二、相关资料
- 官方网站:https://kubesphere.io/
- GitHub: https://github.com/kubesphere/kubesphere
- 官网文档:https://kubesphere.com.cn/docs/zh-CN/introduction/what-is-kubesphere/
- kubernetes中文社区:https://www.kubernetes.org.cn/author/kubesphere
- KubeSphere官方社区:https://kubesphere.com.cn/forum/
- kubernetes文档中心:https://v2-1.docs.kubesphere.io/docs/zh-CN
三、核心功能
| 功能 | 介绍 | | —- | —- | | 多云与多集群管理 | 提供多云与多集群的中央管理面板,支持集群导入,支持应用在多云与多集群一键分发 | | Kubernetes 集群搭建与运维 | 支持在线 & 离线安装、升级与扩容 K8s 集群,支持安装 “云原生全家桶” | | Kubernetes 资源可视化管理 | 可视化纳管原生 Kubernetes 资源,支持向导式创建与管理 K8s 资源 | | 基于 Jenkins 的 DevOps 系统 | 支持图形化与脚本两种方式构建 CI/CD 流水线,内置 Source to Image(S2I)和 Binary to Image(B2I)等 CD 工具 | | 应用商店与应用生命周期管理 | 提供应用商店,内置 Redis、MySQL 等 15 个常用应用,支持应用的生命周期管理 | | 基于 Istio 的微服务治理 (Service Mesh) | 提供可视化无代码侵入的 灰度发布、熔断、流量治理与流量拓扑、分布式 Tracing | | 多租户管理 | 提供基于角色的细粒度多租户统一认证,支持 对接企业 LDAP/AD,提供多层级的权限管理 | | 丰富的可观察性功能 | 提供集群/工作负载/Pod/容器等多维度的监控,提供基于多租户的日志查询与日志收集,支持节点与应用层级的告警与通知 | | 基础设施管理 | 支持 Kubernetes 节点管理,支持节点扩容与集群升级,提供基于节点的多项监控指标与告警规则 | | 存储管理 | 支持对接 Ceph、GlusterFS、NFS、Local PV,支持可视化运维管理 PVC、StorageClass,提供 CSI 插件对接云平台存储 | | 网络管理 | 提供租户网络隔离与 K8s Network Policy 管理,支持 Calico、Flannel,提供 Porter LB 用于暴露物理环境 K8s 集群的 LoadBalancer 服务 | | GPU support | 集群支持添加 GPU 与 vGPU,可运行 TensorFlow 等 ML 框架 |
以上功能说明详见《产品功能》。
四、架构
KubeSphere采用了前后端分离的架构,实现了面向云原生的设计,后端的各个功能组件可通过REST API对接外部系统,可参考《API 文档》。KubeSphere无底层的基础设施依赖,可以运行在任何Kubernetes、私有云、公有云、VM或物理环境(BM)之上。
后端组件清单:
后端组件 | 功能说明 |
---|---|
ks-account | 提供用户、权限管理相关的 API |
ks-apiserver | 整个集群管理的 API 接口和集群内部各个模块之间通信的枢纽,以及集群安全控制 |
ks-apigateway | 负责处理服务请求和处理 API 调用过程中的所有任务 |
ks-console | 提供 KubeSphere 的控制台服务 |
ks-controller-manager | 实现业务逻辑的,例如创建企业空间时,为其创建对应的权限;或创建服务策略时,生成对应的 Istio 配置等 |
Metrics-server | Kubernetes 的监控组件,从每个节点的 Kubelet 采集指标信息 |
Prometheus | 提供集群、节点、工作负载、API 对象等相关监控数据与服务 |
Elasticsearch | 提供集群的日志索引、查询、数据管理等服务,在安装时也可对接您已有的 ES 减少资源消耗 |
Fluent Bit | 提供日志接收与转发,可将采集到的⽇志信息发送到 ElasticSearch、Kafka |
Jenkins | 提供 CI/CD 流水线服务 |
SonarQube | 可选安装项,提供代码静态检查与质量分析 |
Source-to-Image | 将源代码自动将编译并打包成 Docker 镜像,方便快速构建镜像 |
Istio | 提供微服务治理与流量管控,如灰度发布、金丝雀发布、熔断、流量镜像等 |
Jaeger | 收集 Sidecar 数据,提供分布式 Tracing 服务 |
OpenPitrix | 提供应用模板、应用部署与管理的服务 |
Alert | 提供集群、Workload、Pod、容器级别的自定义告警服务 |
Notification | 通用的通知服务,目前支持邮件通知 |
redis | 将 ks-console 与 ks-account 的数据存储在内存中的存储系统 |
MySQL | 集群后端组件的数据库,监控、告警、DevOps、OpenPitrix 共用 MySQL 服务 |
PostgreSQL | SonarQube 和 Harbor 的后端数据库 |
OpenLDAP | 负责集中存储和管理用户账号信息与对接外部的 LDAP |
存储 | 内置 CSI 插件对接云平台存储服务,可选安装开源的 NFS/Ceph/Gluster 的客户端 |
网络 | 可选安装 Calico/Flannel 等开源的网络插件,支持对接云平台 SDN |
除了上述列表的组件,KubeSphere还支持Harbor与GitLab作为可选安装项,您可以根据项目需要进行安装。以上列表中每个功能组件下还有多个服务组件,关于服务组件的说明,可参考《服务组件说明》。