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

Vin*_*a.C 5 nginx kubernetes kubernetes-ingress cert-manager azure-dns

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

我的证书规格

在此输入图像描述

发行人规格

在此输入图像描述

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

Cus*_*ard 9

我遇到了同样的错误...我怀疑这是因为我混合使用了私有和公共 Azure DNS 条目,并且记录需要添加到公共条目中,以便 Letsencrypt 可以看到它,但是,cert-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}"
  }
}
Run Code Online (Sandbox Code Playgroud)