5.7.11. 路由器分片
在 OpenShift Container Platform 中,每个路由都可以在其 metadata
字段中拥有任意数量的 标签。路由器使用 选择器 (也称为 选择表达式)来选择要服务整个路由池的路由子集。选择表达式还涉及路由命名空间中的标签。所选路由形成 路由器分片。您可以独立于路由本身创建和修改路由器分片。
这种设计 支持传统的 分片,以及 重叠的分片。在传统的分片中,选择不会有重叠集,一个路由只属于一个分片。在重叠的分片中,选择会导致重叠集,路由可以属于多个不同的分片。例如,单个路由可以属于 SLA=high
分片(但不适用于 SLA=medium
或 SLA=low
分片),以及一个 geo=west
分片(而不是 geo=east
分片)。
重叠分片的另一个示例是根据路由的命名空间选择的一组路由器:
路由器 | 选择 | 命名空间 |
---|---|---|
router-1 |
|
|
router-2 |
|
|
router-3 |
|
|
router-2
和 router-3
都提供位于命名空间 Q*
、R*
、S*
、T*
中的路由。要将这个示例从重叠到传统的分片,我们可以将 router-2
的选择改为 K*
— P*
,从而消除重叠。
当路由器分片时,给定路由将绑定到组中的零个或多个路由器。路由绑定确保分片之间路由的唯一性。唯一性允许单个分片内存在同一路由的安全版本。这意味着,路由现在有一个可见的生命周期,从创建改为活跃的生命周期。
在分片环境中,第一个路由可以保留分片可以无限期地保留存在的权利,即使在重启时也是如此。
在绿色/蓝色部署期间,可以在多个路由器中选择路由。OpenShift Container Platform 应用程序管理员可能希望将流量从一个版本的应用程序迁移到另一个版本,然后关闭旧版本。
分片可以由集群管理员在集群级别以及项目/命名空间级别完成。当使用命名空间标签时,路由器的服务帐户必须具有 cluster-reader
权限,以允许路由器访问命名空间中的标签。
对于声明相同主机名的两个或更多路由,解析顺序基于路由的期限,最旧的路由将胜出到该主机的声明。如果是分片的路由器,则根据与路由器选择标准匹配的标签选择路由。无法确定何时将标签添加到路由中。因此,如果声明现有主机名的旧路由为"re-labelled"以与路由器的选择条件匹配,则它将根据上述解析顺序替换现有的路由(最旧的路由胜出)。