01 它是干嘛的
OpenShift 是基于 Kubernetes 的企业级容器平台。它在开源 K8s 之上补齐了企业真正需要的东西:统一的认证与权限、内置监控与日志、镜像构建流水线、经过验证的升级路径,以及能签合同的技术支持。
02 为什么会有它
以前:应用部署靠人工和文档
容器出现之前,上线一个应用通常意味着:运维按文档在服务器上装依赖、改配置、启进程,环境之间稍有差异就会出现「在我机器上能跑」的经典问题。扩容要靠人工再装一遍。
Kubernetes 把这件事变成声明式的:你写下「我要跑三个副本、需要多少 CPU、健康检查怎么做」,系统负责把现实调整成你描述的样子,节点挂了自动补。
但原始 K8s 只提供骨架,监控、日志、权限、升级这些都要自己拼。OpenShift 的价值就在把这些补齐并做兼容性验证——企业买的不是 K8s,而是「出了事有人兜底」。
03 它怎么工作
控制器不断比对「你声明的期望」与「集群的实际状态」,不一致就采取行动,这是 Kubernetes 的核心循环。
期望状态是怎么被持续调谐的
- 1① 声明期望
用配置描述副本数、镜像版本、资源限制与健康检查方式。
- 2② 控制器观察
控制器持续监听实际状态,发现少了副本或容器不健康。
- 3③ 调度 placement
调度器按资源余量与亲和性规则选择合适节点放置容器。
- 4④ 自愈
容器崩溃或节点失联时自动重建副本,把实际状态拉回期望。
- 5⑤ 滚动更新
新版本分批替换旧副本,异常时自动回滚,业务不中断。
04 谁在用它
大量老旧应用要容器化
统一部署方式,减少环境差异带来的故障。
混合云与多地部署
本地机房与公有云跑同一套平台,应用可迁移。
需要合规与审计的行业
权限、镜像来源与操作留痕都要可追溯。
多团队协作的大型研发
用命名空间与配额隔离各团队资源。
05 怎么用
先把一个无状态的小服务容器化跑通,再考虑有状态服务。
- 01写 Dockerfile 把应用打成镜像,先在本机跑起来。
- 02用最简配置部署到集群,只设副本数与资源限制。
- 03配好健康检查,否则自愈机制无法生效。
- 04再加滚动更新策略与回滚规则。
避坑提示
- !无状态先行:数据库这类有状态服务要谨慎,先弄清存储与备份方案。
- !资源限制一定要设,一个失控的应用会拖垮整台节点。
06 关键概念
- 容器
- 把应用与依赖打包成一个可移植的运行单元,避免环境差异。
- 声明式
- 描述想要的结果,系统负责把现实调成那样,而不是一步步指挥它。
- 调谐循环
- 控制器不断比对期望与实际并纠正差异的自愈机制。
- 滚动更新
- 分批替换旧版本,出问题自动回滚,保证服务不中断。
07 容易混淆的对比
原生 Kubernetes免费灵活,但监控、权限、升级都要自己拼装与维护。
云厂商托管 K8s(EKS/GKE/ACK/TKE)与自家云深度集成、运维更省,但跨云一致性不如 OpenShift。