【问题标题】:cert manager is failing with Waiting for dns-01 challenge propagation: Could not determine authoritative nameservers证书管理器因等待 dns-01 质询传播而失败:无法确定权威名称服务器
【发布时间】:2020-04-02 10:46:28
【问题描述】:

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

我的证书规范

发行人规范

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

【问题讨论】:

  • 你有没有找到解决方案?
  • 我找到了原因,是因为安装cert-manager时默认的名称服务器。

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


【解决方案1】:

我遇到了同样的错误...我怀疑这是因为我混合使用了私有和公共 Azure DNS 条目,并且需要将记录添加到公共条目中,以便让letsencrypt 可以看到它,但是,证书-manager 在要求letsencrypt 执行验证之前检查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}"
  }
}

【讨论】:

  • 如果你直接使用helm,你可以这样设置extraArgs:--set extraArgs='{--dns01-recursive-nameservers-only,--dns01-self-check-nameservers=8.8.8.8:53\,1.1.1.1:53}'
猜你喜欢
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 2020-07-06
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
相关资源
最近更新 更多