外部 DNS 跳过记录(未检测到匹配的托管区域)

External DNS skips records (No matching hosted zone was detected)

我在我的集​​群上创建了外部 DNS(由 DigitalOcean 提供),并为 stable/external-dns Helm 图表设置了以下值:

provider: digitalocean
digitalocean:
  apiToken: "MY_DIGITAL_OCEAN_TOKEN"
domainFilters:
  - example.com
rbac:
  create: true
logLevel: debug

以前还好,最近由于no hosted zone matching record DNS Name was detected:

停止了创建记录
time="2019-06-10T14:42:55Z" level=debug msg="Endpoints generated from ingress: deepfork/df-stats-site: [fork.example.com 0 IN A 134.***.***.197 [] fork.example.com 0 IN A 134.***.***.197 []]"
time="2019-06-10T14:42:55Z" level=debug msg="Removing duplicate endpoint fork.example.com 0 IN A 134.***.***.197 []"
time="2019-06-10T14:42:56Z" level=debug msg="Skipping record fork.example.com because no hosted zone matching record DNS Name was detected "
time="2019-06-10T14:42:56Z" level=debug msg="Skipping record fork.example.com because no hosted zone matching record DNS Name was detected "

此错误消息来自kubernetes-incubator/external-dns provider/digital_ocean.go#digitalOceanChangesByZone(), a project for which you have opened an issue (1064)

检查这是否与 issue 1055 无关,后者在使用带有 "latest" 标签的图像时也有类似的问题。

最近的提交可能会解决这个问题:

  • commit dc5099d which refers to issue 1056,其中提到了"Having traced this the issue appears to be that the exclude-domains has a default value of "". that leads to always matching the exclude"
  • commit 6f543ec which solves issue 1057: "Google DNS zones not found with filter"

当我用 DigitalOcean web interface 手动添加记录时,问题得到了解决。在那之后,ExternalDNS 开始忽略添加新记录,因为它已经存在了。

time="2019-06-18T11:09:55Z" level=debug msg="Removing duplicate endpoint fork.example.com 0 IN A 134.***.***.197 []"

后来我用接口去掉了记录,ExternalDNS就开始工作了。

time="2019-06-18T11:10:56Z" level=info msg="Changing record." action=CREATE record=fork.example.com ttl=300 type=A zone=example.com
time="2019-06-18T11:10:56Z" level=info msg="Changing record." action=CREATE record=fork.example.com ttl=300 type=TXT zone=example.com