目录

KubeSphere----青云旗下产品,功能最全,目前最受欢迎的容器平台

简介

1.1 功能介绍

1.2 优势

Rancher----出现最早,积累了很多企业用户

1.Rancher API Server 的功能

2.Rancher 主要组件和功能图示

OpenShift----红帽背书

OpenShift是什么?

OpenShift与K8S的区别

核心组件详解

KubeOperator----新星,飞致云背书

页面展示

组件项目

技术优势


KubeSphere----青云旗下产品,功能最全,目前最受欢迎的容器平台

简介

KubeSphere 是在目前主流容器调度平台 Kubernetes 之上构建的企业级分布式多租户容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。

除此之外,平台已经整合并优化了多个适用于容器场景的功能模块,以完整的解决方案帮助企业轻松应对敏捷开发与自动化运维、微服务治理、多租户管理、工作负载和集群管理、服务与网络管理、应用编排与管理、镜像仓库管理和存储管理等业务场景。

相比较易捷版,KubeSphere 高级版提供企业级容器应用管理服务,支持更强大的功能和灵活的配置,满足企业复杂的业务需求。

比如支持 Master 和 etcd 节点高可用、可视化 CI/CD 流水线、多维度监控告警日志、多租户管理、LDAP 集成、新增支持 HPA (水平自动伸缩) 、容器健康检查以及 Secrets、ConfigMaps 的配置管理等功能,新增微服务治理、灰度发布、s2i、代码质量检查等,后续还将提供和支持多集群管理、大数据、人工智能等更为复杂的业务场景。

1.1 功能介绍

KubeSphere®️ 作为企业级的全栈化容器平台,为用户提供了一个具备极致体验的 Web 控制台,让您能够像使用任何其他互联网产品一样,快速上手各项功能与服务。

KubeSphere 目前提供了工作负载管理、微服务治理、DevOps 工程、Source to Image、多租户管理、多维度监控、日志查询与收集、告警通知、服务与网络、应用管理、基础设施管理、镜像管理、应用配置密钥管理等功能模块,开发了适用于适用于物理机部署 Kubernetes 的 负载均衡器插件Porter,并支持对接多种开源的存储与网络方案,支持高性能的商业存储与网络服务。

rancher 没有kubeflow的mysql rancher kubesphere对比_多租户

以下从专业的角度为您详解各个模块的功能服务:

Kubernetes 资源管理

对底层 Kubernetes 中的多种类型的资源提供极简的图形化向导式 UI 实现工作负载管理、镜像管理、服务与应用路由管理 (服务发现)、密钥配置管理等,并提供弹性伸缩 (HPA) 和容器健康检查支持,支持数万规模的容器资源调度,保证业务在高峰并发情况下的高可用性。

rancher 没有kubeflow的mysql rancher kubesphere对比_运维_02

微服务治理

灵活的微服务框架:基于 Istio 微服务框架提供可视化的微服务治理功能,将 Kubernetes 的服务进行更细粒度的拆分

完善的治理功能:支持熔断、灰度发布、流量管控、限流、链路追踪、智能路由等完善的微服务治理功能,同时,支持代码无侵入的微服务治理

rancher 没有kubeflow的mysql rancher kubesphere对比_kubernetes_03

多租户管理

多租户:提供基于角色的细粒度多租户统一认证与三层级权限管理

统一认证:支持与企业基于 LDAP / AD 协议的集中认证系统对接,支持单点登录 (SSO),以实现租户身份的统一认证

权限管理:权限等级由高至低分为集群、企业空间与项目三个管理层级,保障多层级不同角色间资源共享且互相隔离,充分保障资源安全性

rancher 没有kubeflow的mysql rancher kubesphere对比_API_04

DevOps 工程

开箱即用的 DevOps:基于 Jenkins 的可视化 CI / CD 流水线编辑,无需对 Jenkins 进行配置,同时内置丰富的 CI/CD 流水线插件

CI/CD 图形化流水线提供邮件通知功能,新增多个执行条件

端到端的流水线设置:支持从仓库 (GitHub / SVN / Git)、代码编译、镜像制作、镜像安全、推送仓库、版本发布、到定时构建的端到端流水线设置

安全管理:支持代码静态分析扫描以对 DevOps 工程中代码质量进行安全管理

日志:日志完整记录 CI / CD 流水线运行全过程

rancher 没有kubeflow的mysql rancher kubesphere对比_多租户_05

Source to Image

提供 Source to Image (s2i) 的方式从已有的代码仓库中获取代码,并通过 Source to Image 构建镜像的方式来完成部署,并将镜像推送至目标仓库,每次构建镜像的过程将以任务 (Job) 的方式去完成。

rancher 没有kubeflow的mysql rancher kubesphere对比_kubernetes_06

多维度监控

KubeSphere 全监控运维功能可通过可视化界面操作,同时,开放标准接口,易于对接企业运维系统,以统一运维入口实现集中化运维

立体化秒级监控:秒级频率、双重维度、十六项指标立体化监控

在集群资源维度,提供 CPU 利用率、内存利用率、CPU 平均负载、磁盘使用量、inode 使用率、磁盘吞吐量、IOPS、网卡速率、容器组运行状态、ETCD 监控、API Server 监控等多项指标

在应用资源维度,提供针对应用的 CPU 用量、内存用量、容器组数量、网络流出速率、网络流入速率等五项监控指标。并支持按用量排序和自定义时间范围查询,快速定位异常

提供按节点、企业空间、项目等资源用量排行

提供服务组件监控,快速定位组件故障

rancher 没有kubeflow的mysql rancher kubesphere对比_多租户_07

自研多租户告警系统

支持基于多租户、多维度的监控指标告警,目前告警策略支持集群管理员对节点级别和租户对工作负载级别等两个层级

灵活的告警策略:可自定义包含多个告警规则的告警策略,并且可以指定通知规则和重复告警的规则

丰富的监控告警指标:提供节点级别和工作负载级别的监控告警指标,包括容器组、CPU、内存、磁盘、网络等多个监控告警指标

灵活的告警规则:可自定义某监控指标的检测周期长度、持续周期次数、告警等级等

灵活的通知发送规则:可自定义发送通知时间段及通知列表,目前支持邮件通知

自定义重复告警规则:支持设置重复告警周期、最大重复次数并和告警级别挂钩

rancher 没有kubeflow的mysql rancher kubesphere对比_kubernetes_08

日志查询与收集

提供多租户日志管理,在 KubeSphere 的日志查询系统中,不同的租户只能看到属于自己的日志信息

多级别的日志查询 (项目/工作负载/容器组/容器以及关键字)、灵活方便的日志收集配置选项等

支持多种日志收集平台,如 Elasticsearch、Kafka、Fluentd

rancher 没有kubeflow的mysql rancher kubesphere对比_运维_09

应用管理与编排

使用开源的 OpenPitrix 提供应用商店和应用仓库服务,为用户提供应用全生命周期管理功能

用户基于应用模板可以快速便捷地部署一个完整应用的所有服务

rancher 没有kubeflow的mysql rancher kubesphere对比_开源_10

基础设施管理

提供存储类型管理、主机管理和监控、资源配额管理,并且支持镜像仓库管理、权限管理、镜像安全扫描。内置 Harbor 镜像仓库,支持添加 Docker 或私有的 Harbor 镜像仓库。

rancher 没有kubeflow的mysql rancher kubesphere对比_开源_11

多存储类型支持

支持 GlusterFS、CephRBD、NFS 等开源存储方案,支持有状态存储

NeonSAN CSI 插件对接 QingStor NeonSAN,以更低时延、更加弹性、更高性能的存储,满足核心业务需求

QingCloud CSI 插件对接 QingCloud 云平台各种性能的块存储服务

rancher 没有kubeflow的mysql rancher kubesphere对比_kubernetes_12

多网络方案支持

支持 Calico、Flannel 等开源网络方案

开发了适用于适用于物理机部署 Kubernetes 的 负载均衡器插件 Porter

1.2 优势

通过 KubeSphere 可以快速管理 Kubernetes 集群、部署应用、服务发现、CI/CD 流水线、集群扩容、微服务治理、日志查询和监控告警。

换句话说,Kubernetes 是一个很棒的开源项目(或被认为是一个框架),但是 KubeSphere 是一款非常专业的企业级平台产品,专注于解决用户在复杂业务场景中的痛点,提供更友好更专业的用户体验。

Rancher----出现最早,积累了很多企业用户

官网:Enterprise Kubernetes Management | Rancher

Rancher 是为使用容器的公司打造的容器管理平台,通过 Rancher,企业不再需要使用一系列开源软件从零开始构建一个容器服务平台。同时 Rancher 还提供了一个全栈容器部署和管理平台,用于管理 Docker 和 Kubernetes。Rancher 官方

1.Rancher API Server 的功能

Rancher API Server 是基于嵌入式 Kubernetes API Server 和 ETCD 数据库建立的,它提供了以下功能:

1)授权和角色权限控制

用户管理: Rancher API Server 除了管理用户在公司内部使用的认证信息之外,还可以管理用户访问外部服务所需的认证信息。
授权: Rancher API Serrver 可以管理权限控制策略和安全策略。
2)使用 Kubernetes 的功能

运行 Kubernetes 集群: Rancher API Server 不仅可以在已经存在的节点上运行 K8s 集群,还可以对 K8s 集群进行版本升级。
应用商店管理: Rancher 可以使用 Helm Charts 应用商店重复部署应用。
项目管理: 项目是由一个 K8s 集群内的多个命名空间和多个访问控制策略组成,允许用户以组为单位,管理多个命名空间。
流水线: Rancher 支持对每一个项目单独配置流水线。
3)查看集群信息

日志: Rancher 可以和多种主流日志工具集成(如:ELK)
监控: 使用 Rancher,我们可以通过 Prometheus 监控集群节点、Kubernetes 组件、软件部署的状态和进度。
告警信息: 当我们 K8s 集群内出现问题时,Rancher 会在界面上进行提示。

2.Rancher 主要组件和功能图示

rancher 没有kubeflow的mysql rancher kubesphere对比_运维_13

Rancher 提供的功能:

支持 K8s 集群的身份验证和基于角色的访问控制(RBAC),使管理员可以全方面的控制所有集群的访问。

支持 K8s 资源监控,并在需要时发送告警,同时可以将容器内的日志发送给外部日志系统,还可以通过应用商店与 Helm 集成。

支持与外部的 CI/CD 流水线系统进行对接,同时 Rancher 本身也提供了简单易用的流水线来帮忙我们自动部署和升级工作负载。

OpenShift----红帽背书

官网地址:Red Hat OpenShift makes container orchestration easier

OpenShift是什么?

1>openshift是红帽的云开发平台即服务(PaaS),底层以Docker作为容器引擎驱动,以k8s作为容器编排引擎组件,openshift提供了开发语言、中间件、自动化流程工具及界面等元素,提供了一套完整的基于容器的应用云平台。

2>OKD是 Kubernetes 的一个发行版,针对持续应用程序开发和多租户部署进行了优化。OKD 还充当上游代码库,红帽 OpenShift Online和红帽 OpenShift 容器平台基于这些代码库构建。

3>自由和开放的云计算平台使开发人员能够创建、测试和运行他们的应用程序,井且可以把它们部署到云中。

Openshift广泛支持多种程语言和框架,如Java,Ruby和PHIP等。另外它还提供了多种集成开发工具如 Eclipse integration, JBOSS Developer Studio和 Jenkins等, Openshift基于个开源生态系统为移动应用,数据库服务等,提供支持。

OCP即Openshift Container Platform.

4>构建内部应用市场,提供中间件、数据库自动化的流程,可以快速进行应用的构建、容器化和部署贯通从应用开发测试、上线的测试。开发、测试、运维都可以同一个平台上协作提高研发效率。

架构:

rancher 没有kubeflow的mysql rancher kubesphere对比_运维_14

OpenShift与K8S的区别

rancher 没有kubeflow的mysql rancher kubesphere对比_kubernetes_15

1. 应用部署

K8S的应用程序部署过程较为灵活,用户有很多需要选择的地方;openshift提供的自动化流程多一些,为其提供了DevOps和管道方法,用户只需要创建一个应用程序和一个项目。

2. 应用管理

对于大多数运营团队来说,K8S默认的仪表盘界面无法满足他们的需求,也许他们会使用ELK堆栈之类的;OpenShift的web控制台建立在Kubernetes API基础上,并具有许多不同的功能。让SRE和运营团队管理其工作负载。如果想使用istio等功能,可以采用多种方式集成。再利用一些自动安装程序和Ansible playbook,管理应用程序会简单一些。

3. 节点配置

Kubernetes将VM加入集群的方式会比较耗时,并且需要开发脚本,OpenShift有Ansible playbook和安装程序,将新的虚拟机引入集群。

4. 安全性

通过企业客户合作,从头开始创建最佳安全实践,能够解决客户的一些问题,才能使用Kubernetes,K8S对于团队成员的权限管理不是那么方便。而对于OpenShift,只需要添加用户就可以处理类似命名空间的隔离空间,根据最佳做法创建不同的安全策略,并且某些容器的运行需要root用户权限才可以。

核心组件详解

OpenShift的核心组件及其之间的关联关系如图所示。Openshift集群可以由一台或多台主机组成。这些主机可以是物理机或虚拟机,同时可以运行在私有云、公有云,或混合云上。在OpenShift的集群成员有两种角色:Master节点和Node节点。

rancher 没有kubeflow的mysql rancher kubesphere对比_kubernetes_16

1 Master

主控节点。集群内的管理组件均匀性在Master节点上,它主要负责管理和维护OpenShift集群的状态。它的服务组件如下:

API Server

负责提供集群的Web Console以及RESTful API服务。集群内所有Node节点都会访问API Server更新各节点的状态及其上运行的容器状态。

数据源(Data Store)

集群内所有动态的状态信息都会存储在后端一的一个etcd分布式数据库中。默认的etcd实例安装在Master节点上,如有需要,也可以将etcd节点部署在集群之外。

调度控制器(Scheduler)

负责按照用户输入的要求合适的计算节点。

复制控制器(Replication Controller)

负责监控当前容器实例的数量和用户部署指定的数量是否匹配,保证实际的容器实例数量等于部署定义的数量。

2 Node节点

计算节点,集群内的容器实例均运行在Node节点之上。负责接受Master结点的指令,运行和维护Docker容器。

3 Project和Namespace

在同一个命名空间中,某一个对象的名称在其分类中必须是唯一的,但是分布在不同命名空间中的对象则可以同名。每一个Project会和一个Namespace相关联,也可以简单理解为Project就是Namespace,所以在OpenShift中进行操作时,要确认当前执行的上下文是哪一个Project。

查看当前用户所在的Project

[lab-user@bastion ~]$ oc projectUsing project "myproject" on server "https://api.cluster-v47h4.dynamic.opentlc.com:6443".

4 Pod

Pod相当于豌豆的豆荚,容器相当于豌豆。和K8S中的概念相同。

5 Service

为了克服容器变化引发的连接信息变化,K8S提供了Service。当部署某个应用时,我们会为该应用创建一个Service对象。它会与该应用的一个或多个Pod相关联,它会被分配一个相对恒定的IP地址。

通过访问这个IP地址以及对应的端口,请求就会被转发到Pod对应的端口上。Service起到了代理作用。

可以通过域名访问某一个Service。监听在Master上的集群内置DNS服务器会负责解析这个DSN请求。

Service域名的格式为:..svc.cluster.local.

6 Router与Route

Router(路由器):一个运行在容器内特殊定制的Haproxy。用户可以创建一个Route,一个Route会与一个Service相关联,并且绑定一个域名。Route规则会被Router加载。当用户通过指定域名访问应用时,域名会被解析并指向Router所在的计算节点上。Router 取这个请求,然后根据 Route 规则定义转发给与这个域名对应的 Service 后端所关联的 Pod 容器实例。

Router与Service的区别:

Router是将集群外的请求转发到集群的容器;Service是把集群内的请求转发到指定的容器中。

7 Persistent Storage

容器默认非持久化,容器云平台必须为容器提供持久化存储(Persistent Storage)。Openshift不仅支持Docker持久化卷的挂载方式,而且还提供一种持久化供给模型,即Persistent Volume (持久化卷, PV )及 Persistent Volume Claim (持久化卷请求, PVC )模型。

在PV 和PVC 模型中,集群 管理员会创建大量不同大小和不同特性的 PV 。用户在部署应用时,显式声明对持久化的需求,创建 PVC 。用户在 PVC 中定义所需存储的大小、访问方式(只读或可读可写;独占或共享) OpenShift 集群会自动寻找符合要求的 PV与PVC 自动对接。 通过 PV和PVC 模型, OpenShift出为用户提供了 种灵活的方式来消费存储资源 。

OpenShift 对持久化后端的支持比较广泛,除了 NFS 以及iSCSI 外,还支持如 Ceph、GluterFS 等的分布式储存,以及 Amazon WebService和Google Compute Engine 云硬盘等。

8 Registry

OpenShift提供了一个内部的 Docker 镜像仓库( Registry ),该镜像仓库用于存放用户通过内置的Source to Image 镜像构建流程所产生的镜像Registry组件默认以容器的方式提供。

每当S2I 完成镜像构建,就会向内部的镜像仓库推送构建完成的镜像 。

是不是 OpenShift用 到的镜像都要存放到内置的仓库?

不是的,内部的镜像仓库存放的只是S2I 产生的镜像。其他镜像可以存放在集群外部 的镜像仓库,如企业的镜像仓库或社区的镜像仓库。只要保证 OpenShift的节点可以 访问到这些镜像所在的镜像仓库即可。

9 Source to Image

S2I即Source to Image, 是OpenShift的一个重要功能。容器镜像是容器云的应用交付格式。容器镜像中包含了应用及其所依赖的运行环境。可以从社区或者第三方厂商获取基础的操作系统或者中间件的镜像。但是这些外部获取的操作系统或中间件的镜像并不包含企业内部开发制的应用。企业内部的开发人员必须自行基于外部的基础镜像构建包含企业自身开发的应用。这个镜像的构建过程是必须的,要么由企业的 IT人员手工完成,要么使用某种工具实现自动化。

作为一个面向应用的平台, OpenShift 提供了S2I 的流程,使得企业内容器的构建变得标准化和自动化,从而提高了软件从开发到上线的效率。一个典型的S2I 流程包含了以下几个 步骤。

1>用户输入源代码仓库的地址。

2>用户选择S2I 构建的基础镜像(又称为 Builder 镜像)。

      Builder镜像中包含了操作系统、编程语言、框架等应用所需的软件及配置 。OpenShift默认提供了多种编程语言的Builder镜像,如Java、PHP、Ruby、Python Perl 等。用户也可以根据自身需求定制自己的Builder镜像,并发布到服务目录中供用户选用。

3>用户或系统触发S2I构建。OpenShift将实例化S2I构建执行器。

4>S2I 构建执行器将从用户指定的代码仓库下载源代码。

5>S2I 构建执行器实例化Builder镜像。代码将会被注入Builder镜像中 。

6>Builder 镜像将根据预定义的逻辑执行源代码的编译、构建并完成部署 。

7>S2I构建执行器将完成操作的Builder镜像并生成新的Docker镜像 。

8>S2I构建执行器将新的镜像推送到OpenShift内部的镜像仓库 。

9>S2I构建执行器更新该次构建相关的Image Stream信息 。

S2I构建完成后,根据用户定义的部署逻辑,OpenShift将把镜像实例化部署到集群中 。

除了接受源代码仓库地址作为输入外,S2I还接受Dockerfile以及二进制文件作为构建 的输入。 用户甚至可以完全自定义构建逻辑来满足特殊的需求。

10 开发及管理工具集

OpenShift位提供了不同的工具集为开发和运维的用户提供良好的体验,也为持续集成和打通DevOps流程提供便利。例如,OpenShift提供了 Eclipse插件,开发程师可以在Eclipse中完成应用及服务的创建和部署、远程调试、实时日志查询等功能。

KubeOperator----新星,飞致云背书

官网地址:KubeOperator - 开源容器平台 - 官网

KubeOperator 是一个开源的轻量级 Kubernetes 发行版,专注于帮助企业规划、部署和运营生产级别的 Kubernetes 集群。

KubeOperator 提供可视化的 Web UI,支持离线环境,支持物理机、VMware、OpenStack 和 FusionCompute 等 IaaS 平台,支持 x86 和 ARM64 架构,支持 GPU,内置应用商店,已通过 CNCF 的 Kubernetes 软件一致性认证。

KubeOperator 使用 Terraform 在 IaaS 平台上自动创建主机(用户也可以自行准备主机,比如物理机或者虚机),通过 Ansible 完成自动化部署和变更操作,支持 Kubernetes 集群 从 Day 0 规划,到 Day 1 部署,到 Day 2 运营的全生命周期管理。

页面展示

rancher 没有kubeflow的mysql rancher kubesphere对比_多租户_17

组件项目

  • KubePi: 一个现代化的 K8s 面板
  • Web Kubectl: 在 Web 浏览器中运行 kubectl 命令

技术优势

  • 简单易用: 提供可视化的 Web UI,极大降低 Kubernetes 部署和管理门槛,内置 KubePi 和 Webkubectl
  • 按需创建: 调用云平台 API,一键快速创建和部署 Kubernetes 集群
  • 按需伸缩: 快速伸缩 Kubernetes 集群,优化资源使用效率
  • 按需修补: 快速升级和修补 Kubernetes 集群,并与社区最新版本同步,保证安全性
  • 离线部署: 支持完全离线下的 Kubernetes 集群部署
  • 自我修复: 通过重建故障节点确保集群可用性
  • 全栈监控: 提供从Pod、Node到集群的事件、监控、告警、和日志方案
  • Multi-AZ 支持: 将 Master 节点分布在不同的故障域上确保集群高可用
  • 应用商店: 内置 KubeApps 应用商店
  • GPU 支持: 支持 GPU 节点,助力运行深度学习等应用