• 我的订阅
  • 科技

OpenShift 与 Kubernetes:不公平的较量

类别:科技 发布时间:2023-04-23 15:47:00 来源:卓越科技

OpenShift 与 Kubernetes:不公平的较量

在本文中,我们将比较OpenShift和Kubernetes,让我告诉你,这种比较远非公平。

当今最流行的容器编排软件替代品是OpenShift和Kubernetes。

在本文中,我们将比较OpenShift和Kubernetes, 让我告诉你,这种比较远非公平。事实上,比较OpenShift和Kubernetes很困难,因为它们完全是两种截然不同的解决方案。比较它们有点像比较个人计算机(OpenShift)和CPU(Kubernetes)。

由于Kubernetes是OpenShift的重要组成部分,比较这两个平台可能会造成混淆。因此,为了帮助您确定哪个更适合您,我们将介绍两者之间最显着的差异,包括安装、命令行选项、用户界面、安全性、支持和其他主题。

在我们继续查看OpenShift和Kubernetes之间的区别(即OpenShift与Kubernetes)之前,让我们尝试简要地了解一下它们。

什么是Kubernetes?

Kubernetes是一个开源系统,用于自动化容器化应用程序的部署、扩展和管理。它通常也被称为K8s。Kubernetes是谷歌开发的第三个容器管理系统。第一和第二分别是博格和欧米茄。单击此处了解有关Google构建和使用的这三个容器管理系统的更多信息。

什么是OpenShift?

RedHatOpenShift是一个企业就绪的Kubernetes容器平台,可在Kubernetes集群内外实现自动化,并包含一个作为Kubernetes集群的一部分安装的私有容器注册表。

什么是容器编排系统?

执行容器化工作负载和服务所需的操作任务的自动化,例如容器配置、部署、扩展、网络和负载平衡,被称为容器编排。实际上,有助于自动化的系统是容器编排系统。如前所述,市场上有多种替代品。其中包括Kubernetes、OpenShift、AmazonECS、DockerSwarm和Nomad等等。在此博客中,我们将讨论K8S与OpenShift,其中Kubernetes纯粹是一个容器编排引擎,而OpenShift是一个平台即服务(PAAS)解决方案,用于简化容器编排。在继续进行比较之前,让我们尝试快速了解OpenShift和Kubernetes的架构。

Kubernetes的快速架构

Kubernetes集群由一个或多个称为控制平面的主机和一个或一组称为节点的工作机器组成。应用程序工作负载的组件(称为Pod)由工作节点托管,而控制平面或主节点负责监督集群的工作节点和Pod。

要使Kubernetes集群完整并发挥作用,您必须拥有许多不同的组件。一个Kubernetes集群由以下部分组成:

控制平面或主节点组件

kube-apiserver: KubernetesAPI通过称为kube-apiserver的Kubernetes控制平面组件提供。Kubernetes控制平面的前端是API服务器。

etcd: Kubernetes使用etcd作为所有集群数据的后备存储,因为它是一个可靠且高度可用的键值存储。

kube-scheduler: Controlplane的kube-scheduler组件,负责为没有关联节点的新形成的Pod选择节点。

kube-controller-manager:运行控制器进程是控制平面组件kube-controller-manager的职责。

cloud-controller-manager:云控制器管理器将与云平台通信的组件与仅与集群交互的组件分开,使您能够将集群连接到云提供商的API。

工作机器或节点组件

kubelet: kubelet的职责是确保容器在Pod中运行。

kube-proxy:集群中的每个节点都运行kube-proxy,这是一个执行部分Kubernetes服务概念的网络代理。在节点上,kube-proxy跟踪网络策略。这些网络规则允许从集群内部和外部的会话与您的Pod进行网络通信。

容器运行时:容器运行时是负责运行容器的软件。除了KubernetesCRI的任何其他实现之外,Containerd和CRI-O是Kubernetes支持的两种容器运行时。

OpenShift 与 Kubernetes:不公平的较量

OpenShift的快速架构

可以在OpenShift容器平台上创建和运行容器化应用程序。支持容器化应用程序的技术被整合到OpenShift容器平台中,该平台的根源在于Kubernetes。

OpenShift 与 Kubernetes:不公平的较量

控制平面或主节点组件

1.OpenShift服务:

OpenShiftAPI服务器:对于项目、路由和模板等OpenShift资源,OpenShiftAPI服务器验证和配置数据。

OpenShift控制器管理器:项目、路由和模板控制器对象是OpenShift对象的示例,OpenShift控制器管理器在使用API强制执行所需状态之前监视etcd中的更改。

OpenShiftOAuthAPI服务器:用户、组和OAuth令牌均由OpenShiftOAuthAPI服务器配置和验证,然后再用于验证OpenShiftContainerPlatform。

OpenShiftOAuth服务器:为了向API验证自己的身份,用户必须向OpenShiftOAuth服务器请求令牌。

2.网络组件: OpenShift容器平台使用软件定义网络(SDN)策略提供统一的集群网络,允许整个集群中的pod之间进行通信。

3.Kubernetes服务:

KubernetesAPI服务器: pod、服务和复制控制器的数据由KubernetesAPI服务器验证和设置。此外,它还充当集群共享状态的焦点。

Kubernetes控制器管理器:当复制、命名空间和服务帐户控制器对象等项目发生变化时,Kubernetes控制器管理器会监视etcd的这些更改,然后利用API强制执行所需的状态。

Kubernetes调度器:当Kubernetes调度器注意到没有指定节点的新产生的pod时,它会选择托管pod的理想节点。

4.ClusterVersionOperator: OpenShiftContainerPlatform中默认部署了很多集群Operator,ClusterVersionOperator(CVO)处理它们的生命周期。使用最新的组件版本和数据,CVO还咨询OpenShift更新服务以确定更新并更新仍然有效的路径。

5.etcd:当其他组件等待etcd进行修改以便它们可以进入所需状态时,etcd存储持久主状态。

控制平面还包括CRI-O和Kubelet,其中CRI-O提供运行、停止和重启容器的设施。Kubelet充当Kubernetes的主要节点代理,负责启动和监控容器。

工作机器或节点组件

可观察性: OpenShift容器平台的关键平台组件通过预先设置、预安装和自我更新的监控堆栈进行监控。集群管理员可以选择在安装OpenShiftContainerPlatform后启用对用户定义项目的监控。

网络:集群管理员可以使用多种选项来向外部流量开放集群应用程序并保护网络连接。

OpenShiftLifecycleManager: OperatorLifecycleManager为创建和部署应用程序的人员提供的设施允许Operator的分发和存储。

集成镜像存储库: OpenShift容器平台可以从您的源代码创建镜像、部署它们并管理它们的生命周期。为了在本地管理镜像,它提供了一个内部的、集成的容器镜像注册表,可以安装在您的OpenShiftContainerPlatform环境中。

机器管理:要管理OpenShiftContainerPlatform集群,您可以利用机器管理来灵活地与底层基础设施交互,例如AWS、Azure、GCP、OpenStack、RedHatVirtualization和vSphere。

与ControlPlane一样,Worker节点也包含CRI-O和Kubelet。

使用Kubernetes的优势

Kubernetes是开源的,可以在任何平台上免费使用。

它有一个规模庞大、活跃的开发人员和工程社区,有助于定期发布新功能。

可以使用kubeadm、kops和kube-spray等多种安装工具在大多数系统上安装Kubernetes。

使用OpenShift的优势

几乎每个Kubernetes任务都可以使用OpenShift默认的功能丰富的图形界面来构建、部署、扩展、监控和实施,管理员和开发人员可以使用该界面。

不同的云服务提供商提供各种Kubernetes管理的服务,每个服务都有自己的一套附加组件、插件和使用指南。因此,当您使用Kubernetes从一个云提供商迁移到另一个云提供商时,您需要了解事情是如何运作的。也就是说,就OpenShift而言,可以使用相同的Web界面在所有云服务平台上构建、部署和管理您的应用程序。

为了防止帐户泄露问题,OpenShift默认提供基于角色的访问控制(RBAC),这有助于确保每个开发人员只获得访问他们需要的功能的权限。

RedHatOpenShift为Kubernetes和Kubernetes原生应用程序提供商业支持、更新、补丁和更好的安全性。

红帽OpenShift通过集成平台监控并包括自动化维护操作和升级,提供控制、可见性和管理,以轻松部署、维护和创建代码管道。

1.OpenShift与Kubernetes:产品与项目

OpenShift和Kubernetes之间的第一个也是最重要的区别是OpenShift是一个需要会员资格的商业产品。相比之下,Kubernetes是一个免费提供的开源项目。因此,在出现任何问题或错误的情况下,OpenShift提供了一个很好的付费支持替代方案来解决问题。另一方面,在Kubernetes中,您需要联系由包括开发人员、管理员和架构师在内的几位专业人员组成的Kubernetes社区,以解决工具中发现的问题或错误。

问你一个问题: 你准备好为OpenShift订阅付费了吗?或者你是否擅长免费的Kubernetes?

2.OpenShift与Kubernetes:安装

安装是启动和运行集群真正需要做的第一件事,也是讨论OpenShift与Kubernetes主题时要考虑的最重要的一点之一。

对于OpenShift,您必须使用下面列出的平台之一来安装它。它不能安装在任何其他Linux发行版上。

RedHatEnterpriseLinuxCoreOS(RHCOS)(用于主节点)

RedHatEnterpriseLinux(RHEL)(用于工作节点)

相反,Kubernetes可以在大多数系统上设置,并且可以通过各种工具安装,包括Kubeadm、Kube-spray、Kops和Booktube。

问你: 你想要对操作系统进行限制,或者你是否愿意使用任何可用和受支持的系统?

3.OpenShift与Kubernetes:命令行

设置集群后,您需要一种与其交互的方法。因此,“命令行”是我们在这篇OpenShift与Kubernetes文章中的下一个讨论点。

Kubernetes提供了一个命令行工具,用于与Kubernetes集群的控制平面进行交互。Kubectl是该实用程序的名称。您可以使用Kubectl向Kubernetes集群发出命令。使用Kubectl可以部署应用程序,可以检查和管理集群资源,还可以查看日志。

在OpenShift中,oc命令提供了类似的功能,因为它是由Kubectl开发的。在OpenShift中,oc命令提供了与kubectl类似的功能。也就是说,它还进行了扩展以原生支持更多OpenShiftContainerPlatform功能,例如:

完全支持OpenShiftContainerPlatform资源:DeploymentConfig、BuildConfig、Route、ImageStream和ImageStreamTag对象是OpenShiftContainerPlatform独有的资源示例,可以使用oc命令进行管理。

身份验证:oc二进制文件提供的内置登录命令提供身份验证,并允许您与OpenShiftContainerPlatform进行交互。

ocnew-app、ocnew-project等其他命令:ocnew-app命令使使用预构建图像或现有源代码启动新应用程序变得更加简单。同样,使用ocnew-project命令可以更简单地启动一个您可以用作默认项目的项目。

问你: 你想使用Kubectl向你的Kubernetes集群发出命令,还是你有需要oc命令到位的资源?

4.OpenShift与Kubernetes:用户界面

命令行不是与集群交互的唯一选项,用户界面也是如此。因此,集群管理需要一个高效的基于Web的用户界面(UI),因此在谈论Kubernetes与OpenShift时不能跳过。

Kubernetes仪表板必须单独安装,并且您必须使用kube-proxy将本地计算机端口路由到集群的管理服务器。此外,由于仪表板缺少登录页面,您必须手动创建不记名令牌以用作授权和身份验证。

OpenShift的Web控制台包含一个登录页面。控制台很容易访问,大多数资源都可以通过表单创建或修改。服务器、项目、集群角色都可以看到。

问你: 你能负担得起自己安装仪表板的努力吗,或者你想要一个花哨的用户界面来访问你的集群?

5.OpenShift与Kubernetes:项目与命名空间

在单个集群中分离Kubernetes集群资源的一种方法是通过在Kubernetes中使用命名空间。命名空间专为具有分布在众多团队或项目中的庞大用户群的环境而设计。命名空间是一种用于将集群资源分配给不同用户的技术。

OpenShift中的一些项目只不过是增强的Kubernetes命名空间。在OpenShift上部署软件时,该项目的使用方式与Kubernetes命名空间完全相同,不同之处在于用户无法自行创建项目,必须由管理员授予访问权限。

问您: Kubernetes中的命名空间是否满足您在集群中隔离资源的要求,或者您是否明确需要OpenShift中的项目?

6.OpenShift与Kubernetes:模板与Helm

Helm模板在Kubernetes中可用,并且灵活且易于使用。Charts是包,Helm是包管理工具。在谈论Kubernetes与OpenShift时,绝对应该考虑这一点。

在OpenShift上下文中,模板定义了一组对象,这些对象可以被处理和参数化以生成对象列表,供OpenShift容器平台生成。您有权在项目中制作的任何内容都可以使用模板创建。

OpenShift模板缺少Helm图表中的高级模板和包版本控制。因此,OpenShift部署变得更加困难,并且在大多数情况下需要外部包装器。

问你一个问题: 如果你已经熟悉了Helm,你还想学习OpenShiftTemplates吗?

7.OpenShift与Kubernetes:ImageRegistry

您可以将自己的Docker注册表与Kubernetes一起使用。但是,Kubernetes没有集成的图像注册表。相比之下,OpenShift容器平台提供的内置容器镜像注册表是集群的常规工作负载。它在当前集群基础设施之上工作,同时为用户提供开箱即用的解决方案来管理运行其工作负载的图像。此注册表不需要特殊的基础架构配置,并且可以像任何其他集群工作负载一样向上或向下扩展。通过设置图像资源的用户权限进一步控制生成和检索图像的能力,因为它们链接到集群用户身份验证和授权系统。这是OpenShift区别于Kubernetes的特性之一。

问题: 您是否需要在您的集群中集成图像注册表,或者您使用自己的图像注册表是否没有问题?

8.OpenShift与Kubernetes:安全性

OpenShift具有比Kubernetes更严格的安全准则。事实上,在Openshift中,出于安全要求,您不能执行基本的容器镜像或许多官方镜像。

例如,鉴于OpenShift限制以root身份运行容器并且许多官方镜像不符合要求,因此DockerHub上可用的大多数容器镜像都无法在该平台上运行。

基于角色的访问控制(RBAC)是OpenShift默认提供的一项功能,有助于确保每个开发人员只能访问他们所需的功能,以防止帐户泄露问题。由于缺少原生身份验证和授权功能,Kubernetes安全功能需要更复杂的设置。

当您使用OpenShift创建项目时,默认设置其他安全规则,例如IAM和OAuth。仅在需要时才需要添加用户权限。这会加快您的应用程序环境的设置过程,从而节省您的时间。

关于安全性,这两个选项之间的比较根本不公平,因为OpenShift的安全性实际上非常严格。

问题: 您希望集群默认安全,还是可以自行管理?

9.OpenShift与Kubernetes:CI/CD

组织可以使用OpenShift容器平台,使用DevOps技术(例如持续集成(CI)和持续交付(CD))自动交付其应用程序。OpenShift容器平台提供以下CI/CD选项来满足组织需求:

OpenShift构建:使用声明式构建过程,OpenShift构建使您能够构建云原生应用程序。

OpenShiftPipelines: OpenShiftPipelines提供了一个Kubernetes原生CI/CD平台,用于在其自己的容器中设计和运行管道的每个阶段。

OpenShiftGitOps:借助OpenShiftGitOps,管理员可以跨集群和开发生命周期可靠地部署和配置基于Kubernetes的基础架构和应用程序。

Jenkins: Jenkins自动化项目和应用程序的开发、测试和部署。直接与OpenShift容器平台集成的Jenkins镜像通过OpenShift开发者工具提供。

这是OpenShift与Kubernetes的区别之一。事实上,OpenShift提供了内置的CI/CD集成。另一方面,Kubernetes没有官方的CI/CD集成选项。因此,为了使用Kubernetes创建CI/CD流水线,您必须集成外部工具。

问你: 你想要在你的集群中集成CI/CD解决方案,还是你可以自己处理工具及其安装?

10.OpenShift与Kubernetes:支持

由于Kubernetes是一个开源项目,因此有一个规模庞大且参与度高的开发人员社区不断合作以改进该平台。就OpenShift而言,支持小组要小得多,主要由RedHat开发人员组成。

OpenShift作为商业产品提供承诺的客户服务、支持和建议。作为一个开源、基于社区的免费项目,Kubernetes不提供专门的客户支持。

综上所述,当开发人员遇到Kubernetes问题时,他们必须等待他们的问题得到解答,依靠论坛上其他开发人员的经验。红帽工程师全天候为OpenShift用户提供支持。

问你: 你想要付费的专门支持团队来帮助你解决问题,还是你可以依靠社区并免费搜索解决方案?

11.OpenShift与Kubernetes:与云无关

理想情况下,为了提高生产力,您希望能够灵活地在不同的云服务提供商之间移动您的应用程序,而无需修改或替换您的应用程序基础设施。

有不同的云提供商,包括AWS、GCP和Azure,它们提供各种Kubernetes管理的服务,每个服务都有自己的一套附加组件、插件和使用指南。在云服务之间切换之前,您需要熟悉托管的Kubernetes服务,以便掌握其工作原理。这就是为什么Kubernetes不像OpenShift那样与云无关。的确,托管或托管OpenShift的用户体验和功能保持不变。

问你一个问题: 你打算从一个云供应商转移到另一个云供应商,还是你宁愿一直使用同一个云供应商?

12.OpenShift与Kubernetes:定价

由于Kubernetes是一个开源项目,它是免费的,不需要任何许可。因此,如果您自己管理Kubernetes,则无需向任何人付费。但是,如果您使用任何提供商(例如AWS、GCP或Azure)提供的托管服务,您将需要付费。费用将取决于您选择的平台和您使用的资源数量。

OpenShift提供两种类型的服务——红帽OpenShift云服务版本和自我管理的红帽OpenShift版本。如果您使用的是云服务,截至2022年11月20日,RedHatOpenShift预留实例的购买价格低至0.076美元/小时,而自行管理的RedHatOpenShift的成本取决于您的订阅和大小选择。

问你一个问题: 你是愿意使用自我管理的Kubernetes集群来省钱还是花在托管服务上?

结论

OpenShift和Kubernetes都允许您快速部署和管理容器化应用程序。但是,它们确实在某些方面有所不同,这就是为什么我们为您准备了这篇关于OpenShift与Kubernetes的博客。Kubernetes是免费提供的,而Openshift有不同的计划来满足您的需求。因此,OpenShift要求您付款;但是,它提供了Kubernetes没有的客户支持。这并不意味着如果您在使用Kubernetes时遇到问题就得不到帮助。事实上,Kubernetes有一个庞大的社区可以为您提供支持。另一件需要注意的事情是KubernetesHelm图表非常适合使用,而OpenShift有一个漂亮的用户界面仪表板。差异列表很长。

既然您已经阅读了本文,您应该会更好地理解OpenShift和Kubernetes之间的主要区别。选择平台时,您应该考虑自己的技能组合、要求和规格。在将该工具集成到您的工作流程之前探索和测试解决方案也很重要,因为您希望开发最适合您的管道。

举报/反馈

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2023-04-23 18:45:03

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

6大功能特性升级,UCloudStack优刻得私有云发布全新版本
...捷高效、异构兼容、统一管理的私有云特性,并在跨存储集群热迁移、共享云盘、垂直伸缩等方面实现了全方位升级。同时,新版本提供英文版控制台,为企业带来更全面的云平台管理体验,助力企
2023-06-20 15:00:00
KubeSphere容器平台,为企业云原生转型提速
...,如此就既满足了研发的应用视角纬度,也满足了运维的集群视角维度。在选型期间对比了 Rancher、Openshift
2023-07-05 11:00:00
互联网App连串崩溃背后:小规模“崩了修好”常发生
...信源向记者发来一份讨论截图,称一个规模非常大的K8s 集群进行在线热升级,因为某些原因,所有 Pod(容器)损坏,而 K8s 的元数据已经被新版本K8s 修改
2023-12-07 10:31:00
VMware替代超强干货!一文解读深信服全栈基础设施方案
...地热升级方案,不改变虚拟机运行位置,对于部分中小规模集群、边缘业务集群、测试业务集群来说,无需为升级浪费巨大的时间和人力成本,即可直接对所在主机进行热升级。基于热重启架构,深
2024-03-28 18:00:00
为什么要将程序部署到云服务器上?华为云开年采购季Web及移动App上云体验
...业务状态下被集体系统性的拖垮。4.第四就是我们的容器集群,通过强大的容器及群众管理和编排能力,我们可以快速的临时的创建我们的弹性容器,让我们的系统能够实现秒级扩容的这种扩容能
2023-03-15 12:00:00
华为闪存存储全新解决方案亮相2023创新数据基础设施论坛
...,例如:容器存储资源需要批量发放,存储响应慢;容器集群需要数据共享和敏捷扩展,传统块存储无法满足诉求;容器平台缺乏完整灾备保护方案,故障场景业务恢复慢。面向云原生生态,华为以
2023-06-27 18:00:00
欢迎来看!如何保障容器环境的业务连续性?青云科技携手骥步科技为你深度解读
...连续性方案设计必须立足于多云。例如,在一个 Kubernetes 集群中备份下来的应用和数据,需要能支持在其它 Kubernetes 平台上顺利进行恢复
2023-03-08 20:00:00
升级RASP 领航ADR 边界无限入选IDC Innovators推荐厂商
...位的安全防护,产品架构主要由镜像扫描组件、微探针、集群组件、管理平台四部分组成。采用云原生部署方案将镜像扫描组件、微探针、集群组件安装部署至用户业务端,根据业务情况做到实时弹
2023-06-25 20:00:00
业界首个分布式云原生服务华为云ucs正式商用
...式云场景下的新一代云原生产品,华为云UCS支持对华为云集群、伙伴云集群、多云集群、本地集群和附着集群等不同云原生集群的统一管理,覆盖中心Region、专有Region、边缘云
2022-12-27 08:57:00
更多关于科技的资讯: