证书管理器因等待dns-01挑战传播而失败:无法确定权威名称服务器

时间:2020-04-02 10:46:28

标签: nginx kubernetes kubernetes-ingress cert-manager azure-dns

我使用以下命令在aks-engine上创建了cert-manager kubectl apply --validate = false -f https://github.com/jetstack/cert-manager/releases/download/v0.12.0/cert-manager.yaml

我的证书规范

enter image description here

发布者规范

enter image description here

我使用nginx作为入口,我可以看到azure dns区域中的txt记录创建了我的azuredns服务原则,但不确定名称服务器上的问题是什么

1 个答案:

答案 0 :(得分:3)

我遇到了同样的错误...我怀疑这是因为我混合使用了私有和公共 Azure DNS 条目,并且需要将记录添加到公共条目中,以便 letencrypt 可以看到它,但是,证书-manager 在要求 letencrypt 执行验证之前先检查 TXT 记录是否可见......我假设 cert-manager 查看的默认 DNS 记录是私有的,因为没有 TXT在那里记录,它会卡在这个错误上。

解决方法,如 cert-manager.io 中所述,是使用 extraArgs 覆盖默认 DNS(我使用 terraform 和 helm 执行此操作):

resource "helm_release" "cert_manager" {
  name       = "cert-manager"
  repository = "https://charts.jetstack.io"
  chart      = "cert-manager"
  
  set {
    name  = "installCRDs"
    value = "true"
  }
  
  set {
    name  = "extraArgs"
    value = "{--dns01-recursive-nameservers-only,--dns01-recursive-nameservers=8.8.8.8:53\\,1.1.1.1:53}"
  }
}