openshift是kubernetes的企业级增强版,通过clusteroperator统一纳管核心组件、project+scc+quota实现多租户隔离、buildconfig+imagestream+deploymentconfig自动化交付,并支持web console、cli与gitops协同治理。

OpenShift 不是 Kubernetes 的替代品,而是它的企业级增强版——它把原本需要手动集成、反复调优的运维能力,变成开箱即用的平台功能。管理好 OpenShift,核心在于理解它“自动化+策略驱动+分层治理”的逻辑,而不是把它当成一个更花哨的 kubectl。
用 ClusterOperator 统一掌控平台健康
OpenShift 把集群关键组件(网络、存储、监控、认证等)全部封装成 ClusterOperator,统一纳管、状态可视、升级可控。
- 执行 oc get clusteroperators 一眼看清所有核心组件是否可用(AVAILABLE 列为 True)、是否就绪(PROGRESSING 和 DEGRADED 列为 False)
- 某个 Operator 卡在 Progressing 状态?直接查日志:oc logs -n openshift-cluster-storage-operator deploy/cluster-storage-operator
- 不要手动改底层 CNI 或 etcd 配置——所有变更都应通过修改对应 Operator 的 CR(Custom Resource)触发,确保可追溯、可回滚
用 Project + SCC + Quota 实现多租户安全隔离
企业里不同团队共用一个集群,靠命名空间(Namespace)不够,必须叠加策略控制。
- 用 oc new-project team-alpha 创建 Project,自动绑定默认资源配额和 SCC 策略
- 限制高危能力:禁止特权容器、禁用 hostPath 挂载、强制 drop ALL capabilities —— 这些都通过编辑 SecurityContextConstraints(SCC)实现,不是靠 Pod YAML 里写 securityContext
- 对开发团队开放 anyuid SCC 要谨慎;生产环境建议只授予 restricted 或自定义最小权限 SCC
用 BuildConfig + ImageStream + DeploymentConfig 自动化交付流水线
OpenShift 内置的构建与部署模型,天然适配企业发布规范。
- S2I 构建无需 Dockerfile:提供源码地址和 builder 镜像(如 registry.redhat.io/ubi8/nodejs-18),平台自动拉取、编译、打包、推镜像
- ImageStream 是镜像的“版本中枢”:当新镜像推送到 registry,关联的 ImageStreamTag 自动更新,触发下游 DeploymentConfig 自动滚动发布
- 蓝绿或金丝雀发布?不用写复杂脚本——直接在 DeploymentConfig 中配置 strategy: type: Rolling 或切换为 Recreate,再配合 Route 的 weight 分流即可
用 Web Console + CLI + GitOps 工具协同治理
不同角色用不同方式操作,但底层策略一致,避免“界面一套、命令行一套、CI 一套”。
- 运维人员用 Web Console 查看集群仪表盘、节点资源、Operator 状态;开发者用 Developer 视图一键创建应用、查看构建日志、调试 Pod
- 所有操作尽量走 CLI(oc)并导出为 YAML:比如 oc get dc/myapp -o yaml > deployment.yaml,纳入 Git 版本库
- 结合 Argo CD 或 OpenShift Pipelines(Tekton),让 Git 仓库成为唯一可信源——YAML 提交即触发校验、构建、部署全流程










