OpenShift v.s. Kubernets,你会选择谁?
source link: https://blog.csdn.net/Jmilk/article/details/110244602
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
文章目录
OpenShift v.s. Kubernets
简而言之,Kubernets 是一个 CaaS(容器即服务)系统,而 OpenShift 是一个 PaaS(平台即服务)系统,OpenShift 集成了 Kubernets 基于 “不可变基础设施” 及 “云应用编排” 理论实现的 “云原生” 思想,继而得以实现以应用为中心的 Platform 服务(e.g. CI/CD、DevOps、数据库中间件、消息队列中间件、ServiceMesh、Serverless)。
- 不可变基础设施:这一点目前是通过容器镜像来实现的,其含义就是应用的基础设施应该是不可变的,是一个自包含、自描述可以完全在不同环境中迁移的东西;
- 云应用编排:当前的实现方式就是 Google 所提出来的 “容器设计模式”。
OpenShift 之所以推崇 PaaS 因为其面向的都是企业级客户,而 Kubernets 之所以更专注于 CaaS 是因为 Kubernets 专注于由公有云厂商把持的 “云原生” 核心技术体系,面向更广阔的 “得开发者,得天” 下的 IT 市场。
虽然两者都有一致的核心(Kubernetes),OpenShift 通过其开箱即用的功能使安装和使用更容易、更安全。
操作系统基础设施
- Kubernetes 在操作系统基础设施方面更加灵活。可以在主流的 Linux 发行版上(e.g. Fedora,Ubuntu 或 Debian)运行。
- OpenShift 为了追求不可变操作系统基础设施对平台运营上的优化,只能运行在 RHEL 或 RHCOS 上。
- Kubernetes 因为支持灵活的操作系统基础设施,所以也有着无数的部署解决方案。例如:kops 或 Rancher Kubernetes Everywhere(RKE)。
- OpenShift 的部署自然是配备了自家兄弟 Ansible 的专有安装程序,可以使用最少的配置参数安装 OpenShift。此外,RedHat 还为 OCP 版本推出了 “隔空更新” 服务,这些订阅增值服务都得益于 CoreOS 的不可变操作系统基础设施。
-
Kubernetes Dashboard 必须单独安装,需要通过 kube-proxy 访问,将本地主机的端口转发到集群的管理服务器。此外,它没有登录页面,需要手动创建承载令牌以提供身份验证和授权。所有这些复杂性导致 Web UI 对于真正的日常管理工作而言不是很有价值。
-
OpenShift 面向的主要是企业客户,所有 Web UI 至关重要,Web 控制台有一个登录页面,可以轻松访问,甚至可以让你通过表单创建和更改大多数资源。虽然你无法通过 Web 管理集群,但可以可视化服务器,项目和集群角色。
- Kubernetes 没有本机网络解决方案,提供了可供第三方网络插件使用的 CNI 接口。
- OpenShift 有一个开箱即用的本机网络解决方案 OpenvSwitch,它提供三种不同的插件。
集成 Container Registry 与 ImageStream
- Kubernetes 可以设置自己的 Docker 注册表,但没有集成镜像注册表的概念。
- OpenShift 自带了一个集成的镜像注册表,可以与 Docker Hub 或 RedHat 仓库一起使用。它甚至还有一个注册表控制台,可以在其中搜索与集群中项目相关的镜像和镜像流的信息。另外,OpenShift Container Registry 自动管理镜像的版本,ImageStream 包含所有镜像的原数据,但 ImageStream 不包含 Image 数据。
Native CI/CD factory
- Kubernetes 原生不存在 CI/CD 的概念,但可以部署自己的自定义 Jenkins 镜像。生成的组件是上传到镜像存储库的 Docker 镜像。
- OpenShift 使用 Pipeline 构建,这是一种源到镜像构建的形式,它引用包含 Jenkins 的镜像,而 Jenkins 又监控 ImageStreamsTags。当需要更新时,它可以启动 Jenkins 构建。
OpenShift 比 Kubernetes 具有更严格的安全策略,这由于 OpenShift 的目标群体是企业客户,OpenShift 贯彻了 “默认安全” 的思想。
基于 RBAC 体系管理用户权限,支持 Identity providers。由于群集上运行的每个容器都与 Service accounts 相关联,因此可能将 Secrects 与这些 Service accounts 相关联,并使它们自动关联到容器。这使基础结构能够管理提取和推送 Image 的 Secrects,生成和部署组件,还允许应用程序代码轻松利用这些 Secrects。
开发人员(系统的客户端)通常从客户端程序进行 REST API 调用,例如通过 Web 控制台,或使用 OAuth 承载令牌进行通信。基础结构组件(如节点)使用由系统生成的客户端证书,包含他们的身份。在容器中运行的基础结构组件使用关联的令牌及其 Service account 连接到 API。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK