3.2.12.2. 修改路由器分片
由于路由器分片是基于标签的结构,因此您可以修改标签(通过 oc label)或选择表达式(通过 oc set env)。
本节扩展了创建路由器分片一节中启动的示例,演示了如何更改选择表达式。
以下是可修改现有路由器以使用新选择表达式的便捷脚本 modshard :
在 modshard 中,如果 router-shard-<id>部署策略 是 Rolling,则不需要 oc scale 命令。
例如,将 router-shard-3 的部门扩展到包含 ops 和 dev :
modshard 3 ROUTE_LABELS='dept in (dev, ops)'
$ modshard 3 ROUTE_LABELS='dept in (dev, ops)'
结果是,router-shard-3 现在选择路由 g — s (g — k 和 l — s 的组合)。
本例考虑了本例中只有三个部门,并指定了一个部门离开分片,从而得到与上例相同的结果:
modshard 3 ROUTE_LABELS='dept != finance'
$ modshard 3 ROUTE_LABELS='dept != finance'
这个示例指定了三个用逗号分开的功能,并只选择路由 b :
modshard 3 ROUTE_LABELS='hw=strong,type=dynamic,geo=west'
$ modshard 3 ROUTE_LABELS='hw=strong,type=dynamic,geo=west'
与涉及路由标签的 ROUTE_LABELS 类似,您可以使用 NAMESPACE_LABELS 环境变量根据路由命名空间的标签选择路由。本例修改 router-shard-3 以提供命名空间具有标签 frequency=weekly 的路由:
modshard 3 NAMESPACE_LABELS='frequency=weekly'
$ modshard 3 NAMESPACE_LABELS='frequency=weekly'
最后一个示例组合了 ROUTE_LABELS 和 NAMESPACE_LABELS,以选择带有标签 sla=low 的路由,其命名空间具有标签 frequency=weekly :
modshard 3 \
NAMESPACE_LABELS='frequency=weekly' \
ROUTE_LABELS='sla=low'
$ modshard 3 \
NAMESPACE_LABELS='frequency=weekly' \
ROUTE_LABELS='sla=low'