OpenShift 在 Kubernetes 基础上增加的功能中,部分组件是开源的(代码可公开访问),而另一些则是 Red Hat 专有(闭源)。以下是详细分类:
1. 完全开源的功能(代码可查)
这些功能属于 上游开源项目 或 OpenShift 的 社区版(OKD),代码可在 GitHub 等平台查看:
(1) OKD(OpenShift Origin)
包含内容:
OpenShift 的核心功能(如 S2I、BuildConfig、DeploymentConfig)。
社区版 Web 控制台(弱化版企业控制台)。
基础网络插件(OVS-based SDN)。
(2) Source-to-Image (S2I)
说明:
从源代码直接构建容器镜像的工具,OpenShift 的核心功能之一。
(3) OpenShift Router(基于 HAProxy)
说明:
替代 Kubernetes Ingress 的流量路由组件。
(4) Operator Framework
代码仓库:
Operator SDK: https://github.com/operator-framework/operator-sdk
OLM (Operator Lifecycle Manager): https://github.com/operator-framework/operator-lifecycle-manager
说明:
用于开发和管理 Kubernetes Operator 的工具链。
(5) OpenShift CLI (oc)
说明:
扩展了
kubectl
的命令行工具(如oc new-app
)。
(6) Cluster Monitoring(基于 Prometheus)
代码仓库:https://github.com/openshift/cluster-monitoring-operator
说明:
集成的 Prometheus 监控栈(但企业版的控制台插件可能闭源)。
2. 部分开源或上游依赖的功能
这些功能基于开源项目,但 OpenShift 的 企业增强部分可能闭源:
(1) OpenShift SDN(网络插件)
说明:
基于 Open vSwitch (OVS) 的网络实现,但企业版的多租户隔离策略可能专有。
(2) Security Context Constraints (SCCs)
代码仓库:
说明:
SCCs 的 API 定义是开源的,但企业版的高级策略管理工具(如 Web 控制台集成)可能闭源。
(3) Internal Registry
说明:
基础的镜像仓库是开源的,但企业版的镜像扫描和签名工具(如 Atomic Registry)可能闭源。
3. Red Hat 专有功能(闭源)
以下功能仅在 企业版 OpenShift (OCP) 中提供,代码不公开:
企业级 Web 控制台:
社区版 OKD 的控制台功能较弱,企业版的图形化工具(如拓扑视图、高级监控)闭源。
高级安全策略管理:
如 SCCs 的图形化配置、合规性检查工具。
红帽支持的 Operators:
通过 Red Hat Operator Hub 分发的专有 Operator(如 OpenShift Data Foundation)。
商业集成工具:
与 Red Hat Ansible Automation Platform、Quay 的深度集成。
如何验证代码是否开源?
访问 GitHub 组织:
OpenShift 开源项目集中在 https://github.com/openshift。
检查 Red Hat 文档:
企业版功能标记为 "Red Hat proprietary" 的通常是闭源的。
对比 OKD 和 OCP:
如果功能在 OKD 中存在,则代码可查;仅 OCP 有的功能通常是闭源的。
总结:开源 vs 专有
功能 | 开源情况 | 备注 |
---|---|---|
S2I、BuildConfig | 完全开源(OKD) | 代码在 GitHub |
Router (HAProxy) | 完全开源 | 替代 Kubernetes Ingress |
Operator Framework | 完全开源 | 包括 OLM 和 Operator SDK |
oc CLI | 完全开源 | 扩展了 kubectl |
SCCs 基础 API | 部分开源 | 高级策略工具闭源 |
企业控制台 | 闭源 | OKD 控制台功能简化 |
红帽 Operators | 闭源(如 OpenShift Logging) | 社区 Operator 可开源 |
建议
如需完全透明:使用 OKD(功能与 OCP 大部分重叠,但无商业支持)。
若需企业功能:OCP 是必选,但需接受部分闭源组件。
代码审查:通过 OKD 的源码理解 OpenShift 设计理念,再评估是否升级到 OCP。