Module 04 · The Kubernetes Ecosystem: OpenShift, Istio, etc.
Introduction to Red Hat OpenShiftRed Hat OpenShift 简介
OpenShift 定义与核心特性
OpenShift 是一个由 Red Hat 开发和支持的企业级 Kubernetes 容器平台,专为混合云策略(Hybrid Cloud strategy)而构建。
OpenShift 的基础
- 技术基础: 建立在 Linux、容器和自动化的技术基础之上。
- 平台一致性: 提供一致的应用程序平台,用于管理混合云、多云和边缘部署。
核心功能与价值
- 全栈自动化: 提供全栈自动化操作和自助服务置备(self-service provisioning)。
- 目标:帮助开发人员高效地将想法从开发阶段推向生产。
- 完整生命周期工具: 除了容器编排,它还提供围绕应用程序完整生命周期的附加工具,涵盖构建、CI/CD、监控和日志。
- 与 Kubernetes 的关系: Kubernetes 是 OpenShift 的关键组件。OpenShift 可视为 Kubernetes 的扩展,提供了一个更健壮、更全面的容器化应用平台。
OpenShift 的主要功能
OpenShift 提供广泛的功能,旨在简化和增强企业级应用部署:
- 伸缩能力:应用可在几秒内伸缩到数百个节点上的数千个实例。
- 基础设施:灵活的混合基础设施选项,简化部署和管理。
- 开放标准:使用 Kubernetes 和 OCI 容器(Open Container Initiative),这意味着开发工作熟悉且容器在多环境中可移植。
- 开发者工具:包含全面的开发者工具集、多语言支持、命令行、IDE 集成等。
- 升级和运维:支持空中平台升级(over-air platform upgrades),Operator Hub 中的服务可以一键式升级、完全配置和部署。
- 自动化:容器和应用的构建、部署、伸缩和健康管理都得到简化和自动化。
- 边缘计算:增强对边缘场景中更小拓扑结构的支持,以改善映射、连接和可用性。
- 多集群管理:轻松大规模管理和实施跨多个集群的策略。
- 企业安全:提供访问控制、网络、企业级注册表、内置扫描仪、增强威胁检测、生命周期漏洞管理和风险分析。
- 存储:支持企业级持久存储解决方案,用于运行有状态和无状态应用。
- 生态合作:OpenShift 合作伙伴生态系统提供额外的存储和网络服务,以及 IDE、CI 集成等。
OpenShift 与 Kubernetes 对比
OpenShift 在 Kubernetes 的基础上进行了产品化和增强 .
| 特性 | OpenShift (产品) | Kubernetes (开源项目) |
|---|---|---|
| 本质 | 产品(Product),由 Red Hat 支持 | 开源项目(Open Source Project) |
| 安装 | 安装开始后选项有限 | 可安装在所有 Linux 环境中 |
| 灵活性 | 较低(较少灵活) | 较高(更灵活) |
| 可用性 | 可用于 Online with Azure 和 Dedicated 部署 | 可用于 EKS (AWS)、GKE (GCP)、AKS (Azure) 等 |
| 镜像管理 | Image Streams 提供更好的管理 | 容器镜像管理相对不便 |
| 安全性 | 非常严格的安全策略 | 安全维护相对容易 |
| 外部访问 | 使用 Router 对象 | 使用 Ingress 对象 |
| 部署对象 | 使用部署配置(Deployment Config),灵活性较低 | 使用部署对象(Deployment Objects),灵活性较高 |
| 用户体验 | 提供良好的用户体验(UX)和易于学习的 Web 控制台 | 需要额外工具来改善用户体验,控制台对初学者较难 |
| 网络方案 | 开箱即用提供良好的网络解决方案 | 网络解决方案不可用时需要第三方插件 |
| 服务目录 | 提供良好的服务目录 | 在集群中为更好的服务提供的配置较少 |
| CI/CD 集成 | 与 Jenkins 集成 | 可以集成 CI/CD,但不直接与 Jenkins 集成 |
OpenShift 架构与组件

OpenShift 运行在 Kubernetes 集群之上,其对象数据存储在 etcd 键值存储中。
架构分层
- Red Hat 基础层:
- Master 节点:运行在 Red Hat Enterprise Linux CoreOS 之上。
- Worker 节点:支持 Red Hat Enterprise Linux。
- Kubernetes 架构与服务集合:
- Docker:提供封装和创建基于 Linux 的轻量级容器镜像的抽象。
- Kubernetes:提供集群管理,并在多主机上编排容器。
- OpenShift 附加功能:
- 针对开发人员的源代码、构建和部署管理。
- 大规模管理和推广镜像。
- 大规模应用管理。
- 团队和用户跟踪管理大型开发组织。
- 支持集群的网络基础设施。
- 服务层:
- 集群服务:包括集成监控、集群内的私有注册表、网络解决方案等。
- 平台服务:帮助用户管理其工作负载。
- 应用服务:帮助用户构建云原生应用。
- 开发者服务:提高开发人员生产力。
微服务架构
OpenShift 具有基于微服务的架构:
- REST APIs 服务:暴露核心对象。
- 控制器(Controllers):
- 读取 REST APIs。
- 对其他对象应用更改。
- 报告状态或写回对象。
- 维护集群的期望状态(desired state)。
OpenShift 命令行接口 (CLI)
OpenShift 提供一套 CLI 工具,允许用户从终端执行各种管理和开发操作。
oc(OpenShift CLI):最常用的 CLI 工具,用于执行端到端操作,可运行在 Windows、Linux 或 Mac 上。
oc与kubectl
由于 OpenShift 运行在 Kubernetes 集群之上,oc 中也包含 kubectl 的副本。
| 特性 | oc CLI | kubectl Binary |
|---|---|---|
| 基本能力 | 提供与 kubectl 相同的基本功能 |
标准 Kubernetes CLI |
| 扩展功能 | 扩展以原生支持 OpenShift 特性:Deployment Configs, Build Configs, Routes, Image Streams 等(这些在标准 Kubernetes 中不可用)。 | 不支持 OpenShift 特有的功能。 |
| 附加命令 | 提供内置的 login 命令进行认证,支持 new-app 等简化应用启动的命令。 |
无。 |
总结
- Kubernetes 和 OpenShift 都是容器编排平台。
- OpenShift 是一个为开放混合云构建的企业级 Kubernetes 容器平台。
- OpenShift 运行在 Kubernetes 集群之上,对象数据存储在 etcd 键值存储中。
- 相比 Kubernetes,OpenShift 更易于使用、集成了 Jenkins,并拥有更多的服务和功能。