5.7.17. 在路由中拒绝或允许证书域
可以利用 ROUTER_DENIED_DOMAINS
和 ROUTER_ALLOWED_DOMAINS
环境变量,将路由器配置为拒绝或允许来自路由中的主机名的特定域子集。
| 任何指定路由中都不允许列出的域。 |
| 任何指定路由中只允许列出的域。 |
拒绝域列表中的域优先于允许的域列表。这意味着 OpenShift Container Platform 首先检查 deny 列表(如果适用),以及主机名不在被拒绝的域列表中,并检查允许的域列表。但是,允许的域列表更为严格,并确保路由器只接受含有属于该列表的主机的路由。
例如,要拒绝 myrouter
路由的 [*.]open.header.test
, [*.]openshift.org
和 [*.]block.it
路由,请运行以下命令:
$ oc adm router myrouter ...
$ oc set env dc/myrouter ROUTER_DENIED_DOMAINS="open.header.test, openshift.org, block.it"
这意味着 myrouter
会根据路由的名称接受以下内容:
$ oc expose service/<name> --hostname="foo.header.test"
$ oc expose service/<name> --hostname="www.allow.it"
$ oc expose service/<name> --hostname="www.openshift.test"
但是,myrouter
将拒绝以下内容:
$ oc expose service/<name> --hostname="open.header.test"
$ oc expose service/<name> --hostname="www.open.header.test"
$ oc expose service/<name> --hostname="block.it"
$ oc expose service/<name> --hostname="franco.baresi.block.it"
$ oc expose service/<name> --hostname="openshift.org"
$ oc expose service/<name> --hostname="api.openshift.org"
另外,要阻止任何主机名没有设置为 [*.]stickshift.org
或 [*.]kates.net
的路由,请运行以下命令:
$ oc adm router myrouter ...
$ oc set env dc/myrouter ROUTER_ALLOWED_DOMAINS="stickshift.org, kates.net"
这意味着 myrouter
路由器将接受:
$ oc expose service/<name> --hostname="stickshift.org"
$ oc expose service/<name> --hostname="www.stickshift.org"
$ oc expose service/<name> --hostname="kates.net"
$ oc expose service/<name> --hostname="api.kates.net"
$ oc expose service/<name> --hostname="erno.r.kube.kates.net"
但是,myrouter
将拒绝以下内容:
$ oc expose service/<name> --hostname="www.open.header.test"
$ oc expose service/<name> --hostname="drive.ottomatic.org"
$ oc expose service/<name> --hostname="www.wayless.com"
$ oc expose service/<name> --hostname="www.deny.it"
要实现这两个情况,请运行以下命令:
$ oc adm router adrouter ...
$ oc set env dc/adrouter ROUTER_ALLOWED_DOMAINS="okd.io, kates.net" \ ROUTER_DENIED_DOMAINS="ops.openshift.org, metrics.kates.net"
这将允许主机名设置为 [*.]openshift.org
或 [*.]kates.net
的任何路由,且不允许主机名设置为 [*.]ops.openshift.org
或 [*.metrics.kates.net
的任何路由。
因此,以下内容会被拒绝:
$ oc expose service/<name> --hostname="www.open.header.test"
$ oc expose service/<name> --hostname="ops.openshift.org"
$ oc expose service/<name> --hostname="log.ops.openshift.org"
$ oc expose service/<name> --hostname="www.block.it"
$ oc expose service/<name> --hostname="metrics.kates.net"
$ oc expose service/<name> --hostname="int.metrics.kates.net"
但是,允许以下内容:
$ oc expose service/<name> --hostname="openshift.org"
$ oc expose service/<name> --hostname="api.openshift.org"
$ oc expose service/<name> --hostname="m.api.openshift.org"
$ oc expose service/<name> --hostname="kates.net"
$ oc expose service/<name> --hostname="api.kates.net"