OpenShift 有状态应用与权限管理全解析
1. OpenShift 有状态应用 Native API 对象支持
OpenShift 为有状态应用提供了 Native API 对象支持,主要通过有状态集(Stateful Set)来实现。有状态集能让传统工作负载在 OpenShift 中更好地运行,它支持以下关键功能:
- 实现自定义负载均衡
- 实现自定义服务发现
- 使用无头服务按每个 Pod 获取 DNS A 记录
- 配置粘性会话
- 通过处理 Linux 信号和容器生命周期事件来处理受控的启动和关闭序列
然而,一些应用还需要更可预测的启动和关闭顺序,以及可预测的存储和网络标识信息。例如,WildFly 应用中数据复制对用户体验至关重要,但大规模扩展事件可能会在复制过程中同时销毁过多 Pod,导致应用难以恢复和数据复制目标不明确。
为解决这个问题,OpenShift 引入了有状态集。有状态集是 OpenShift 用户工具包中的强大工具,可在现代环境中促进许多传统工作负载的运行。它取代了复制控制器(Replication Controller)作为底层实现,以更可控的方式确保服务中的副本。复制控制器无法控制 Pod 的创建或销毁顺序,而有状态集可以。
2. 有状态集的启动和关闭顺序确定性
有状态集为 Pod 的创建和删除带来了确定性的顺序。每个创建的 Pod 都有一个关联的序号索引(从 0 开始),该索引指示启动顺序。例如,WildFly 应用使用具有三个副本的有状态集时,Pod 将按以下顺序启动和命名:wildfly - app - 0、wildfly - app - 1
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



