如何在 Google Cloud 上解决 "All hosts are taken by other resources"?

How to solve "All hosts are taken by other resources" on Google Cloud?

我目前在 GCP 上有一个 Kubernetes 集群 运行。在此集群中,我有一个正常工作的 NGINX Ingress,但现在我正在尝试使用 cert-manager 向其添加证书。

除了 ACME 挑战之外,一切正常。 当我执行 kubectl describe challenge 时,我得到以下信息:

Status:
  Presented:   true
  Processing:  true
  Reason:      Waiting for HTTP-01 challenge propagation: failed to perform self check GET request

当 acme 挑战创建求解器服务时,我在 GCP 上收到以下错误消息:

"All hosts are taken by other resources"

Image of the error I'm getting in google cloud

我尝试创建 IssuerClusterIssuer 但同样的问题不断出现。

在尝试解决问题并浏览网页后,我找到了解决方案。 可以添加以下注释:

annotations:
  acme.cert-manager.io/http01-edit-in-place: "true"

将此行添加到我的 Ingress 资源后,一切似乎都运行良好。 当不传入这个注解时,cert-manager会为acme challenge额外创建一个Ingress

参见:Cert-manager, using an Ingress