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

sauutmhj  于 2022-12-11  发布在  Kubernetes
关注(0)|答案(3)|浏览(197)

我已经使用下面的命令kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.12.0/cert-manager.yaml在aks引擎上创建了证书管理器
我证书规范

发行者规范

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

roejwanj

roejwanj1#

我遇到了同样的错误...我怀疑这是因为我使用了私有和公共Azure DNS条目的混合,并且需要将记录添加到公共条目中,以便letssencrypt可以看到它,但是,在要求letssencrypt执行验证之前,cert-manager会检查TXT记录是否可见...我**假设 * a cert-manager查看的默认DNS记录是私有记录,并且因为那里没有TXT记录,所以它在这个错误上卡住了。
如www.example.com上所述,解决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}"
  }
}
mrzz3bfm

mrzz3bfm2#

对我来说,问题是我在入口处缺少了一些注解:

cert-manager.io/cluster-issuer: hydrantid
kubernetes.io/tls-acme: 'true'

在我的例子中,我使用hydrantid作为发行者,但我想大多数人都使用letsencrypt

tmb3ates

tmb3ates3#

我有类似的错误时,我的证书是停留在待定,下面是我如何解决它

kubectl get challenges 
urChallengeName

然后运行以下命令

kubectl patch challenge/urChallengeName -p '{"metadata":{"finalizers":[]}}' --type=merge

当你再次遇到挑战时,它应该消失

相关问题