首页 新闻 会员 周边

k8s 中使用 coredns 重写主机名的问题

1
悬赏园豆:100 [已解决问题] 解决于 2019-12-09 23:14

在 coredns_cm.yaml 中添加了下面的正则重写规则,比如将 relation_api 重写为 relation-api,但总是不起作用,请问如何解决?

rewrite name regex ^(\w+)_(\w+)$ {1}-{2}.production.svc.cluster.local

而下面不用正则的写法可以正常工作。

rewrite name relation_api relation-api.production.svc.cluster.local
k8s
dudu的主页 dudu | 高人七级 | 园豆:30979
提问于:2019-12-09 21:19
< >
分享
最佳答案
0
收获园豆:80
沈星繁 | 小虾三级 |园豆:1096 | 2019-12-09 21:46

终于搞定了!提供的 github issue 链接真是雪中送炭。

除了重写 answer ,还需要在 name regex 的正则结尾的 $ 之前加上 \. ,即 \.$,而且 name 与 answer name 的正则规则要对应,比如 name 重写是 relation_api -> relation-api ,answer name 重写时要能 relation-api -> relation_api 。

正确的写法如下:

rewrite stop {
  name regex ([a-zA-Z0-9-]+)_([a-zA-Z0-9-]+).$ {1}-{2}.production.svc.cluster.local
  answer name ([a-zA-Z0-9-]+)-([a-zA-Z0-9-]+)\.production\.svc\.cluster\.local\.$ {1}_{2}
}
dudu | 园豆:30979 (高人七级) | 2019-12-09 22:58
其他回答(1)
0

https://github.com/coredns/coredns/blob/master/plugin/rewrite/README.md
希望能帮上忙,英文水准不太好就不翻译了,里面应该有段是

收获园豆:20
landv | 园豆:287 (菜鸟二级) | 2019-12-09 21:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册