【发布时间】:2020-08-10 19:23:49
【问题描述】:
下面是我的clusterissuer 和certificate 资源的describe 输出。我是 cert-manager 的新手,所以不能 100% 确定设置是否正确 - 我们需要使用 http01 验证,但是我们没有使用 nginx 控制器。现在我们只有 2 个微服务,所以面向公众的 IP 地址只是属于一个 k8s 服务(类型负载均衡器),它将流量路由到一个 pod,其中Extensible Service Proxy 容器位于运行应用程序代码的容器前面。使用此设置,除了以下错误之外,我无法得到任何东西,但是正如我所提到的,我是 cert-manager 和 ESP 的新手,所以这可能配置不正确......
Name: clusterissuer-dev
Namespace:
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
API Version: cert-manager.io/v1beta1
Kind: ClusterIssuer
Metadata:
Creation Timestamp: 2020-08-07T18:46:29Z
Generation: 1
Resource Version: 4550439
Self Link: /apis/cert-manager.io/v1beta1/clusterissuers/clusterissuer-dev
UID: 65933d87-1893-49af-b90e-172919a18534
Spec:
Acme:
Email: email@test.com
Private Key Secret Ref:
Name: letsencrypt-dev
Server: https://acme-staging-v02.api.letsencrypt.org/directory
Solvers:
http01:
Ingress:
Class: nginx
Status:
Acme:
Last Registered Email: email@test.com
Uri: https://acme-staging-v02.api.letsencrypt.org/acme/acct/15057658
Conditions:
Last Transition Time: 2020-08-07T18:46:30Z
Message: The ACME account was registered with the ACME server
Reason: ACMEAccountRegistered
Status: True
Type: Ready
Events: <none>
Name: test-cert-default-ns
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
API Version: cert-manager.io/v1beta1
Kind: Certificate
Metadata:
Creation Timestamp: 2020-08-10T15:05:31Z
Generation: 2
Resource Version: 5961064
Self Link: /apis/cert-manager.io/v1beta1/namespaces/default/certificates/test-cert-default-ns
UID: 259f62e0-b272-47d6-b70e-dbcb7b4ed21b
Spec:
Dns Names:
dev.test.com
Issuer Ref:
Name: clusterissuer-dev
Secret Name: clusterissuer-dev-tls
Status:
Conditions:
Last Transition Time: 2020-08-10T15:05:31Z
Message: Issuing certificate as Secret does not exist
Reason: DoesNotExist
Status: False
Type: Ready
Last Transition Time: 2020-08-10T15:05:31Z
Message: Issuing certificate as Secret does not exist
Reason: DoesNotExist
Status: True
Type: Issuing
Next Private Key Secret Name: test-cert-default-ns-rrl7j
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Requested 2m51s cert-manager Created new CertificateRequest resource "test-cert-default-ns-c4wxd"
最后一项 - 如果我运行命令 kubectl get certificate -o wide,我会得到以下输出。
NAME READY SECRET ISSUER STATUS AGE
test-cert-default-ns False clusterissuer-dev-tls clusterissuer-dev Issuing certificate as Secret does not exist 2d23h
【问题讨论】:
-
你是如何设置证书管理器的?
-
我使用了以下命令:
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.16.1/cert-manager.yaml -
好的,我的情况和你一样,你是在 Baremetal kubernetes 上安装了 cert-manager 吗?你可以点击这些链接:cert-manager.io/docs/faq/troubleshooting 和 cert-manager.io/docs/faq/acme。看看它在哪里阻塞,对我来说这是挑战部分,因为 cert-manager 无法访问我服务器的端口 80,我明天将继续工作,如果你有同样的问题,请告诉我!
-
我解决了这个问题,对我来说,这是造成麻烦的 ACME 挑战之一,您可以点击他的链接:cert-manager.io/docs/faq/troubleshooting。很可能是证书没有创建,因为过程中的某个地方有错误,请按照说明进行操作,并给我们准确的错误:)
-
你能解决这个问题吗?
标签: google-kubernetes-engine cert-manager