OpenShift 在 Kubernetes 基礎上增加的功能中,部分組件是開源的(代碼可公開訪問),而另一些則是?Red Hat 專有(閉源)。以下是詳細分類:
1. 完全開源的功能(代碼可查)
這些功能屬于?上游開源項目?或 OpenShift 的?社區版(OKD),代碼可在 GitHub 等平臺查看:
(1) OKD(OpenShift Origin)
-
代碼倉庫:https://github.com/openshift/okd
-
包含內容:
-
OpenShift 的核心功能(如 S2I、BuildConfig、DeploymentConfig)。
-
社區版 Web 控制臺(弱化版企業控制臺)。
-
基礎網絡插件(OVS-based SDN)。
-
(2) Source-to-Image (S2I)
-
代碼倉庫:https://github.com/openshift/source-to-image
-
說明:
-
從源代碼直接構建容器鏡像的工具,OpenShift 的核心功能之一。
-
(3) OpenShift Router(基于 HAProxy)
-
代碼倉庫:https://github.com/openshift/router
-
說明:
-
替代 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)
-
代碼倉庫:https://github.com/openshift/oc
-
說明:
-
擴展了?
kubectl
?的命令行工具(如?oc new-app
)。
-
(6) Cluster Monitoring(基于 Prometheus)
-
代碼倉庫:https://github.com/openshift/cluster-monitoring-operator
-
說明:
-
集成的 Prometheus 監控棧(但企業版的控制臺插件可能閉源)。
-
2. 部分開源或上游依賴的功能
這些功能基于開源項目,但 OpenShift 的?企業增強部分可能閉源:
(1) OpenShift SDN(網絡插件)
-
代碼倉庫:https://github.com/openshift/sdn
-
說明:
-
基于 Open vSwitch (OVS) 的網絡實現,但企業版的多租戶隔離策略可能專有。
-
(2) Security Context Constraints (SCCs)
-
代碼倉庫:
-
基礎實現:https://github.com/openshift/api/blob/master/security/v1/types.go
-
-
說明:
-
SCCs 的 API 定義是開源的,但企業版的高級策略管理工具(如 Web 控制臺集成)可能閉源。
-
(3) Internal Registry
-
代碼倉庫:https://github.com/openshift/image-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。