大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
OpenShift
Red Hat OpenShift 是基于 Kubernetes 的 企业 PaaS 发行版:在 upstream K8s 之上叠加 内置镜像仓库、Router/Ingress、SCC、Operator 生命周期、Developer Console 等,降低平台团队搭建门槛。本课衔接 kubernetes-essentials 的 K8s 基础,补全 /roadmaps/devops 的 platform / container-orchestration 企业分支;底层 VM 与网络可由 terraform-essentials 与 devops-cloud-essentials 供给。
学习目标
- 区分 OpenShift Container Platform(OCP) 与 OKD(社区版) 及与 vanilla K8s 的关键差异
- 理解 Project、Route、SCC、BuildConfig/ImageStream 等 OpenShift 特有概念
- 能将 CodeRoadMap 组件映射为 Deployment + Route + Secret 的 OCP 部署模型
OpenShift vs vanilla K8s
| 能力 | vanilla K8s | OpenShift |
|---|---|---|
| 入口 | 需自建 Ingress Controller | 内置 Router(HAProxy)+ Route CRD |
| 镜像 | 外部 Registry | 内置 Internal Registry + ImageStream |
| 安全 | PodSecurity / PSA | SCC(Security Context Constraints)更细 |
| 构建 | CI 外部完成 | BuildConfig 可从 Git/S2I 构建 |
| 控制台 | 需 Lens/Rancher 等 | 内置 Developer + Admin Console |
| 安装 | kubeadm / 托管 EKS/GKE | IPI/UPI 安装器或 ROSA/ARO 托管 |
部署 CodeRoadMap 示例
# deployment-backend.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: coderoadmap-backend
namespace: coderoadmap
spec:
replicas: 2
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
image: registry.example.com/coderoadmap/backend:1.0.0
ports:
- containerPort: 8080
envFrom:
- secretRef:
name: backend-db-credentials
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "1000m"
# route-backend.yaml — OpenShift 特有
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: coderoadmap-api
namespace: coderoadmap
spec:
host: api.coderoadmap.example.com
to:
kind: Service
name: backend
tls:
termination: edge
insecureEdgeTerminationPolicy: Redirect
# scc 注意:默认 restricted SCC 禁止 root;需 non-root 镜像或申请 custom SCC
# oc adm policy add-scc-to-user anyuid -z default -n coderoadmap # 仅示例,生产应最小权限
平台运维视角
- Operator Hub:通过 OLM 安装 Prometheus、Service Mesh、GitOps(Argo CD Operator)
- 多租户:Project + NetworkPolicy + Quota 隔离团队
- 升级:OCP 版本与 K8s 版本绑定,需规划 EUS(Extended Update Support) 通道
OpenShift 常与 RHEL CoreOS 节点配合(见 dcp-os);Azure 托管版为 ARO,见 dcp-azure。
练习
- 写出 CodeRoadMap frontend(Next.js)+ backend + MySQL 在 OCP 上的 Namespace 划分与 Route 规划
- 对比 EKS/GKE 托管 K8s 与 OCP 在「企业 RBAC、内置 Registry、合规认证」上的差异
- 在 /roadmaps/devops 标注 container-orchestration 节点,说明何时选 OpenShift 而非 vanilla K8s
小结
OpenShift = K8s + 企业路由/构建/安全/控制台的一体化平台。 适合已有 RHEL 生态、需要强多租户与 Operator 治理的团队。下一课聚焦 Azure 平台 上的 PaaS 与 ARO 选项。